トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     MCを動的に生成してインスタンス名をつけたい AS3.0
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
tomochan
Åê¹ÆNo.49204
投稿日時: 2012-7-17 15:07
半人前
居住地: サッポロ
投稿: 37
使用環境:
XP FLASH PRO CS5
MCを動的に生成してインスタンス名をつけたい AS3.0
こんにちわ
配列で指定したストリングをインスタンス名にしたmovieclipに配置したいです。

//読み込んだ画像を入れるMCのインスタンス名
var instancearray:Array = new Array("mc_left","mc_center","mc,right");
var instancearray[0]:MovieClip = new MovieClip();

だとエラーが出てしまいます。
var instancearray[0]:MovieClip = new MovieClip(); を
instancearray[0] = new MovieClip();にするとエラーは出なくなりますが

mc_leftというインスタンス名でアクセスすることができません

インスタンス名を配列や変数から生成してMovieClipを作ることはできないのでしょうか?

コマツ
Åê¹ÆNo.49205
投稿日時: 2012-7-17 15:38
職人
居住地: 東京都葛飾区
投稿: 356
使用環境:
windows7
CS5.5 CS6
Re: MCを動的に生成してインスタンス名をつけたい AS3.0
tomochan さん、こんにちは。

ActionScript3.0では、動的に作成したMovieClipには、自動的にインスタンス名を設定されてしまいますので、配列の値をインスタンス名としては使えないかと思います。

F-siteの野中さんの記事がわかりやすいかと思います。


[AS3] MovieClipインスタンスとインスタンス名
http://f-site.org/articles/2008/04/19014939.html

どうしても名前でアクセスしたいのであれば、上記リンク先にもありますが、動的に作成したMovieClipにnameプロパティを設定し、その後の参照はgetChildByNameを使用してみてはいかがでしょうか?
tomochan
Åê¹ÆNo.49206
投稿日時: 2012-7-17 16:00
半人前
居住地: サッポロ
投稿: 37
使用環境:
XP FLASH PRO CS5
Re: MCを動的に生成してインスタンス名をつけたい AS3.0
Komatsuさんありがとうございます!
>>ActionScript3.0では、動的に作成したMovieClipには、自動的にインスタンス名を設定されてしまいますので、配列の値をインスタンス名としては使えないかと思います。

なるほど、ただそうなると複数のMCをfor文などで動的に作成したあと、それぞれ個別に挙動を割り振りたい場合などはどうするんですかね...

リンク先熟読してみます!
コマツ
Åê¹ÆNo.49207
投稿日時: 2012-7-17 16:16
職人
居住地: 東京都葛飾区
投稿: 356
使用環境:
windows7
CS5.5 CS6
Re: MCを動的に生成してインスタンス名をつけたい AS3.0
引用:
なるほど、ただそうなると複数のMCをfor文などで動的に作成したあと、それぞれ個別に挙動を割り振りたい場合などはどうするんですかね...


やり方は色々とあると思いますが、ひとつの考え方として、インスタンス名に拘らず、配列やVectorにMovieClipの参照を渡す方法を考えてみてはどうでしょうか?


var mcAry:Array = [];
for(i=0;i<=10;i++){
 mcAry[i] = new MovieClip();
}
trace(mcAry[0]);


名前に拘る必要がある場合には、向かないかと思いますけどね。
野中文雄
Åê¹ÆNo.49208
投稿日時: 2012-7-17 17:28
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: MCを動的に生成してインスタンス名をつけたい AS3.0
ActionScript 3.0では(他の強く型づけされた言語も含め)、動的な変数(var)宣言はできません。

動的につくったインスタンスを配列に入れたのでは、インデックスで参照することになり、名前が使えないということでしたら、Objectインスタンスに任意のプロパティ名で納めればよいのではないでしょうか。


----------------
 

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops