as3 getChildByNameに変数を利用する
※実際にやりたいことは違うのですが、
分かりやすくするため簡易的にしています。
ステージに配置された2つのインスタンスを
y=300に移動するというものを作りたいと思っています。
(実際には100以上になるので動的に生成したいです。)
var num:int = 2;
var _mc:Array = [];
var _mcName:Array = [];
for(var i=0; i < num; i++){
_mc.push("test_mc"+i);
_mcName.push("test_mc"+i);
}
for(var n=0; n < num; n++){
_mc[n] = new MovieClip;
_mc[n].addEventListener(Event.ENTER_FRAME, function() {
MovieClip(getChildByName(_mcName[n])).y = 300;
});
}
上記を実行すると下記のエラーが出ます。
TypeError: Error #2007: パラメータ name は null 以外でなければなりません。
at flash.display::DisplayObjectContainer/getChildByName()
at MethodInfo-1()
下記のように並べて記述するとうまくいくのですが・・・・
これを100個以上も書くのはばかばかしいので。。。
_mc[0] = new MovieClip;
_mc[0」.addEventListener(Event.ENTER_FRAME, function() {
MovieClip(getChildByName(_mcName[0])).y = 300;
});
_mc[1] = new MovieClip;
_mc[1」.addEventListener(Event.ENTER_FRAME, function() {
MovieClip(getChildByName(_mcName[1])).y = 300;
});
ご教授お願いいたします!
お礼
BlurFiltanさん、ご指摘の通り >gotoAndStop(2) の 2 が全角になっているから 全角でした。 何というミス!! 恥ずかしいです。 おかけでgetChildByNameは、めったに使用しないことや、this[]の使い方の理解が深まりました。 ありがとうございます。 感謝!