코드를 통해 간접적으로 조작 할 수 있도록 텍스트 필드에 이벤트를 수동으로 전달하려고합니다 (예 : 지정된 x/y 좌표 집합에 커서 놓기). 그러나 내 행사는 효과가없는 것 같습니다. 이 모든 테스트가 텍스트 필드에 5 초 후에 효과적으로 텍스트 필드의 TF에 '기록'이벤트와 그들을 재생할에서는 setTimeout을 사용하는 것입니다 않으며, 기본적으로dispatchEvent()를 통해 UI 요소를 조작 할 수 있습니까?
package sandbox {
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFieldType;
import flash.text.TextFieldAutoSize;
import flash.utils.setTimeout;
public class Test extends Sprite {
private var tf:TextField;
private var tf2:TextField;
public function Test() {
super();
tf = new TextField();
tf.text = 'Interact here';
tf.type = TextFieldType.INPUT;
addChild(tf);
tf2 = new TextField();
tf2.text = 'Same events replayed with five second delay here';
tf2.autoSize = TextFieldAutoSize.LEFT;
tf2.type = TextFieldType.INPUT;
tf2.y = 30;
addChild(tf2);
tf.addEventListener(MouseEvent.CLICK, mouseListener);
tf.addEventListener(MouseEvent.DOUBLE_CLICK, mouseListener);
tf.addEventListener(MouseEvent.MOUSE_DOWN, mouseListener);
tf.addEventListener(MouseEvent.MOUSE_MOVE, mouseListener);
tf.addEventListener(MouseEvent.MOUSE_OUT, mouseListener);
tf.addEventListener(MouseEvent.MOUSE_OVER, mouseListener);
tf.addEventListener(MouseEvent.MOUSE_UP, mouseListener);
tf.addEventListener(MouseEvent.MOUSE_WHEEL, mouseListener);
tf.addEventListener(MouseEvent.ROLL_OUT, mouseListener);
tf.addEventListener(MouseEvent.ROLL_OVER, mouseListener);
}
private function mouseListener(event:MouseEvent):void {
//trace(event);
setTimeout(function():void {trace(event); tf2.dispatchEvent(event);}, 5000);
}
}
}
:
나는이 현상을 실험하는 테스트를 작성했습니다 tf2. 이벤트가 tf2에서 디스패치되면 콘솔 출력으로 추적됩니다. 이 프로그램을 실행하고 tf를 클릭하면 콘솔 출력은 다음과 같습니다 :
[MouseEvent type="mouseMove" bubbles=true cancelable=false eventPhase=3 localX=0 localY=1 stageX=0 stageY=1 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0]
[MouseEvent type="rollOver" bubbles=false cancelable=false eventPhase=2 localX=0 localY=1 stageX=0 stageY=1 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0]
[MouseEvent type="mouseOver" bubbles=true cancelable=false eventPhase=3 localX=0 localY=1 stageX=0 stageY=1 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0]
[MouseEvent type="mouseMove" bubbles=true cancelable=false eventPhase=3 localX=2 localY=1 stageX=2 stageY=1 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0]
[MouseEvent type="mouseMove" bubbles=true cancelable=false eventPhase=3 localX=2 localY=2 stageX=2 stageY=2 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0]
[MouseEvent type="mouseMove" bubbles=true cancelable=false eventPhase=3 localX=2 localY=3 stageX=2 stageY=3 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0]
[MouseEvent type="mouseMove" bubbles=true cancelable=false eventPhase=3 localX=3 localY=3 stageX=3 stageY=3 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0]
[MouseEvent type="mouseMove" bubbles=true cancelable=false eventPhase=3 localX=5 localY=3 stageX=5 stageY=3 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0]
[MouseEvent type="mouseMove" bubbles=true cancelable=false eventPhase=3 localX=6 localY=5 stageX=6 stageY=5 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0]
[MouseEvent type="mouseMove" bubbles=true cancelable=false eventPhase=3 localX=7 localY=5 stageX=7 stageY=5 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0]
[MouseEvent type="mouseMove" bubbles=true cancelable=false eventPhase=3 localX=9 localY=5 stageX=9 stageY=5 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0]
[MouseEvent type="mouseMove" bubbles=true cancelable=false eventPhase=3 localX=10 localY=5 stageX=10 stageY=5 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0]
[MouseEvent type="mouseMove" bubbles=true cancelable=false eventPhase=3 localX=11 localY=5 stageX=11 stageY=5 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0]
[MouseEvent type="mouseMove" bubbles=true cancelable=false eventPhase=3 localX=12 localY=5 stageX=12 stageY=5 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0]
[MouseEvent type="mouseDown" bubbles=true cancelable=false eventPhase=3 localX=12 localY=5 stageX=12 stageY=5 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0]
[MouseEvent type="mouseUp" bubbles=true cancelable=false eventPhase=3 localX=12 localY=5 stageX=12 stageY=5 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0]
[MouseEvent type="click" bubbles=true cancelable=false eventPhase=3 localX=12 localY=5 stageX=12 stageY=5 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0]
[MouseEvent type="mouseMove" bubbles=true cancelable=false eventPhase=3 localX=10 localY=4 stageX=10 stageY=4 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0]
[MouseEvent type="mouseMove" bubbles=true cancelable=false eventPhase=3 localX=9 localY=2 stageX=9 stageY=2 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0]
[MouseEvent type="mouseMove" bubbles=true cancelable=false eventPhase=3 localX=9 localY=1 stageX=9 stageY=1 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0]
[MouseEvent type="mouseOut" bubbles=true cancelable=false eventPhase=3 localX=-1 localY=-1 stageX=-1 stageY=-1 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0]
[MouseEvent type="rollOut" bubbles=false cancelable=false eventPhase=2 localX=-1 localY=-1 stageX=-1 stageY=-1 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0]
우리가 볼 수 있듯이 이벤트가 캡처되고 성공적으로 재생됩니다. 그러나 tf2에서 아무런 변화가 일어나지 않습니다. 마우스 커서는 tf2에 나타나지 않습니다. 사실 커서는 tf2 이벤트가 전달 된 후에도 tf에 남아 있습니다.
도와주세요!
감사합니다, 부유 한
감사합니다. :) – rinogo