• 締切済み

変数に代入

はじめまして。早速なのですが、 a0からa9までのMCがステージ上にあります。 10個のmcの(_xと_y)の初期値を一気に変数に代入するにはどうしたらいいでしょうか?

みんなの回答

noname#35109
noname#35109
回答No.1

「変数に代入」 というより, _x,_y ですから,「座標プロパティに代入」 と言った感じのご質問ですよね。 その a0 から a9 が, _root(メインムービーのタイムラインのステージ上)にあったとして, それらの座標プロパティを変えるという前提で回答します。 場所(階層)によって,スクリプト(パス)が変わりますので。 そう言う場合は, たいてい,配列アクセス演算子( [ ] )を使って, インスタンスの名前に動的にアクセスし, それぞれのプロパティの値を変化させます。 しかし, 一気にプロパティの値を指定するには, 「一定の規則」 もしくは,「個々の座標データのデータベース」が必要です。 「一定の規則」 も,「個々の座標データ」も提示されていないので, a0 から a9 を,どういう座標に移動させたいのかわかりません。 ですから,数個のサンプルスクリプトを書きますので, 理解してやってみてください。 全てのスクリプトは, a0 から a9 が存在する キーフレーム に書くスクリプトです。 ◎ a0 から a9 を横一列に並べるスクリプト --------------------------------------------- // x軸方向に並べる間隔を設定 var intX = 50; // y座標を設定 var crdY = 200; // a0 ~ a9 までの座標を一気に代入 for (i=0; i<=9; i++) { _root["a"+i]._x = intX*i+10; _root["a"+i]._y = crdY; } --------------------------------------------- ◎ a0 から a9 を斜めに並べるスクリプト --------------------------------------------- // x軸方向に並べる間隔を設定 var intX = 50; // y軸方向に並べる間隔を設定 var intY = 40; // a0 ~ a9 までの座標を一気に代入 for (i=0; i<=9; i++) { _root["a"+i]._x = intX*i+10; _root["a"+i]._y = intY*i+10; } --------------------------------------------- ◎ a0 から a9 をランダムに並べるスクリプト --------------------------------------------- // 余白を設定 var mrg = 20; // a0 ~ a9 までの座標を一気に代入 for (i=0; i<=9; i++) { _root["a"+i]._x = Math.random()*(Stage.width-mrg)+mrg; _root["a"+i]._y = Math.random()*(Stage.height-mrg)+mrg; } --------------------------------------------- ◎ a0 から a9 データに従って並べるスクリプト --------------------------------------------- // 座標配列の作成 var arr = new Array(); // 各座標の設定(2次元配列) arr[0] = [20, 50]; arr[1] = [20, 100]; arr[2] = [20, 150]; arr[3] = [20, 200]; arr[4] = [20, 250]; arr[5] = [220, 125]; arr[6] = [220, 175]; arr[7] = [220, 225]; arr[8] = [320, 150]; arr[9] = [320, 200]; // a0 ~ a9 までの座標を一気に代入 for (i=0; i<=9; i++) { _root["a"+i]._x = arr[i][0]; _root["a"+i]._y = arr[i][1]; } --------------------------------------------- このような感じで, 配列アクセス演算子を使います。

すると、全ての回答が全文表示されます。

関連するQ&A