所以我在一个容器movieclip中生成了65个movieclip。(它在一个容器中,因为它在一个游戏中并且它在一个弹出窗口中。)通过访问库中的 AS3 链接的 MovieClip 来创建 MovieClip。每个都存储在一组 MovieClips 中。从那里我将一些文本信息(包括一些隐藏的文本)放入每个信息中,并添加一些事件侦听器。代码本身工作得很好,除了一件事。事件侦听器接收目标作为 MovieClip 内的 TextField 之一,而不是 MovieClip 本身。我绝对确定鼠标事件侦听器已应用于电影剪辑。
for (var i:int = 0; i < mcArray.length; i++)
{
mcArray[i] = new IDButton();
MovieClip(mcArray[i]).tf1.text = String(ID1[i])
MovieClip(mcArray[i]).tf2.text = String(ID2[i]);
MovieClip(mcArray[i]).tf3.text = String(ID3[i]);
MovieClip(mcArray[i]).tf1.selectable = false;
MovieClip(mcArray[i]).tf2.selectable = false;
MovieClip(mcArray[i]).tf3.selectable = false;
MovieClip(mcArray[i]).tf1.visible = false;
MovieClip(mcArray[i]).tf2.visible = false;
MovieClip(mcArray[i]).name = "MC" + String(i);
container.addChild(MovieClip(mcArray[i]));
MovieClip(mcArray[i]).addEventListener(MouseEvent.CLICK, mcClickHandler);
MovieClip(mcArray[i]).addEventListener(MouseEvent.ROLL_OVER, mcHoverHandler);
MovieClip(mcArray[i]).addEventListener(MouseEvent.ROLL_OUT, mcOffHandler);
MovieClip(mcArray[i]).x = 0;
MovieClip(mcArray[i]).y = MovieClip(mcArray[i]).height * i;
}
(老实说,我不知道那里有 MovieClip 是否是多余的。我想这表明我对 Flash 普遍缺乏信任。)
所以为了测试,我在 mcClickHandler 函数中跟踪了目标名称,它一直返回“tf3”。