渦巻きを描く
回転しながら大きくなる渦巻きを描きます
解説はつづきから
新規ファイル作成
ステージ設定はサイズを400×300、フレームレートを30に
まずは背景を配置
400×300の矩形を描き、画像のように#666666から#333333の色でグラデーション
新規レイヤーを作成し、ActionScriptを記述
var speed:Number; //速さ var radius:Number; //半径 var angle:Number = 0; //角度 var xpos:Number; //線の先端X座標 var ypos:Number; //線の先端Y座標 var moving:Boolean = true; //動いてるかどうか //ステージの中心 var centerX:Number = stage.stageWidth/2; var centerY:Number = stage.stageHeight/2; //渦巻き自体を回転させるのとステージの中心を(0,0)にする //ために空のスプライトbaseの(0,0)をステージの中央に var base:Sprite = new Sprite(); base.x = centerX; base.y = centerY; addChild(base); //ステージをクリックして渦巻きの描画、消去のイベント追加 addEventListener(MouseEvent.CLICK, clickHandler); function clickHandler(e:MouseEvent):void { moving = !moving; //movingの切り替え //渦巻きが描かれているときは動きと描画を除去 if (moving) { removeEventListener(Event.ENTER_FRAME, efHandler); base.graphics.clear(); //描かれていないときは渦巻きの設定とイベント追加 } else { //baseの線の設定(太さ4、色FFFFFF) base.graphics.lineStyle(4, 0xffffff); //線の始点をステージ中央に(baseの左上) base.graphics.moveTo(0, 0); radius = 0; speed = 0.3; addEventListener(Event.ENTER_FRAME, efHandler); } } //線の描画設定 function efHandler(e:Event):void { //半径が一定値以下なら、線を描画 if (radius < 130) { //半径を増加 radius += 0.5; //線の先端を半径を広げながら円運動 xpos = Math.cos(angle) * radius; ypos = Math.sin(angle) * radius; //線を描く base.graphics.lineTo(xpos,ypos); //baseを回転させる base.rotation += 10; //角度増加 angle += speed; //それ以外なら線の描画を停止、baseだけ回し続ける } else { speed = 0; base.rotation += 10; } }
これでムービープレビューすると以下のようになってるかと思います
以上、渦巻きの描き方でした