• 締切済み

変数に代入

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

  • Flash
  • 回答数1
  • ありがとう数0

みんなの回答

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

  • マクロに変数を代入

    題名のとおりなのですが 例えば Range("X").Select Selection.Copy Range("Y").Select ActiveSheet.Paste のXYに変数の行列 X Y a1 a2 b1 b2 c1 c3 等を代入してマクロ繰り返し試行させることは可能なのでしょうか?

  • binファイルが軽くなる変数への代入処理について

    変数に値を代入する方法はいろいろあるかと思いますが、 コンパイル後に最もバイナリファイルが軽くなる処理はどのような処理でしょうか。 例として、1000バイトのデータを変数に代入する際、 (1)直接一つずつ代入する。 data[0] = 0x00; data[1] = 0x00; ・・・ data[999] = 0x00 (2)変数の定義時に代入(初期化)を行う。 unsigned char data[1000] = {0x00,0x00,・・・・0x00} 等ありますが、どちらの処理が有効でしょうか。 また、その他有効な処理方法等がありましたら、ご教授願います。 グローバル変数として定義するか、かローカル変数として定義するか、 defineで代入値を持つ等、定義時の方法でも違いがありましたら、 教えて頂けると助かります。

  • クラスの代入について

    class MyClass { }; というのがあったとすると, MyClass mc1, mc2; mc2 = mc1; というのはmc1のアドレスをmc2に代入している,ということになるのでしょうか? それともmc2のメンバ変数にすべてmc1のメンバ変数を代入したことになるのでしょうか?

  • JavaScriptの変数への代入について

    <単純なデータ型> 1. 以下のようなケースでxに5という値を代入すると1行目の「let x = 1;」で「x」の値が5に変わるというのは理解できます。 この場合、2行目は「y」の値は「1」のままです。「5」でないのがわかりません。 代入したことによって「let y =x」へは影響を及ぼさないのはなぜですか? 少なくともスコープの範囲以内は代入の影響が出るものと考えてしまいます。 { let x = 1; let y = x; x = 5; console.log(x); //5 console.log(y); //1 } <配列> 2.このような配列の場合、「x[0]」に配列である[1, 2];が代入されているわけですよね。 以下のように「x[0]」に5を代入した場合、console.logで見てみると、[5, 2]となるのは理解できます。 しかし、2行目の「let y = x;」も[5, 2]となっています。 上の単純なデータ型のケースをもとに考えるならば、ここは[1, 2]のままでないのはなぜなのでしょうか? 試しに自分で「x[1]」に書き換えてみると両方とも「1, 5」となります。 { let x = [1, 2]; let y = x; x[0] = 5; console.log(x); //[5, 2] console.log(y); //[5, 2] } なぜ、単純なデータ型と配列ではパターンが異なってくるのでしょうか? 初心者です。学習中でまだ基礎的な段階なのですが、つまづいてしまいました。 分かる方いらっしゃいましたら教えて下さい。よろしくお願いいたします。

  • 変数の代入について

    他のファイルを参照し変数に代入しましたが 参照式まで代入されてしまいますが、これを回避したいです。 ='C:\フォルダ名\[ファイル名.csv]シート名'!$A$1 理由としては、参照先を知られたくないためです。 Dim A(9) As Variant A(0) = Path & "!$A$1" 'ここの部分の書き方を教えてください。 .Range("B1").Value = A(0) 変数は入力ミスをした場合に元に戻すために使います。

  • 超基本 変数への代入教えてください。

    dim mychr as string * 255 mychrという変数を255個宣言しているのは分かりますが、どうやって代入するかが分かりません。ちなみに mychr=vbnullstring '初期化 mychr="ABCDEFG" mychr="A" mychr(0)="A" 全部だめでした、本で調べるにも調べようがなく、ご教授お願いいたします。

  • 画像をクリックしてその地点の座標を変数x、yに代入したいのですが

    画像をクリックしてそのクリック地点の座標を変数x、yに代入したいのですがどのように書けばいいのでしょうか?

  • テキストボックスの値を変数に代入したい。

    テキストボックスの値を変数に代入したいのですが、どういうコードを書けばいいですか? 例えばTextBox1の値を変数xに代入したいのですが。

  • 変数の大きさを超える代入

    現在作っているプログラムで、一定時間ごとに変数に一定値が 加算され続けるような場所があります。 基本的にはint型の最大値を超えることはまずないのですが、 C言語やC++でたとえばint型で宣言した変数に対し、x++; のように一定周期ごとに記述して加算してゆき、最大値である、 +2147483647を超えた場合、xには何が代入されているんでしょうか。 -2147483648~+2147483647が範囲ですから、一周して、 最低値である-2147483648に加算されてゆくことになるのでしょうか? それとも、超えることが予想される場合、最大値を超えたら0にするなど 明示的に何らかの対処をしたほうがよいのでしょうか。 プログラム的には中身の数値に関してはあまり関係ないので、 その変数型の範囲で不可なく動作するなら問題ありません。 超えることが予想される場合、対処するべきなのか、 放っておいてもよいのかどうかを教えていただきたいです。

  • 代入する時に-になるのは何故?

    y=2x+71(1) y-6x >21(2) (1)を(2)に代入 (2x+71)-6x>21 ↓ 2x+71-6x>21の場合はわかるんですが a=2x-4(1) (100-a)<4x(2) (1)を(2)に代入 100-(2x-4)<4x ↓ 100-2x+4<4x この場合は+と-が反対になってますよね? 違いと言えば、()の左側に-があるか無いかですが 詳しくわかりませんので、ご存じの方、教えてください。

専門家に質問してみよう