0

我的图片库有 8 帧。第一帧的AS3层有几行AS3:

stop();

var picsArrayYouthVillage:Array = new Array(pic1,pic2,pic3,pic4,pic5,pic6,pic7,pic8);
for each (var pic in picsArrayYouthVillage)
{
pic.buttonMode = true;
}



for(var i = 0; i<8; i++)
{

trace("hi");
picsArrayYouthVillage[i].addEventListener(MouseEvent.CLICK, jumpToFrame);

}

function jumpToFrame(m:MouseEvent):void{
gotoAndStop(m.target.name + "_frame");

}

在图片层有 8 帧包含图片和缩略图按钮 (pic1,...pic8)

问题是当我使用拇指导航时,每次单击第一个按钮并跳转到第 1 帧时,都会再次添加事件侦听器。

有任何想法吗?谢谢大家。

4

1 回答 1

0

您可以在添加事件侦听器之前检查对象是否具有事件侦听器

for(var i = 0; i<8; i++) {

  if (!picsArrayYouthVillage[i].hasEventListener(MouseEvent.CLICK)) {
       trace("hi");
       picsArrayYouthVillage[i].addEventListener(MouseEvent.CLICK, jumpToFrame);
  }

}

编辑

在我尝试了代码之后,我发现了问题,也改变了这个代码

var picsArrayYouthVillage:Array = new Array(pic1,pic2,pic3,pic4,pic5,pic6,pic7,pic8);

var picsArrayYouthVillage:Array;

if (picsArrayYouthVillage == null) {
     picsArrayYouthVillage = new Array(pic1,pic2,pic3,pic4,pic5,pic6,pic7,pic8);
}

请记住在 if 条件中跟踪 hi。如果有效,它应该是八喜,而且只有一次。

于 2013-08-25T12:03:22.887 回答