雪のアニメーション

snowfall



これまたFlashの基本(?)の雪が降るアニメーションの作り方です
解説はつづきから






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





まずは背景を設置





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





色:白、線なし、で5×5の円を描く
それをさらにムービークリップシンボルに変換し、フィルタ:ぼかしを水平、垂直3に




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

//雪の数
var num:int = 200;
//雪をいれる配列
var sList:Array = [];

for (var i:int = 0; i<num; i++) {
    //雪を作成
    var snow:Snow = new Snow();
    //雪の初期位置
    snow.x = Math.random()*stage.stageWidth;
    snow.y = Math.random()*stage.stageHeight;
    //雪の大きさを生成順に小さくしていく
    snow.scaleX = snow.scaleY = 1/(0.02*i+1);
    //傾斜をつけて形をランダムに
    var mtx:Matrix = snow.transform.matrix;
    mtx.c = Math.random()-0.5;
    mtx.b = Math.random()-0.5;
    snow.transform.matrix = mtx;

    //雪を配置して配列にいれる
    addChildAt(snow, 1);
    sList.push(snow);
    //それぞれのX方向の速度設定
    sList[i].vx = Math.random()-0.5;
}

//雪の動きのイベント
addEventListener(Event.ENTER_FRAME,parallax);
function parallax(e:Event):void {
    for (i=0; i<num; i++) {
        //X方向とY方向の動き設定(奥のものほど遅くなる)
        sList[i].x += sList[i].vx/(0.02*i+1);
        sList[i].y += 3/(0.02*i+1);

        //雪が画面の下にでたら上に移動
        if (sList[i].y>300) {
            sList[i].x = Math.random()*stage.stageWidth;
            sList[i].y = 0;
        }
    }
}


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







以上、雪のアニメーションの作り方でした