携帯待受テンプレート

携帯の待受を作成する時によく多くのモノを落下させることがあるので、テンプレートを作ってみた。

サンプルファイルはこちら(Flash CS4形式)


まずswfを見てもらうと葉っぱがパラパラと降り続けるムービーが確認できると思います。

次にflaファイルを見ていきましょう。
シーン1には「as」「guide」「leaf」「bg」の順にレイヤーがあります。

「as」レイヤーには、

fscommand2("SetQuality","high");

とだけ記述されていますが、これはFlashLite版のStageQualityと考えてもらって構いません。
どんな待受を作るにもこれだけは入れておいたほうがいいでしょう。

「guide」には、主流の携帯ディスプレイサイズに合わせてガイドを作成しています。
最近の携帯はディスプレイサイズが大きいものが多いので、「bg」はステージサイズ(240×320)よりも大きいもの(ここでは240×432)を作っておきます。
この様にすれば、携帯が縦320より大きかった場合でも余分に作っておいた「bg」の部分が表示されます。もし大きなものを作ってなかった場合は、ステージの背景色で設定した色が表示されることになり、違和感のある背景になってしまいます。
※docomoの携帯ではステージサイズで設定した部分までしか表示されません。そのため、数種類のサイズの待受を準備する必要があります。

次に「leaf」レイヤーにある葉っぱ「leaf.mc」についてです。
「ライブラリ」→「_mc(フォルダ)」→「leaf.mc」を展開します。
中にはインスタンス名「leaf」とついた葉っぱと1〜3フレームそれぞれにASが書いてあります。

では1フレーム目のASを見てみましょう。

for(i = 0;i < 5;i++){
  Name = "mc" add i;
  //"leaf"を複製する
  duplicateMovieClip("leaf",Name,i);
  //xとyの値をランダムに設定
  rx = random(240);
  ry = random(200) - 100;
  //角度をランダムに設定
  rRot = random(360);
  //プロパティの設定
  setProperty(Name, _x, rx);
  setProperty(Name, _y, ry);
  setProperty(Name, _rotation, rRot);
  //落下速度をランダムに設定
  eval("r" add i) = (random(7) + 3) * 0.9;
  //スケール値を30〜100の間でランダムに設定
  eval("rScale" add i) = random(70) + 30;
}

ここではランダムな座標・角度を持った葉っぱを5つ作成しています。
ちょっと違うことと言えば、setProperty関数でムービークリップのプロパティを設定してあげていることくらいです。setProperty関数については、パッと見てもらえば分かると思うので特に説明の必要もないでしょう。
また、eval関数を使い「r0〜r4」・「rScale0〜rScale4」という変数を作成し、それぞれにランダムな値を設定しています。
スケール値(rScale)は1フレーム目のsetPropertyで設定すればいいのでは?と思いますが、後ほど説明します。

次に2フレーム目のASを見てみましょう。

for(j = 0;j < 5;j++){
  if(eval("mc" add j)._y > 360){
    //画面外に出たら、
    eval("mc" add j)._y = 0; //一番上に戻る
    eval("mc" add j)._x = random(240); //x座標をランダムに設定
  }else {
    //1Fで作ったランダム値の速度で落下させる
    eval("mc" add j)._y += eval("r" add j);
  }
  //くるくる回す
  eval("mc" add j)._rotation += 2;
  //1Fで作ったランダム値(rScale)で大きさを一定に保つ
  eval("mc" add j)._xscale =eval("mc" add j)._yscale = eval("rScale" add j);
}

ここでは実際に葉っぱを落下させています。
forループとeval関数を使えばスマートに書くことができます。
8行目は、「mc0」に対しては「r0」の落下速度で、「mc1」に対しては「r1」の落下速度で…といった意味になります。
画面の下へ出たら、一番上に戻しx座標をランダムに設定し、降り続いている感じを出しています。
また、まっすぐに落ちるだけでは寂しいので、ここでは_rotationの値を変化させてくるくると回していますが、ひらひらとしたアニメーションをつけてあげてもいいと思います。
ここで先ほどのスケール値を設定してますが、これはFlashLite1.1(Flash4相当)では90度単位で回転させないとオブジェクトの大きさが変化していくため、時間が経つとオブジェクトが見えなくなるほど小さくなってしまいます。
なので、2フレームに来る度にスケール値を設定してあげて大きさを一定に保つ必要があります。

3フレーム目には

gotoAndPlay(2);

のみが記述されています。
これはFlashLite1.1ではonEnterFrameが使用できないため、2フレームと3フレームを行ったり来たりすることで、onEnterFrameと同じ効果を得ることができます。

少し変えれば、ループで雲が動く・シャボン玉が昇っていくなどの表現も簡単にできますね。
ファイルの使用はご自由にどうぞ。

サンプルファイルをダウンロードする。(Flash CS4形式)

この記事をブックマーク・シェアする

この記事に関連する記事

カテゴリ

コメント

コメントを残す

コメント*

コメントリンクを nofollow free に設定することも出来ます。

誤字・脱字やリンク切れなどお気づきの点がございましたら@loop0429までよろしくお願いします。

この記事の先頭へ