
|
お菓子を降らす | サンプルをダウンロードする ≫ | リストページへ戻る ≫
|
■お菓子を作る
お菓子のオブジェクトを作り複数し、それぞれムービークリップシンボルにします。
ここではクッキーmc、チョコmc、ケーキmc、アメmc、ガムmcの5種類を用意しました。
それぞれのムービーシンボルの1フレーム目にランダムに発生させるアクションを記述します。
x = Math.floor(Math.random()*501);
y = Math.floor(Math.random()*301);
z = Math.floor(Math.random()*(100-30))+31;
dsy = Math.floor(Math.random()*3)+1;
dsx = Math.floor(Math.random()*(3+3)+1)-3;
dsz = Math.floor(Math.random()*5)+1;
次に3フレーム目に2フレームとの繰り返し再生を設定しランダムに発生させた数値に沿って少しずつ移動・回転の動作の制御を記述します。
this._x = x;
this._y = y;
this._z = z;
kaiten = Math.floor(Math.random()*10+1);
this._rotation = kaiten;
y = y+dsy;
if (y>=400) {
y = y-400;
}
x = x+dsx;
if (x>=550) {
x = x-550;
}
if (x<0) {
x = x+550;
}
this.gotoAndPlay(2);
|
■背景を変化させる
キャラクターに触れると背景が変わるようにします。
新規ムービーシンボル「背景mc」を作成します。
emptyとfullの景色を用意し、それぞれレイヤー分けをします。
途中でemptyの画像のアルファ値を0にして、fullの背景が見えるようにします。
ここではフレームラベルの設定を行っています。
新規レイヤー「ラベル」を作成し画面左下のフレームラベルの設定フォームにラベル名を記述します。
新規レイヤー「スクリプト」を作成し、emptyの背景とfullの背景に以下のアクションスクリプトを記述します。
this.stop();
//自分自身のタイムラインを停止させる
最終フレームには以下のアクションを記述します。
this.gotoAndStop(1);
//自分自身のタイムラインを1フレームに移動して再生
|
■ボタンの作成
 キャラクターをボタンシンボルにします。
ここではタマオとタマゾーの2つのボタンシンボルを作りました。
これらのボタンはアップフレームにグラフィックシンボルを配置し、オーバーフレームで手を上に上げるアニメーションを付けたムービークリップシンボルを配置しました。
|
■シーンに配置する
シーンに戻り、背景mcと2つのボタンシンボル(タマオとタマゾー)を配置します
(それぞれレイヤー分けをします)
背景mcにはインスタンス名「back_mc」を設定します。
 新規レイヤー「お菓子」を作成し、お菓子のムービーシンボルを5つ配置します。
それぞれ任意の位置に配置し、それぞれインスタンス名を設定します。
|
■アクションを記述する
配置した5つのお菓子のムービーシンボルをアクションによって複製します。
2フレーム目に以下のアクションスクリプトを記述します。
max=10;
//10個複製するアクション
3フレーム目に以下のアクションスクリプトを記述します。
var i = 1;
while (i<=max) {
j = Math.floor(Math.random()*5+1);
dup = eval("okashi"+j);
dup.duplicateMovieClip("okashis"+i, i);// 深度の処理
i++;
}
5フレーム目に以下のアクションスクリプトを記述します。
this.stop();
//停止させる。
背景を変化させるアクションスクリプトをそれぞれのボタンシンボルに記述します。
マウスのロールオーバー時に複製されたムービーを削除し、新たに50個複製させます。
(タマオ(青い方)には100個複製するよう記述しています)
ロールアウト時に同様に複製されたムービーをいったん削除し、新たに10個複製する記述をします。
同時に背景mcをemptyからfullへ、fullからemptyへ変更するアクションを記述します。
on (rollOver) {//ボタンの上にカーソルが乗った瞬間
for (i=1; i<_root.max; i++) {
dup = eval("okashi"+i);
dup.removeMovieClip();
}
_root.max = 100;
this.gotoAndPlay(3);//自分自身のタイムラインを3フレームに移動して再生
_root.back_mc.gotoAndPlay("full");//back_mcをfullに移動して再生
}
on (rollOut) {
for (i=1; i<_root.max; i++) {
dup = eval("okashi"+i);
dup.removeMovieClip();
}
_root.max = 10;
this.gotoAndPlay(3);
_root.back_mc.gotoAndPlay("empty");
}
以上で完成です。
|
| ↑このページのトップへ戻る |