在 Flash ActionScript 2.0 中按下箭头键时如何使影片剪辑永远移动?请回答

问题描述 投票:0回答:1

我正在 Flash 8 中使用 ActionScript 2.0 开发吃豆人游戏,我需要为吃豆人制作控件,我希望他在按下箭头键时永远移动,就像他在原来的吃豆人,那么,谁能给我这个代码?

我试图找到按下箭头键时使吃豆人永远移动的代码,但我找到的只是actionscript 3.0,我正在使用actionscript 2.0

flash actionscript-2 flash-8
1个回答
0
投票

如果我没记错的话,有两种方法可以做到。

首先,你可以订阅相关事件并记录按键的状态,如下所示:

var UP:Boolean = False;
var DOWN:Boolean = False;

function onKeyUp()
{
    switch (Key.getCode())
    {
        case Key.UP:
            UP = False;
            break;
        case Key.DOWN:
            DOWN = False;
            break;
    }
}

function onKeyDown()
{
    switch (Key.getCode())
    {
        case Key.UP:
            UP = True;
            break;
        case Key.DOWN:
            DOWN = True;
            break;
    }
}

Key.addListener(this);

然后当吃豆人有时间行动时,你可以检查它们:

if (UP != DOWN)
{
    if (UP)
    {
        // Do what you do to move it up.
    }
    else // if (DOWN)
    {
        // Do what you do to move it down.
    }
}
else
{
    // If they are pressed at the same time or not pressed, do nothing.
}

第二种方法是检查当 Pacman 执行操作时按键是否被按下:

var UP:Boolean = Key.isDown(Key.UP);
var DOWN:Boolean = Key.isDown(Key.DOWN);

if (UP != DOWN)
{
    if (UP)
    {
        // Do what you do to move it up.
    }
    else // if (DOWN)
    {
        // Do what you do to move it down.
    }
}
else
{
    // If they are pressed at the same time or not pressed, do nothing.
}

这两者之间的区别在于,onKeyDown事件是永久生成的,就像您按下一个键并在文本编辑器中得到一行相同的字符:aaaaaaaaaaaaaaaaaaa(但您无法预测笔划频率以及第一个间隔和第一个间隔之间的差异)其余的,因为它是由系统控制的),而 Key.isDown(...) 可以当场使用,如果您通过计时来测量交互性,而不是将其绑定到按键事件。

© www.soinside.com 2019 - 2024. All rights reserved.