Javascript Createjs:将鼠标悬停添加到容器慢降FPS
链接1- 链接2- 在上面的链接中,我在每个文件的单独容器中添加了一组数字,您可以在右上角找到FPS。问题是当我把鼠标移到这个链接1上并点击任何数字时,你会看到FPS越来越慢&越来越慢,使得世界在左侧旋转得越来越慢Javascript Createjs:将鼠标悬停添加到容器慢降FPS,javascript,createjs,Javascript,Createjs,链接1- 链接2- 在上面的链接中,我在每个文件的单独容器中添加了一组数字,您可以在右上角找到FPS。问题是当我把鼠标移到这个链接1上并点击任何数字时,你会看到FPS越来越慢&越来越慢,使得世界在左侧旋转得越来越慢 在这个链接上,链接2,我只添加了一个鼠标和5个鼠标,但是FPS没有太大的区别,为什么当我有37个容器时它会滞后这么多。如果你需要解决问题,我可以给出我的代码。我粗略地看了一下你的代码,但是深入研究整个项目并不是调试优化问题的好方法 首先要考虑的是,如果在您的平台上启用了鼠标操作> /
在这个链接上,链接2,我只添加了一个鼠标和5个鼠标,但是FPS没有太大的区别,为什么当我有37个容器时它会滞后这么多。如果你需要解决问题,我可以给出我的代码。我粗略地看了一下你的代码,但是深入研究整个项目并不是调试优化问题的好方法
首先要考虑的是,如果在您的平台上启用了<代码>鼠标操作> /代码>,我建议在交互式元素上自由使用<代码> MousHeave= false ,并且在不交互的任何东西上<代码>鼠标启用= MousHeave= false < /代码>。滚动可能是一个很大的原因,因为它要求每件东西每秒绘制20次(在您的使用中)。重新绘制文本和向量的成本可能很高
// Non-interactive elements (block all mouse interactions)
element.mouseEnabled = element.mouseChildren = false;
// Interactive elements (reduce mouse-checking children individually)
element.mouseChildren = false;
如果它们不改变,您可能会考虑缓存文本元素或按钮图形。我想我在源代码中看到了一些缓存,但一般来说是一个很好的考虑。
-- 尽管如此,调试优化可能会很困难。。如果删除所有按钮会提高你的表现,考虑你的按钮是如何构造的,以及它们的成本是多少。 *滑鼠是昂贵的 *向量和文本可能很昂贵 *缓存在正确使用时会有所帮助,但如果它发生得太频繁,可能会很昂贵。 *查看tick()上发生的情况。有时,代码会持续运行,这并不需要 -- 其他一些注意事项:- 这与您的想法不同:
--您需要传递()上的\u oButton.off(“mousedown”)
调用的结果。如果您正在清理,请调用
\u oButton.removeAllEventListeners()
- 您不需要将光标设置在
。光标只有在滚动时才会改变,所以只需设置一次,然后去掉你的鼠标上方
按钮
- 只为自定义类扩展EventDispatcher可能是有意义的,它为您提供了类似于
方法的功能,该方法支持on()
参数。我可能会建议您用它来代替数据
CTextButton
- 请注意,RAF不支持帧速率属性(它只使用浏览器的RAF速率,通常为60fps)。使用
代替不推荐的createjs.Ticker.timingMode
useRAF
希望这能有所帮助。我粗略地看了一下您的代码,但是深入研究整个项目并不是调试优化问题的好方法
首先要考虑的是,如果在您的平台上启用了<代码>鼠标操作> /代码>,我建议在交互式元素上自由使用<代码> MousHeave= false ,并且在不交互的任何东西上<代码>鼠标启用= MousHeave= false < /代码>。滚动可能是一个很大的原因,因为它要求每件东西每秒绘制20次(在您的使用中)。重新绘制文本和向量的成本可能很高
// Non-interactive elements (block all mouse interactions)
element.mouseEnabled = element.mouseChildren = false;
// Interactive elements (reduce mouse-checking children individually)
element.mouseChildren = false;
如果它们不改变,您可能会考虑缓存文本元素或按钮图形。我想我在源代码中看到了一些缓存,但一般来说是一个很好的考虑。
-- 尽管如此,调试优化可能会很困难。。如果删除所有按钮会提高你的表现,考虑你的按钮是如何构造的,以及它们的成本是多少。 *滑鼠是昂贵的 *向量和文本可能很昂贵 *缓存在正确使用时会有所帮助,但如果它发生得太频繁,可能会很昂贵。 *查看tick()上发生的情况。有时,代码会持续运行,这并不需要 -- 其他一些注意事项:- 这与您的想法不同:
--您需要传递()上的\u oButton.off(“mousedown”)
调用的结果。如果您正在清理,请调用
\u oButton.removeAllEventListeners()
- 您不需要将光标设置在
。光标只有在滚动时才会改变,所以只需设置一次,然后去掉你的鼠标上方
按钮
- 只为自定义类扩展EventDispatcher可能是有意义的,它为您提供了类似于
方法的功能,该方法支持on()
参数。我可能会建议您用它来代替数据
CTextButton
- 请注意,RAF不支持帧速率属性(它只使用浏览器的RAF速率,通常为60fps)。使用
代替不推荐的createjs.Ticker.timingMode
useRAF
希望这能有所帮助。谢谢你,兰尼兄弟。你回答的所有问题都帮助我提高了。我还使用for循环访问容器。这会不会太慢帧速率。或者我们最好调用类来创建按钮。这样就可以避免for循环了。请给出你的建议。谢谢你,兰尼兄弟。你回答的所有问题都帮助我提高了。我还使用for循环访问容器。这会不会太慢帧速率。或者我们最好调用类来创建按钮。这样就可以避免for循环了。请给出你的建议。