MouseEvent 的键码?
keycode for MouseEvent?
所以据我了解,有键码来表示击键,例如:
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 == ?)
}
提前致谢!
当您触发 具有 附加侦听器的鼠标事件时,将调用与该侦听器关联的函数。时期。然后您不需要再次检查是否发生了鼠标事件。这就是事件监听器的全部优点。为了确保您能理解,我将 post 举个例子。
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
是一个 class。 MouseEvent
是 Event
的子 class。所以我们说 me
是子类 MouseEvent
的 Event
并且这是此函数的预期 input。如果您尝试在代码的其他地方调用此函数,则会抛出一个错误,指出此函数需要某种输入。
me.target
是导致事件被触发的 事物 。在本例中是鼠标,因此 me.target.x
将是单击鼠标时鼠标的 x 位置。
仅此而已。您试图将特定的解决方案应用于不同的问题,即如何在键盘上注册按键,这让您自己有点困惑。它们的处理方式在根本上略有不同。使用键盘,我们检查侦听键盘是否按下了 a 键,然后在事件处理程序中,我们确定按下了 哪个 键。对于鼠标事件,我们会有不同的鼠标移动、鼠标单击、鼠标左键单击和鼠标中键单击监听器。由于这些特定事件中的每一个都有自己的侦听器,因此我们不必评估在处理程序中按下了哪个按钮:
public function left(e:KeyboardEvent):void
{
if (e.keycode == 65)
{
leftKey = true;
}
}
e
是导致事件的原因。在这种情况下,键盘键。每个键都有一个键码。但是我们可以只编写一个监听器和一个函数,然后评估在函数内按下了哪个键,而不是为键盘上的每个键都编写不同的监听器。如前所述,使用鼠标时,鼠标左键会获得自己的事件监听器,因此无需(或能力)在事件监听器中进行检查。有 ROLL_OVER
、MOUSE_UP
和 MOUSE_DOWN
等属性。查看文档以获取完整列表。
所以据我了解,有键码来表示击键,例如:
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 == ?)
}
提前致谢!
当您触发 具有 附加侦听器的鼠标事件时,将调用与该侦听器关联的函数。时期。然后您不需要再次检查是否发生了鼠标事件。这就是事件监听器的全部优点。为了确保您能理解,我将 post 举个例子。
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
是一个 class。 MouseEvent
是 Event
的子 class。所以我们说 me
是子类 MouseEvent
的 Event
并且这是此函数的预期 input。如果您尝试在代码的其他地方调用此函数,则会抛出一个错误,指出此函数需要某种输入。
me.target
是导致事件被触发的 事物 。在本例中是鼠标,因此 me.target.x
将是单击鼠标时鼠标的 x 位置。
仅此而已。您试图将特定的解决方案应用于不同的问题,即如何在键盘上注册按键,这让您自己有点困惑。它们的处理方式在根本上略有不同。使用键盘,我们检查侦听键盘是否按下了 a 键,然后在事件处理程序中,我们确定按下了 哪个 键。对于鼠标事件,我们会有不同的鼠标移动、鼠标单击、鼠标左键单击和鼠标中键单击监听器。由于这些特定事件中的每一个都有自己的侦听器,因此我们不必评估在处理程序中按下了哪个按钮:
public function left(e:KeyboardEvent):void
{
if (e.keycode == 65)
{
leftKey = true;
}
}
e
是导致事件的原因。在这种情况下,键盘键。每个键都有一个键码。但是我们可以只编写一个监听器和一个函数,然后评估在函数内按下了哪个键,而不是为键盘上的每个键都编写不同的监听器。如前所述,使用鼠标时,鼠标左键会获得自己的事件监听器,因此无需(或能力)在事件监听器中进行检查。有 ROLL_OVER
、MOUSE_UP
和 MOUSE_DOWN
等属性。查看文档以获取完整列表。