我不能用键盘事件移动我的英雄

时间:2014-04-13 13:48:47

标签: actionscript-3 flash

我不能用键盘事件移动我的英雄,没有编译器错误,一切都很好,唯一的问题是当我按键盘时没有发生我的英雄运动。这是我的代码:

package
{
import flash.display.MovieClip;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.events.Event;


public class GameGue extends MovieClip
{
    public var hero:Hero;
    public var speedHero:Number=2;

    public function GameGue()
    {
        hero = new Hero;
        hero.x = 100;
        hero.y = 300;
        addChild(hero);
    }



    public function pencetKeyboard (event:KeyboardEvent):void
    {
        hero.addEventListener (KeyboardEvent.KEY_DOWN, pencetKeyboard);

        if (event.keyCode == Keyboard.RIGHT)
        {
            hero.x += 2;
            hero.gotoAndStop(3);

        }
    }
}
}

我的英雄只显示框架1,显示站立位置,而不是显示向右走的第3帧。

编辑:另一个问题:当我按下RIGHT时它是我的Hero MovieClip它在我的Hero中输入第3帧,但在第3帧中循环动画,即使我释放键盘也是如此。

2 个答案:

答案 0 :(得分:1)

尝试移动此行:

  hero.addEventListener (KeyboardEvent.KEY_DOWN, pencetKeyboard);

在addChild(英雄)之后,在GameGue()函数中。

答案 1 :(得分:0)

使用这个。

package
{
import flash.display.MovieClip;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.events.Event;


public class GameGue extends MovieClip
{
    public var hero:Hero;
    public var speedHero:Number=2;

    public function GameGue()
    {
        hero = new Hero;
        hero.x = 100;
        hero.y = 300;
        addChild(hero);
        stage.addEventListener (KeyboardEvent.KEY_DOWN, pencetKeyboard);

    }



    public function pencetKeyboard (event:KeyboardEvent):void
    {

        if (event.keyCode == Keyboard.RIGHT)
        {
            hero.x += 2;
            hero.gotoAndStop(3);

        }
    }
}
}