キラキラエフェクト

kira_kira



街もキラキラしてきたので、キラキラするエフェクトの作り方です
解説はつづきから






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





背景となる画像を配置




新規レイヤーを作成し、ActionScriptを記述

//1度に発生させるキラキラの数
var num:int = 5;

//キラキラの土台を設置するためのBitmapを配置
var base:BitmapData = new BitmapData(400, 300, false, 0x000000);
var baseM:Bitmap = new Bitmap(base);
//黒い部分は透けて見えるようにブレンドモードをスクリーン
baseM.blendMode = BlendMode.SCREEN;
addChild(baseM);

//キラキラを表現するためのBitmapをbaseの上に配置
//4分の1で作成してから4倍にすることによって
//大きなキラキラがときどき出現する
var wrap:BitmapData = new BitmapData(400/4, 300/4, false, 0x000000);
//smoothingをtrue
var wrapM:Bitmap = new Bitmap(wrap, PixelSnapping.NEVER, true);
wrapM.scaleX = wrapM.scaleY = 4;
wrapM.blendMode = BlendMode.SCREEN;
addChild(wrapM);

//タイマー設定、タイマーイベントスタート
var timer:Timer = new Timer(30);
timer.addEventListener(TimerEvent.TIMER, loop);
timer.start();

function loop(e:Event):void {
    //処理が軽くなるように描画が終わるまでロック
    base.lock();
    //baseを黒で塗りつぶすことで前回の描画をクリア
    base.fillRect(base.rect, 0x000000);

    //base上にランダムに白色の点を描画
    for (var i=0; i<num; i++) {
        var px = Math.random()*stage.stageWidth;
        var py = Math.random()*stage.stageHeight;
        base.setPixel(px, py, 0xffffff);
    }

    //描画が終わったらロックを外して表示
    base.unlock();
    //baseをwrapに描画
    wrap.draw(base);
}


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







以上、キラキラエフェクトの作り方でした