对于Flash中的HTML5 canvas
项目,这是一个Javascript问题。我正在尝试将movieClip cta
作为一个按钮,一旦它被鼠标移动以播放this.cta.gotoAndPlay(1);
。我正在使用Flash Canvas中建议的代码段中的代码,我在鼠标悬停时遇到以下错误:TypeError: this.cta is undefined
那么如何从此函数中调用cta
?
仅供参考,alert
适用于下面的代码(当MC被鼠标悬停时),this.cta.gotoAndPlay(1);
也可以在此代码块之外放置在时间轴中。
这是javascript flash(canvas)在代码段中的建议。
var frequency = 3;
stage.enableMouseOver(frequency);
this.cta.addEventListener("mouseover", fl_MouseOverHandler);
function fl_MouseOverHandler()
{
alert("Moused over");
this.cta.gotoAndPlay(1);
}
这是旧的AS3。
cta.onRollOver = function(){
this.gotoAndPlay("start");
答案 0 :(得分:1)
我明白了。我在.bind(this)
的{{1}}末尾添加了fl_MouseOverHandler
。它对我有用。
EventListener
答案 1 :(得分:-1)
您的事件侦听器未正确设置,因为鼠标事件的外观应如下所示:
this.cta.addEventListener(MouseEvent.ROLL_OVER, fl_MouseOverHandler);
除非你正在收听另一个customEvent,否则你需要将它指向它正在收听的事件。
也只是要指出你是否在同一个movieClip中查看某个内容,只要它在同一个动画片段中有一个实例名称,你不需要在开始时放置this
它可以是:< / p>
cta.addEventListener(MouseEvent.ROLL_OVER, fl_MouseOverHandler);