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;
};
};
};
これで、もう一個妄想してたのが実装できそうス。
CATEGORY
POSTED
jam


COMMENT
0 Comment