ランダムボックス

random_box



オブジェクトにマウスオーバーすると大きさや角度などを変えながら動く箱が表示されるというアニメーションです
解説はつづきから





新規ファイル作成
ステージ設定はサイズを400×300、フレームレートは30に





ステージの中央に箱を生成する基点となるオブジェクトを作成
シンボル化して、インスタンス名をobjに





新規シンボルを作成
ActionScriptに書き出しにチェックを入れて、クラス名をBoxに





サイズ10×10、線の太さ2pxの矩形を描く
色は任意




シーン1に戻り、新規レイヤーを追加し、ActionScriptを記述


//タイマー設定とタイマーイベント追加
var timer:Timer = new Timer(20, 0);
timer.addEventListener(TimerEvent.TIMER, createBox);

//objにマウスオーバー、マウスアウトのイベント追加
obj.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
obj.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);

function mouseOverHandler(e:Event):void {
    //マウスオーバーでタイマー開始
    timer.start();
}

function mouseOutHandler(e:Event):void {
    //マウスアウトでタイマーリセット
    timer.reset();
}

//boxを作成する設定
function createBox(e:Event):void {

    var box:Box = new Box();

    //boxの初期位置、大きさ
    box.x = obj.x;
    box.y = obj.y;
    box.scaleX = box.scaleY = Math.random() * 2;

    //色の設定
    var myColor:ColorTransform = new ColorTransform();
    myColor.color = 0xffffff * Math.random();
    box.transform.colorTransform = myColor;

    //boxがX,Y方向へ動く速度
    box.xspeed = Math.random() * 12 - 6;
    box.yspeed = Math.random() * 9 - 4.5;

    //boxが透明になる速度
    box.alphaSpeed = -(Math.random() * 0.1);

    //boxの大きさの変わる速度
    box.scaleSpeed = Math.random() * 0.05;

    //boxを最背面に追加
    addChildAt(box,0);
    //boxが動くイベント追加
    box.addEventListener(Event.ENTER_FRAME, animate);
}

//boxの動き設定
function animate(e:Event):void {

    //型変換
    var box = e.target as MovieClip;

    //createBox内で設定した各種値を適用
    box.x += box.xspeed;
    box.y += box.yspeed;
    box.alpha += box.alphaSpeed;
    box.scaleX += box.scaleSpeed;
    box.scaleY += box.scaleSpeed;

    //角度ランダムに
    box.rotation = Math.random() * 360;

    //透明になったらboxとイベント削除
    if (box.alpha < 0) {
        box.removeEventListener(Event.ENTER_FRAME, animate);
        removeChild(box);
    }
}


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







以上、ランダムボックスの作り方でした