2009/05/15 | 14:28 pm

円形配置したい

と思いついて書いてみたクラス。

最近、割と落ち着いて仕事出来ていて、こーゆー時間が取れてます。
広告業界もあぶないってニュースが飛び交ってるので、恐ろしやーですが。。。
明日は我が身にならないように頑張ろう、うん。

ソースを見て頂ければ分かるかと思うのですが、
for文でオブジェクトの総数とインデックス値に大しての 360 度の値を渡すと、Object型で x座標、y座標、角度を返してくれます。

package {

	import flash.display.Sprite;

	public class CircularPosition extends Sprite {

		private const OBJECT_NUM:Number = 36;
		private var container:Sprite;

		private var radius:Number = 200;

		public function CircularPosition() {
			container = new Sprite();

			for( var i:int=0; i<OBJECT_NUM; i++ ) {
				var sp:Sprite = new Sprite();
				sp.graphics.beginFill( 0xFFFFFF * Math.random() );
				sp.graphics.drawRect( 0, 0, 10, 10 );
				sp.graphics.endFill();

				var obj:Object = getCircularPosition( (i + 1) * 360 / OBJECT_NUM );
				sp.x = obj.x;
				sp.y = obj.y;
				sp.rotation = obj.rot;

				container.addChild( sp );
			}

			container.x = stage.stageWidth / 2;
			container.y = stage.stageHeight / 2;
			addChild( container );
		};

		private function getCircularPosition( rot:Number ):Object {
			var obj:Object = {};
			var rad:Number = rot * Math.PI / 180;

			obj.x = Math.sin(rad) * radius;
			obj.y = Math.cos(rad) * radius;
			obj.rot = -rot;

			return obj;
		};

	};

};

これで、もう一個妄想してたのが実装できそうス。

COMMENT

CATEGORY

POSTED

jam





JUN NAKAJIMA
Tokyo, Japan.
member of Onawatobi.
contact@brooklyn.jp