多个ADOBE ANIMATE CC按钮控制时间轴不工作
我必须控制html5 canvas的动画时间轴。我制作了所有按钮并编辑了所有代码。奇怪的是所有按钮都执行相同的功能。多个ADOBE ANIMATE CC按钮控制时间轴不工作
this.stop()
//---------------------------------------------------------//
this.letterA.addEventListener("click", fl_MouseClickHandler.bind(this));
function fl_MouseClickHandler()
{
this.gotoAndPlay(32);
}
//---------------------------------------------------------//
//---------------------------------------------------------//
this.letterB.addEventListener("click", fl_MouseClickHandler.bind(this));
}
function fl_MouseClickHandler()
{
this.gotoAndPlay(212);
}
请阅读关于function hoisting;函数语句提升到*的范围的,让你的代码就相当于
function fl_MouseClickHandler() {
this.gotoAndPlay(32);
}
function fl_MouseClickHandler() {
this.gotoAndPlay(212);
}
...
this.stop()
this.letterA.addEventListener("click", fl_MouseClickHandler.bind(this));
this.letterB.addEventListener("click", fl_MouseClickHandler.bind(this));
一个解决办法是使用函数表达式:
var that = this;
this.letterA.addEventListener("click", function() { that.gotoAndPlay(32); });
,或者你坚持使用bind
this.letterA.addEventListener("click", (function() { this.gotoAndPlay(32); }).bind(this));
我试过这个: this.stop(); var letterA = this; this.letterA - 阅读进度 - ( “点击”,函数(){ \t letterA.gotoAndPlay(97) }); VAR letterB =此; this.letterB.addEventListener( “点击”,函数(){ \t letterB.gotoAndPlay( 108) }); 它似乎已经工作了,我会在主文件上试试看看它是否有效。非常感谢! –
从我可以告诉你,你绑定相同的功能,以两个不同的按钮单击事件。你有这个相同功能的两个不同的定义。其中一个很有可能被写入另一个,因此两个按钮都会调用fl_MouseClickHandler,它将使用相同的时间戳调用gotoAndPlay。
快速修复可能只是改变fl_MouseClickHandler名称:
function fl_MouseClickHandlerA() {
this.gotoAndPlay(32);
}
function fl_MouseClickHandlerB() {
this.gotoAndPlay(212);
}
this.letterA.addEventListener("click", fl_MouseClickHandlerA.bind(this));
this.letterB.addEventListener("click", fl_MouseClickHandlerB.bind(this));
此外,你应该看你怎么用“这个”,你可能不会作用域你的想法。
工作得很好!非常感谢你 –
upvote呢? :) –
我试过,但该网站不会让我:第 –
此外,此代码由adobe CC“生成”。因为我不是一个编码员,只是一个微薄的动画师,我只是复制并粘贴了一个编辑符号的名字。 –