MX2004初心者です。
ライブラリにsakura_mc(10フレーム)があります。 さくらの花びらが手前に飛んでくるこまアニメです。
//乱数生成関数
function rndInit(maxNum){
var a = math.random();
var b = Math.ceil( a*maxNum );
return b;
}
MC = "sakura"
SW = Stage.width;
SH = Stage.height;
this.onEnterFrame = function(){
if( rndInit(10) == 1 ){
count ++;
newName = MC + count;
attachMovie( "sakura_mc", newName, 1 );
//表示位置の設定
this[ newName ]._x = Math.random()*SW;
this[ newName ]._y = Math.random()*SH;
}
}
この方法だと、sakura_mcがステージ上ランダムな位置に連続で再生 してくれます。
ただ、二つ以上のsakura_mcを同時にステージに再生はしてくれません。
sakura_mcを同時にいっぱい再生させたい場合はどうすればよいでしょうか?
sakura2_mcをつくって同じ命令を追加してもダメでした。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
#1 です。
先のことは色々問題が生じるとは思いましたが,
#1では,とりあえず現在の状況についてのみ回答しました。
> if ( count >= 10 ){
> this.onEnterFrame = null;
> }
> を中に足せば、10枚で止めることができました。
それでも悪くはないと思いますが,
this.onEnterFrame = null; より delete this.onEnterFrame;
の方が良いようです。
イベントハンドラメソッドはdeleteで消せ!
http://f-site.org/articles/2004/05/22140833.html
Flashドキュメンテーション > delete ステートメント
http://livedocs.adobe.com/flash/8_jp/main/000018 …
あと,
this.onEnterFrame は削除されても,
sakura0~sakura9 はステージ上に残っていると思います。
-----------------------------------------------
if (count>=10) {
for (i=0; i<=count; i++) {
this[MC+i].removeMovieClip();
}
delete this.onEnterFrame;
}
-----------------------------------------------
のようにして,
removeMovieClip() を削除してやるか,
これでは,唐突に消えて不自然なようでしたら,
シンボル sakura_mc の最終フレームに
this.removeMovieClip();
と書いておいて,消す方が良いとは思います。
(複製した sakura0~sakura9 は深度0以上なので消せます。)
すでにそうしてあったらすみません。
No.1
- 回答日時:
同じ深度に複数のものは存在できません。
同じ深度に新たなものを作成すると,前の物は削除されます。
attachMovie("sakura_mc", newName, 1);
↓変更↓
attachMovie("sakura_mc", newName, count);
でうまく行くのではないかとは思いますが,
その他細かい点も気になったので,全文書いてみました。
★印のコメントを付けた次の行を若干変更しています。
--------------------------------------------
//乱数生成関数
function rndInit(maxNum) {
// ★ math → Math
var a = Math.random();
var b = Math.ceil(a*maxNum);
return b;
}
// ★変数 count の初期化(Flash MX 以前はなくても可)
count = 0;
MC = "sakura";
SW = Stage.width;
SH = Stage.height;
this.onEnterFrame = function() {
if (rndInit(10) == 1) {
count++;
newName = MC+count;
// ★深度を変える 1 → count
attachMovie("sakura_mc", newName, count);
//表示位置の設定
this[newName]._x = Math.random()*SW;
this[newName]._y = Math.random()*SH;
}
};
------------------------------------------------
早速の回答ありがとうございます。
できました。が、どんどん桜の花びらが増えることに気づきました。
if ( count >= 10 ){
this.onEnterFrame = null;
}
を中に足せば、10枚で止めることができました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで改行の入ったデータの正規...
-
photoshopで書いた四角の枠の中...
-
ダブルクリックと2回クリックの...
-
画面の範囲選択
-
static関数がmapファイルに載ら...
-
変数に256文字以上のテキストを...
-
setIntervalの解除方法について
-
C言語でのマウスを移動とマウス...
-
楕円の軌道に傾斜をつける方法...
-
全てのテキストボックスをセル...
-
pythonの画像の貼り付けについて
-
VB.NETでパラメータクエリを使...
-
RPG(AS400)の本、サイトってあ...
-
VB6.0 でメニューを作りたいん...
-
五芒星は、悪魔崇拝とどういう...
-
IP Address 入力フォームについて
-
C# chart controlの透過について
-
sendAndLoadでcgiからの戻り値...
-
インスタンスとポインタ
-
ボタンの上にカーソルを置いた...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで改行の入ったデータの正規...
-
VBAユーザーホームテキストボッ...
-
ActionScript3.0の修正に関して
-
四角形の端っこをドラッグした...
-
tweenerを使ったスライドショー
-
FLASHでスロットゲームを作りた...
-
ラッコって?
-
テキスト入力
-
テキストファイルから読み込ん...
-
マウスホイールでムービークリ...
-
ActionScript3のMovieClipについて
-
縦横比率のを変えずに画像のサ...
-
ピクチャーコントロールのデバ...
-
ステージの背景画像のみ拡大縮...
-
ダイナミックテキストを印刷す...
-
AS3.0 Timerの使い方
-
Flashにて画像がスクロール
-
以下のActionScriptをスッキリ...
-
Flashで外部jpgファイルをmcに...
-
マウスが押されているのか(DOWN...
おすすめ情報