渦巻きを描く

draw_spiral



回転しながら大きくなる渦巻きを描きます
解説はつづきから






新規ファイル作成
ステージ設定はサイズを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;
    }
}


これでムービープレビューすると以下のようになってるかと思います







以上、渦巻きの描き方でした