混乱的标题,我的错。
基本上,我有一个名字列表。通过循环,我添加了一个 MovieClip,为其设置 2 个属性、名称和一个 ID。MovieClip 同时用作按钮,我添加了 4 个侦听器,鼠标向上、鼠标悬停、鼠标悬停或鼠标悬停。我对每个名字都这样做。每个设置的功能都是一样的。
例如:enemyButton[i].addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
当我单击时,enemyID 有时会出现“无效属性”,它根本不会崩溃,但有时我必须按几次按钮。
我已将问题缩小到必须由听众引起。
函数很简单:
例如:函数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);
谢谢。