Flash as3:如何模拟MouseEvents?
我如何“模拟”一个Flash as3:如何模拟MouseEvents?,flash,apache-flex,actionscript-3,air,adobe,Flash,Apache Flex,Actionscript 3,Air,Adobe,我如何“模拟”一个MouseEvent,而该不是由按钮启动的eventListener (例如,仅通过一个简单的函数调用)以及如何向其中传递变量以切换事件类型 public function myMouseEvent(event:MouseEvent):void { switch (event.type) { case "mouseDown" : trace(
MouseEvent
,而该不是由按钮启动的eventListener
(例如,仅通过一个简单的函数调用)以及如何向其中传递变量以切换事件类型
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...
myMouseEvent(null)
调用实际上应该会给您一个异常
,因为您试图访问null对象上的参数(类型
)
要正确调用此函数,只需创建一个MouseEvent对象以传递给函数:
// add in any other params, like localX, stageX, etc
var m:MouseEvent = new MouseEvent( MouseEvent.MOUSE_DOWN );
this.myMouseEvent( m );
或者,如果要查看事件系统,可以使用dispatchEvent()
。差不多
this.stage.addEventListener( MouseEvent.MOUSE_DOWN, this.myMouseEvent );
this.dispatch( m ); // stage will catch this event
1/基础
你可以直接打电话
myMouseEvent(new MouseEvent(MouseEvent.MOUSE_DOWN));
2/事件
但是你可以用一种更面向事件的方式来做
eventDispatcher.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN));
其中eventDispatcher
是您将侦听器添加到的精灵()
3/适当的事件
由于这样分派时无法访问的所有属性,所以有一种更简洁的方法:
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));
三个都可以 你到底需要什么?您需要模拟鼠标行为吗?是的,完全正确!:)(mouseDown,mouseUp+设置event.target)您是否已经创建了自己的事件和侦听器?回答得很好。有了一些指向文档的链接,它就会完美无缺。我想还需要问一个问题:“为什么?”?为什么需要模拟鼠标事件?看起来你正试图把一开始就需要的东西拼凑在一起。