AS3& Flex:优化事件侦听器

时间:2013-09-27 16:11:49

标签: actionscript-3 flex

我今天要解决的问题与大多数问题不同。我想让应用程序更快地执行处理程序,这样我就不会在UI中看到任何延迟。

我有一个包含TextInput的类和生成的虚线,由一系列线组成。这个组件,我们称之为CardTextInput,监听父状态的变化。如果鼠标在该区域上方,则显示虚线,否则隐藏。

如果只有CardTextInput的一个实例,如果我添加10,那么一切都很有效当我鼠标悬停它需要0.5秒来显示虚线与只有一个的情况相比,它会立即显示。

我如何优化这种情况?

1 个答案:

答案 0 :(得分:2)

假设您在父myCanvas中添加了10个CardTextInput。

尝试将CardTextInput'mouseEnabled和mouseChildren设置为false

然后在myCanvas上添加MouseMove事件监听器

myCanvas.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);

for each (var child:DisplayObject in myCanvas) {
     child.dashLines.mouseEnabled = false;
     child.dashLines.mouseChildren = false;
}  

protected function onMouseMove(event:MouseEvent):void {

    for each (var child:DisplayObject in myCanvas) {
        child.dashLines.visible = false;
    }  

    for each (child in myCanvas) {

         if (child.hitTestPoint(event.stageX, event.stageY)) {
             child.dashLines,visible = true;
             break;
         }
    }
}