mat*_*e64 2 apache-flex air flash adobe actionscript-3
我怎么能"模拟"一个MouseEvent,即尚未通过按钮启动了eventListener
(例如,只是通过简单的函数调用),以及如何我可以通过变量把它切换event.types?
public function myMouseEvent(event:MouseEvent):void
{
switch (event.type)
{
case "mouseDown" :
trace(event.type)
break;
case "mouseUp" :
trace(event.type)
break;
}
}
myMouseEvent(null) // ? nothing happens...
Run Code Online (Sandbox Code Playgroud)
1/基本
在您的情况下,您可以直接打电话
myMouseEvent(new MouseEvent(MouseEvent.MOUSE_DOWN));
Run Code Online (Sandbox Code Playgroud)
2/事件
但你可以采用更加面向事件的方式来做到这一点.
eventDispatcher.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN));
Run Code Online (Sandbox Code Playgroud)
这里eventDispatcher是Sprite(或别的东西),你加入你的监听器.
3/适当的事件
由于您在调度它时无法访问MouseEvent的所有属性,因此有一种更简洁的方法:
public function myMouseEvent(event:Event):void
{
switch (event.type)
{
case "mouseDown" :
trace(event.type)
break;
case "mouseUp" :
trace(event.type)
break;
}
}
eventDispatcher.addEventListener(MouseEvent.MOUSE_DOWN, myMouseEvent);
eventDispatcher.dispatchEvent(new Event(MouseEvent.MOUSE_DOWN));
Run Code Online (Sandbox Code Playgroud)
这三个都可以工作!