• 締切済み

duplicateMovieClip

xpでFlash8を使ってます。 ボタンを押すと玉がどんどん右に動くflashを作りたいのですが画面に2個しか玉が現れません。この場合、深度はどのようにかけばいいのでしょうか? ボタンは on(release){ for(i=1;i<=10;i++){ ball.duplicateMovieClip("en"+i,i); ball._x=100; ball._y=100; } } 玉は onClipEvent (enterFrame) { this._x += 5; } と記述されています。 分かる方教えてください!!おねがいします!

みんなの回答

noname#35109
noname#35109
回答No.1

先のことは一切考えないものとして, ご質問の for文 に関する回答のみを答えます。 書かれていらっしゃるスクリプトは, 深度の問題ではなくて座標の問題だと思います。 書かれていらっしゃるボタンのスクリプトに注釈行を入れると次のようになります。 --------------------------- // 変数 i が 10 以下でループ for(i=1;i<=10;i++){   // ball を en1~en10 で 深度 i に複製   ball.duplicateMovieClip("en"+i,i);   // ball の座標を 100, 100 に移動   ball._x=100;   ball._y=100; } --------------------------- en1~en10 ムービークリップは, ボタンが押されたときの ball の座標に全てコピーされます。 つまり,10個のムービークリップは複製されていますが, 座標が重なっているため,1つにしか見えないということです。 複製された en1~en10 はどこに配置したいのかは, 私にはわかりませんが,別々の座標を指定してください。 例えば次のようにするとか, --------------------------------- on (release) { // 変数 i が 10 以下でループ for (i=1; i<=10; i++) { // ball を en1~en10 で 深度 i に複製 ball.duplicateMovieClip("en"+i, i); // ball の座標を 100, 100 に移動 ball._x = 100; ball._y = 100; // en? の座標を i*20+100, i*20+100 に移動 this["en"+i]._x = i*20+100; this["en"+i]._y = i*20+100; } } --------------------------------- また,例えば次のようにするとか。 ---------------------------------- on (release) { // 変数 i が 10 以下でループ for (i=1; i<=10; i++) { // ball を en1~en10 で 深度 i に複製 ball.duplicateMovieClip("en"+i, i); // ball の座標を 100, 100 に移動 ball._x = 100; ball._y = 100; // en? の座標を 左上の方のランダムな座標に移動 this["en"+i]._x = Math.random()*Stage.width/2; this["en"+i]._y = Math.random()*Stage.height/2; } } ----------------------------------  

関連するQ&A