舞台上的Adobe Animate CC Canvas鼠标动作缓慢且间歇

斑马特工

在Adobe Animate CC HTML5 Canvas(createJS)中,我试图做一些非常简单的事情,即在整个广告阶段都触发动画过渡moused over,并在鼠标离开阶段时触发动画过渡它应该非常简单,但事实并非如此。mouseentermouseleave上使用时stage比较费时,并且只能间歇性地工作。mouseover和和相同mouseout

这是冗长而断断续续的代码:

stage.addEventListener("mouseenter", fl_MouseOverHandler.bind(this));
stage.addEventListener("mouseleave", fl_MouseOutHandler.bind(this));

function fl_MouseOverHandler(){
    this.btnOverAnim.gotoAndPlay("on");
}

function fl_MouseOutHandler(){
    this.btnOverAnim.gotoAndPlay("off");
}

我也试过mouseovermouseout按钮上舞台的整体大小和我有同样的问题。(这样一来,在框架内根本无法正常工作,并且在框架内投放广告)。我提出了var frequency解决办法,以90帮助解决滞后问题,但没有。

这是简单的mouseover/mouseout代码我尝试:

var frequency = 90;
stage.enableMouseOver(frequency);

this.bgCta.addEventListener("mouseover", fl_MouseOverHandler.bind(this));
this.bgCta.addEventListener("mouseout", fl_MouseOutHandler.bind(this));

createJS网站上,它显示“您可以通过使用stage.mouseInBoundsAND mouseleave/mouseenter事件来监视指针是否在画布上”。所以我想知道使用stage.mouseInBounds是否会有所帮助(但我找不到任何如何使用它的示例)。但实际上我认为这不会有帮助,因为我认为整个问题都在于createJS无法读取鼠标足够快的位置。

有谁知道如何解决这种延迟和间歇性射击?有工作吗?为什么createJS不仅mouse events像纯js一样监视持续不断的内容?

mouseentermouseleave在舞台上的createJS不工作在平板电脑或手机,这是一个问题,所以这将是更好地做到这一点mouseover,并mouseout在按钮上舞台的整体尺寸。我曾尝试使用mouseovermouseout,以及以按钮的边缘和广告横幅的边缘之间的按钮,3个像素的空间,这个帮助,但它仍然射击间歇。

请提出您的想法和想法。

兰尼

鼠标悬停检查很昂贵。画布本质上只是一个位图,因此EaselJS不能使用浏览器中的鼠标事件(整个画布只能得到一个)。相反,EaselJS中的鼠标悬停要求将每个元素绘制到1x1像素的画布上,然后检查填充。这样可以提供完美的像素检测,但是如果您要检查大量内容或检查频率太高,则成本很高。

降低频率:您似乎将其设置frequency为90。这确实很高(两次检查之间间隔11毫秒,基本上是试图达到90 fps)。默认值为10,这比良好的帧率慢,但足够快以至于感觉很快。您可以将其降低到20左右,以便给您带来可怜的支票,而又不必太高。

修改交互性:您可以做的另一件事是准确过滤出要检查的内容。默认情况下,所有显示对象都会被检查-但您可以通过关闭 mouseEnabled不需要的内容(从检查中删除它们),然后关闭 mouseChildren要作为单个对象处理的容器,来减少这种情况(因此像复杂按钮这样的东西被绘制一次,而不是单独绘制其所有内容)。

// Example
myBackground.mouseEnabled = false;
myButton.mouseChildren = false;

希望有帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法使用 GSAP 内部函数来定位舞台上的 MovieClip (Animate CC)

Createjs 中的最大旋转(adobe animate cc)

用于导出Jpg的Flash命令。在Adobe Animate CC中

EaseJS拖放(Animate CC)影片剪辑的鼠标坐标

Animate CC HTML5/Canvas 使用动作脚本控制嵌套的 MovieClip 时间线

Adobe Animate CC 文件上传到服务器时无法播放

Animate CC 画布和遮罩

ActionScript 3,Flash CC:将对象从库放置到阵列中的舞台上

发布Apk时如何在Adobe Animate CC 2019中包含64位和32位本机代码

如何将用Adobe Animate CC生成的HTML5动画添加到Ionic 2项目页面?

在鼠标悬停时将对象拖动半圈 - Adobe Animate HTML5 Canvas

Adobe Edge Animate CC文件结构层次结构-如何从不同的文件夹位置加载资产和图像(2014.1.1版)

Adobe Animate错误

AS3 / Animate CC:用户可以编辑表格内容

Animate CC:从外部.js文件创建/访问全局函数

CreateJS(Animate CC)单击获取电影实例名称

卸载Adobe Illustrator CC 2018

Adobe Photoshop CC通过PlayOnLinux崩溃

Adobe After Effects CC转换速度

Adobe Flash CC发布到AS2

Adobe Illustrator CC在启动时崩溃

Animate CC前进到gotoAndStop已注释掉的下一帧吗?

使用JavaScript HTML5在Animate CC中使用随机MC

如何更改发布模板 html 以使用 $ANIMATE_CC_SCRIPTS 令牌中的函数?

如何从侧面缩放对象,而不是在 Animate CC HTML5 中居中?

仅当滚动后画布变得可见时才启动动画 (Animate CC)。

Adobe Animate Snap SVG插件-巨大的文件

Adobe Animate JS输出文件

jQuery可以替代Adobe Edge Animate吗?