因此,据我所知,有一些键码来表示击键,例如:
public function left(e:KeyboardEvent):void
{
if (e.keycode == 65)
{
leftKey = true;
}
}我想用这个逻辑做一些类似的事情,并将它应用于鼠标事件。我在谷歌上搜索过,但是没有发现很多关于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 == ?)
}提前感谢!
发布于 2016-10-15 04:31:47
当您触发带有侦听器的鼠标事件时,与该侦听器关联的函数将被调用。句号。您不需要再次检查鼠标事件是否发生。这就是事件听众的美丽之处。为了确保你明白,我会举个例子。
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是一个类。MouseEvent是Event的子类。所以我们说me是sublcass MouseEvent的一个Event,这是这个函数的预期输入。如果您试图在代码的其他地方调用此函数,则会抛出一个错误,说明该函数需要某种类型的输入。
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。查看文档以获得完整的列表。
https://stackoverflow.com/questions/40054111
复制相似问题