提高EaselJS中鼠标悬停事件的性能

时间:2016-09-12 13:55:38

标签: createjs easeljs

从手册:

  

后四个事件有一些与之相关的开销,所以你   需要使用stage.enableMouseOver(频率)启用它们。该   频率参数表示EaselJS每秒应该多少次   计算当前指针下的内容。数字越多越好   反应迅速,但计算成本也更高。

我需要在我拥挤的舞台上的某类对象上启用鼠标悬停功能。有没有办法只允许鼠标悬停检查某些对象而不是整个阶段?或者EaselJS仅使用“mouseover / mouseout和rollover / rollout”侦听器来检查对象?那么指针属性 - 只有在启用了enableMouseOver时才有效 - 是检查了所有对象还是只检查了默认值以外的指针属性?

EaselJS内部是否像k树一样进行空间分区以提高性能?

2 个答案:

答案 0 :(得分:1)

您可以通过设置mouseEnabled=false来阻止任何对象接收鼠标事件。

myBitmap.mouseEnabled = false;

如果您有大量项目(例如粒子),请确保它们位于容器中,并在容器上设置mouseEnabledmouseChildren=false,并且舞台不会检查任何容器的孩子们。

myContainer.mouseEnabled = myContainer.mouseChildren = false;

如果您仍想知道何时单击容器的常规区域,则可以使用hitArea替换默认鼠标行为,该var hitArea = new createjs.Shape(); hitArea.graphics.drawRect(0, 0, 500, 500); myContainer.hitArea = hitArea; 代替其实际内容。

L=[1,2,3,4]

希望有所帮助!

答案 1 :(得分:0)

  1. 为了提高性能,如果任何对象是静态的,我使用缓存

  2. 我使用了mouseEnabled = false;

  3. 我没有在画布里面渲染任何文字或图像 角度或普通的javascript来渲染dom元素