メイン 迷える子羊の部屋【初心者専用】
変数名、インスタンス名について | 投稿するにはまず登録を |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | スレッド |
|---|---|
| yakumo | Åê¹ÆNo.42432 投稿日時: 2009-5-28 17:19 |
常連 ![]() ![]() 居住地: 東京 投稿: 67
使用環境:
WinVista,FlashCS4,Actionscript3.0 |
変数名、インスタンス名について 下記の??のケースについて教えて下さい。
?に関してはimgLoaderをforの外で生成しているので、forの中では単純にそのインスタンス名を5回連呼していると理解しています。 ?のケースに関してですが、imgLoaderを5回同じ変数名で生成しているので、実体は1つで5回上書きされると考えていました。 しかし、name属性を調べてみるとインスタンス名が連番で自動的に付き、別の変数が5つ生成されているように見受けられます。 ?に関しては納得できますが、?の方はどのように理解すればよいのでしょうか? ////////////////?///////////////// var imgLoader:Loader = new Loader(); for (var i:uint=0; i<5; i++) { trace(imgLoader.name); } ///////////////?////////////////// for (var i:uint=0; i<5; i++) { var imgLoader:Loader = new Loader(); trace(imgLoader.name); } /////////////////////////////////// ?の場合の出力結果 instance1 instance1 instance1 instance1 instance1 ?の場合の出力結果 instance1 instance2 instance3 instance4 instance5 |
| 森 巧尚 | Åê¹ÆNo.42435 投稿日時: 2009-5-28 20:24 |
モデレータ ![]() ![]() 居住地: 宝塚 投稿: 650
使用環境:
.5/ CS4/Safari3 XP+2000/ /IE6 |
Re: 変数名、インスタンス名について ?は、Loaderを1個新しく作ってから、5回その名前を表示しているので、同じ名前が5個表示されています。
?は、Loaderを新しく作って(作り直して)その名前を表示する、というのを5回繰り返しています。つまり、5個作ってます。 newするたびに新しいインスタンスが作られるので、5つの違う名前が表示されることになります。 どちらも、新しく作ったLoaderを「imgLoader」という変数に代入していますが、?のほうはこのままでは使いにくいでしょう。 ?のほうは作ったLoaderが代入されているのでimgLoaderですぐにアクセスできますが、?のほうは、毎回代入して上書きし直しているわけですから、5つ目のLoaderだけが入っていることになります。 それぞれに何か処理を行う場合、for文の中ですべての処理を行ってしまう方法もありますが、imgLoaderを配列にして5つの変数を用意しておくのがいいでしょうね。
|
| yakumo | Åê¹ÆNo.42436 投稿日時: 2009-5-28 20:39 |
常連 ![]() ![]() 居住地: 東京 投稿: 67
使用環境:
WinVista,FlashCS4,Actionscript3.0 |
Re: 変数名、インスタンス名について 森さま
ご返信有難うございます。 ?は結論として、5つのインスタンスを生成しているが、全部同じ変数名ということですね。だから変数で個々を呼び出せないので使い勝手が悪くなるということですね。 恐れ入りますが、2点ほど分からない事があります。 [1]インスタンス名は特に指定しない場合、勝手に割り振られるのでしょうか? [2]imgLoaderを配列にして5つの変数を用意…というのは、どういうことでしょうか? 引用:
|
| 森 巧尚 | Åê¹ÆNo.42437 投稿日時: 2009-5-28 22:03 |
モデレータ ![]() ![]() 居住地: 宝塚 投稿: 650
使用環境:
.5/ CS4/Safari3 XP+2000/ /IE6 |
Re: 変数名、インスタンス名について 引用:
配列を用意しておいて、そこに順番にいく方法などです。
|
| 野中文雄 | Åê¹ÆNo.42438 投稿日時: 2009-5-28 22:35 |
ちょんまげら ![]() ![]() 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: 変数名、インスタンス名について ActionScript 3.0では、動的に生成するインスタンスのDisplayObject.nameプロパティの値は、あまり利用する意味がないように思われます。
参考: F-site「MovieClipインスタンスとインスタンス名」 引用: yakumoさんは書きました: なお、機種依存文字のご使用はお控えください。 |
| yakumo | Åê¹ÆNo.42441 投稿日時: 2009-5-29 12:29 |
常連 ![]() ![]() 居住地: 東京 投稿: 67
使用環境:
WinVista,FlashCS4,Actionscript3.0 |
Re: 変数名、インスタンス名について 森さま、野中さま
ご返信ありがとうございます。 このような動的生成のケースでは、インスタンス名をもとにアクセスするのではなく、配列を1つ生成してその中に要素を格納してインデックス番号等でアクセスするのが通常の考え方なんですね。 この辺の考え方が非常によく理解できました。 どうもありがとうございます。 また機種依存文字気を付けます。 今後ともどうぞよろしくお願いいたします。 |
| sorate | Åê¹ÆNo.42444 投稿日時: 2009-5-30 11:01 |
新米 ![]() ![]() 居住地: 投稿: 1
使用環境:
|
Re: 変数名、インスタンス名について ActionScript1.0は文法がJavaScriptに似ているが、ActionScript2.0からはクラスベースのオブジェクト指向言語になりJavaに似通っている。 ActionScriptではすべてのデータをオブジェクトと見なしている。Flashではプログラミングコードを記述する場所が複数あり、タイムラインのフレーム上に書いた場合とクラスとして外部ファイルに書いた場合と記述の仕方が若干異なる。また、ActionScript2.0(Flash 8)まではムービークリップまたはボタン上にプログラミングコードを記述できたが、ActionScript3.0(Flash CS3)で廃止された。 ここではActionScript3.0の文法を説明していく。
|
| ひろゆき | Åê¹ÆNo.42453 投稿日時: 2009-5-31 10:37 |
ちょんまげら ![]() ![]() 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CCSafari 6.1 |
Re: 変数名、インスタンス名について 先の投稿は、「ActionScript - Wikipedia」からの抜粋で、
回答にはなっていないように思います。 アカウント削除も含め、対応された方がよろしいのでは?
|
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
| 投稿するにはまず登録を | |



ログイン




.5/
CS4/Safari3
XP+2000/
/IE6






