我如何“模拟”一个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...
最佳答案
1/基本
根据您的情况,您可以直接调用
myMouseEvent(new MouseEvent(MouseEvent.MOUSE_DOWN));
2/事件
但是您可以以更加面向事件的方式来实现。
eventDispatcher.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN));
其中 eventDispatcher
是您添加监听器的 Sprite ( or something else )。
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));
这三个都可以工作!
关于flash - as3 : how to emulate MouseEvents?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5406988/