gpt4 book ai didi

javascript - 如何使用 createjs 定位 MovieClip

转载 作者:行者123 更新时间:2023-12-03 08:23:47 24 4
gpt4 key购买 nike

我正在尝试导出一个合影动画,该动画在 Flash 中运行良好,但在 html5 Canvas 中导出时则不行。

技巧很“简单”:每张照片都是一个按钮,当您将鼠标滑到某人的照片上时,就会出现他的职位。

我无法用 createjs 实现它!

我的舞台上有一个名为“jobs_cont”的 MovieClip 实例,其时间线对于每个人的职位都有不同的关键帧和标签。

问题是,当按钮悬停时,我没有成功定位“jobs_cont”并在其时间轴中使用 gotoAndPlay 特定帧或标签。

单独识别“警报指令”,但不识别“jobs_cont.gotoAndPlay”:

var frequency = 3;
stage.enableMouseOver(frequency);
this.mybutton.addEventListener("mouseover", fl_MouseOverHandler);
function fl_MouseOverHandler(){
this.jobs_cont.gotoAndPlay("mylabel");
alert("hovered by mouse");
// end of your personalized code
}

我想我一定错过了 createjs 中针对“jobs_cont”的东西,但我是 javascript 的新手,尽管我进行了一天的研究,但还是无法弄清楚。如果有人能给提示的话。谢谢。

最佳答案

您正在处理范围问题。如果您使用上述语法在时间轴上定义函数,则该函数没有作用域,因此 this 变为 Window

您可以更改要在当前对象上定义的函数语法:

this.fl_MouseOverHandler = function(){ 
this.jobs_cont.gotoAndPlay("mylabel");
alert("hovered by mouse");
// end of your personalized code
}

最后,JavaScript 不会自动为事件监听器提供函数作用域(目前为止!),因此您必须自己确定函数的作用域。如果您拥有 0.7.0 或更高版本的 EaselJS,则可以使用 on 方法而不是 addEventListener ( docs )。请注意,您还必须使用 this.fl_MouseOverHandler

this.mybutton.on("mouseover", this.fl_MouseOverHandler, this);

您还可以使用实用程序方法来确定函数的范围,例如 Function.prototype.bind() ( docs ):

this.mybutton.addEventListener("mouseover", this.fl_MouseOverHandler.bind(this));

希望有帮助!

关于javascript - 如何使用 createjs 定位 MovieClip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33638757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com