紛らわしいタイトル、悪い。
基本的に、私は名前のリストを持っています。ループして、ムービークリップを追加し、それに 2 つのプロパティ、名前、および ID を設定します。MovieClip は同時にボタンとして機能するように作成され、4 つのリスナー (マウスのアップ、オーバー、ダウン、またはアウト) を追加します。私はすべての名前でこれを行います。それぞれが設定されている機能は同じです。
例:enemyButton[i].addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
クリックすると、時々「有効なプロパティではありません」と表示されますが、まったくクラッシュしませんが、ボタンを数回押す必要がある場合があります。
私は問題をリスナーに起因するものに絞り込みました。
関数は次のように単純です。
例: function mouseUpHandler(e:MouseEvent):void {enemySelected(e.target.enemyID); }
私の質問は、あまりにも多くのリスナーが問題になる可能性が高いですか? どうすればそれらを減らすことができますか?
ループのスニペットを次に示します。
var C:Class = Class(getDefinitionByName(enemies[i]));
var c:* = new C();
c.gotoAndStop(1);
enemyButton[i].enemyID = i;
c.name = "select" + i;
c.enemyID = i;
trace(c.enemyID);
enemyButton[i].addChild(c);
enemyScroll.addChild(enemyButton[i]);
enemyButton[i].enemyName.text = info[i][Const.NAME];
enemyButton[i].setChildIndex(enemyButton[i].getChildByName("enemyName"), enemyButton[i].numChildren-1);
ありがとう。