スターダストエフェクト
マウスを動かすと星が発生するエフェクトの作り方です
解説はつづきから
今回も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); }
これでムービープレビューすると以下のようになってるかと思います
以上、スターダストエフェクトの作り方でした