0

动画 CC、HTML5 画布。我有一个动画,有几个点击退出,到 twitter、facebook 等。动画有一个重复按钮。在第一次播放时,当我单击 twitter 退出时,只会打开一个 twitter 页面,在第二次播放时,我单击相同的退出按钮,它会打开两个 twitter 页面,(依此类推,无限循环。如果我点击重复 50 次如果会打开 50 个推特页面 :) )。

这是第 342 帧中的一个代码片段:

root.twBtn.addEventListener("click", fl_MouseOverHandler_2.bind(this));

var frequency = 3;
stage.enableMouseOver(frequency);

function fl_MouseOverHandler_2(){
    window.open(clickTag1, "_blank");
}

我尝试在同一帧上删除事件侦听器(在重播函数中),但我仍然遇到同样的事情,每次在重播广告后触发 clicktag1 等时都会打开这个 +1 的窗口。我怎样才能解决这个问题?我不确定事件侦听器是否真的被删除了,或者发生了什么。

// Replay
root.reBtn.on("click", function(evt){
    root.twBtn.removeEventListener("click", fl_MouseOverHandler_2);
    root.gotoAndPlay("start");
});

基本上,每次我重播动画时,我的听众都会触发 +1 次。我在这里尝试了解决方案,但在我的情况下不起作用。我怎样才能解决这个问题?

4

1 回答 1

0

好的,我解决了。

root.x = 1;在 Animate CC Frame 1 上添加(createjs's frame 0),横幅从 Animate CC Frame 2 重播(createjs's frame 1)(因此它永远不会播放root.x最初定义的帧),然后我切换了以下事件监听器代码,并包含在if语句 testingroot.x中。这个对我有用。

if (root.x === 1){
root.twBtn.on("click", function(evt){
    window.open(clickTag1, "_blank");
    y=y+1;  
    })
};
于 2017-03-21T06:33:24.797 回答