事件监听器曾经在HTML5 Canvas中的CreateJS/Animate CC中渲染火焰

问题描述:

Animate CC,HTML5 Canvas。我有一个动画,有几个点击退出,Twitter,Facebook等动画有一个重复按钮。在第一次播放时,当我点击twitter退出时,只有一个twitter页面打开,在第二次播放时,我点击相同的退出按钮,并打开两个twitter页面(等ad-infinitum。如果我点击重复50次如果将打开50个twitter页面:))。事件监听器曾经在HTML5 Canvas中的CreateJS/Animate CC中渲染火焰

下面是从架342一个代码片段:

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

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

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

我试过同一框架上移除事件侦听器(在回放功能),而且我仍然得到发生同样的事情,这+1重播广告后,每次打开的窗口都会触发clicktag1等。我怎样才能解决这个问题?我不确定事件侦听器是否真的被删除,或者发生了什么。

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

基本上我的听众是射击每次我重新播放动画+1倍。我尝试了解决方案here,并没有在我的情况下工作。我怎样才能解决这个问题?

好吧,我解决了它。

我上动画CC帧加入,从动画CC帧的旗帜重播2 (createjs's frame 1)(所以它永远不会起到最初在再次定义root.x的帧),并且我切换出事件侦听代码下面,包裹在if声明中测试root.x。这个对我有用。

if (root.x === 1){ 
root.twBtn.on("click", function(evt){ 
    window.open(clickTag1, "_blank"); 
    y=y+1; 
    }) 
};