スターダストエフェクト

stardust



マウスを動かすと星が発生するエフェクトの作り方です
解説はつづきから





今回もTweenMaxを使います
詳しくは以前の記事参照




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





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





多角形ツールで星を描く。色は白で大きさは8くらい




シーン1に戻り、ActionScriptを記述

//TweenMaxをインポート
import com.greensock.*;

//星を配置するSprite(実際に表示はさせない)
var temp:Sprite = new Sprite();
//ステージと同じ大きさで黒色のビットマップデータ
var bmd:BitmapData = new BitmapData(400, 300, false, 0x00000000);
//ビットマップデータを関連付けてビットマップを表示
var bmp:Bitmap = new Bitmap(bmd);
addChild(bmp);

//色を消していくためのColorTransform設定
var ctf:ColorTransform = new ColorTransform(0.9, 0.9, 0.92);

//マウスを動かすと星をつくるイベント追加
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMove);
//毎フレーム実行されるイベント追加
addEventListener(Event.ENTER_FRAME, loop);


function onMove(e:MouseEvent):void {
    //星作成
    var star:MyStar = new MyStar();
    //星の初期位置
    star.x = mouseX;
    star.y = mouseY;
    //Spriteに星を追加
    temp.addChild( star );

    //星の目標地点設定
    var tx:Number = star.x + Math.random() * 50 - 25;
    var ty:Number = star.y + Math.random() * 50 - 25;
    //目標角度設定
    var rot = Math.random() * 360 - 180;

    //トゥイーン設定
    TweenMax.to(star, 2, {                 //星を2秒間で
                alpha: 0, x: tx, y: ty,    //透明度0、位置を目標地点に
                scaleX: 4, scaleY: 4,      //大きさを4倍に
                rotation: rot,             //角度を目標角度に
                //グローフィルターをかける
                glowFilter:{color:0xff00ff, alpha:1, blurX:10, blurY:10},
                onComplete: removeStar,    //トゥイーンが終わったら
                onCompleteParams: [star]}  //removeStar実行
    );

    function removeStar(star:MyStar):void {
        //starを削除
        temp.removeChild(star);
    }
}


function loop(e:Event):void {
    //ビットマップデータにtempを写して表示させる
    bmd.draw(temp);
    //ColorTransformの赤の乗数値を変化(0.8〜0.9でループ)
    (ctf.redMultiplier > 0.9)? ctf.redMultiplier = 0.8 : ctf.redMultiplier += 0.01;
    //ビットマップデータにカラー変換を適用
    bmd.colorTransform(bmd.rect, ctf);
}


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







以上、スターダストエフェクトの作り方でした