html5 画布中的基本 mouseover mouseout 事件对我不起作用

Posted

技术标签:

【中文标题】html5 画布中的基本 mouseover mouseout 事件对我不起作用【英文标题】:Basic mouseover mouseout events in html5 canvas don't work for me 【发布时间】:2017-11-26 21:30:03 【问题描述】:

我正在为动画制作而苦苦挣扎,我通常是逐帧动画师,但我必须做一个 UI。

我创建了一个skitz,只是为了测试事件的工作方式,但我已经在第一步遇到了麻烦。 有一个图形布局,在它之上我创建了一个带有点击框的不可见按钮,我使用了这个 处理事件的代码:

*/* Mouse Over Event
Mousing over the symbol instance executes a function in which you can add your own custom code.


Instructions:
1. Add your custom code on a new line after the line that says "// Start your custom code" below.
The code will execute when the symbol instance is moused over.
frequency is the number of the times event should be triggered.
*/
var frequency = 3;
stage.enableMouseOver(frequency);
this.button_1.addEventListener("mouseover", fl_MouseOverHandler_3);


function fl_MouseOverHandler_3()

  // Start your custom code
  // This example code displays the words "Moused over" in the Output panel.
  this.gotoandplay(113);
  // End your custom code
*

这是来自工作区的图像: image

对于鼠标悬停,我不知道为什么 animate 会显示“this.button_1”,因为我在使用代码 sn-p 时检查的按钮称为“sirtonim”,我尝试更改它,但是当我这样做时,事件甚至不会停留在这一帧。 (我有另一个使用 this.stop(); 处理框架的操作)

我无法通过 mouseout 事件对其进行测试,也许它有效,也许它不起作用。

先谢谢了!

【问题讨论】:

我已经通过在这部分添加 '.bind(this)' 来修复鼠标悬停事件:"mouseover", fl_MouseOverHandler_3 【参考方案1】:

好的,我已经通过以下方式解决了这两个问题:

在事件名称后添加.bind(this)

我还注意到,鼠标移出事件的唯一错误是我选择的帧号,在 html5 画布中,帧从零开始,所以如果你想到达帧 112,你需要写 111,少 1 个。

【讨论】:

以上是关于html5 画布中的基本 mouseover mouseout 事件对我不起作用的主要内容,如果未能解决你的问题,请参考以下文章

HTML5怎样创建画布?

如何将画布保存为html5中的图像?

画布中的 HTML5 图像适合问题

用 HTML5 画布制作一个简单的汽车游戏

html5:在画布内显示视频

html5:在画布内显示视频