事件监听器曾经在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;
})
};