因此,据我所知,有一些代表击键的键码,例如:
public function left(e:KeyboardEvent):void
{
if (e.keycode == 65)
{
leftKey = true;
}
}
我想用这种逻辑做类似的事情,并将其应用于鼠标事件。我在Google上进行了搜索,但没有找到关于Flashdevelop AS3的太多结果。是否会有代表鼠标事件的键码?例如:
stage.addEventListener(MouseEvent.MOUSE_DOWN, down);
stage.addEventListener(MouseEvent.MOUSE_MOVE, move);
stage.addEventListener(MouseEvent.CLICK, click);
public function down(e:MouseEvent):void
{
if (e.keycode == ?)
}
public function move(e:MouseEvent):void
{
if (e.keycode == ?)
}
public function click(e:MouseEvent):void
{
if (e.keycode == ?)
}
提前致谢!
当你火,一个鼠标事件具有连接到它的侦听器,则该侦听相关联的功能将被调用。时期。然后,您无需再次检查鼠标事件是否发生。这就是事件侦听器的全部优点。为了确保您理解它,我将举一个例子。
stage.addEventListener(MouseEvent.CLICK,mClick);
伟大的。我们在舞台上添加了一个听众。现在,只要您在舞台上的任何位置单击,此侦听器都将导致该mClick
函数被调用。现在我们编写mClick
函数。
private function mClick(me:MouseEvent):void{
trace("me.target.x",me.target.x);
trace("me.target.y",me.target.y);
}
me
只是我们选择代表触发该功能的事件的变量。Event
是一堂课。AMouseEvent
是的子类Event
。因此,我们说这me
是Event
sublcass MouseEvent
,这是此功能的预期输入。如果尝试在代码的其他位置调用此函数,则会抛出错误,表明该函数需要某种输入。
me.target
是东西导致得到触发事件。在这种情况下,它是鼠标,me.target.x
单击鼠标时鼠标的x位置也将是鼠标。
这就是全部。您只是通过尝试将特定的解决方案应用于另一个问题(即如何在键盘上注册按键)而使自己有些困惑。从根本上来说,它们的处理方式略有不同。随着键盘,我们检查侦听如果键盘有一个键按下,然后在事件处理程序,我们确定其中一个键被按下。对于鼠标事件,我们将为鼠标移动,鼠标单击,鼠标左键单击和鼠标中键使用不同的侦听器。由于每个特定事件都有自己的侦听器,因此我们不必评估在处理程序中按下了哪个按钮:
public function left(e:KeyboardEvent):void
{
if (e.keycode == 65)
{
leftKey = true;
}
}
该e
是导致该事件的事。在这种情况下,请使用键盘琴键。每个键都有一个键码。但是,我们不必为键盘上的每个按键编写不同的侦听器,而是只需编写一个侦听器和一个函数,然后评估在函数内部按下了哪个键。如前所述,使用鼠标左键可获得自己的事件侦听器,因此无需(或没有能力)在事件侦听器中进行检查。有诸如ROLL_OVER
和MOUSE_UP
和的属性MOUSE_DOWN
。查看文档以获取完整列表。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句