0

私が今日解決したい問題は、ほとんどの問題とは異なります。UI に遅延が発生しないように、アプリケーションでハンドラーをより迅速に実行したいと考えています。

TextInput一連の線で構成される破線と生成された破線を含むクラスがあります。このコンポーネントはCardTextInput、親の状態の変化をリッスンします。マウスが領域の上にある場合は破線が表示され、それ以外の場合は非表示になります。

のインスタンスが 1 つしかない場合、すべてがうまく機能しますCardTextInput。10 を追加すると、マウスが 1 つしかない場合と比較して破線を表示するのに 0.5 秒かかり、すぐに表示されます。

このようなシナリオを最適化するにはどうすればよいでしょうか?

4

1 に答える 1

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;
         }
    }
}
于 2013-09-27T16:49:24.727 に答える