我不能用键盘事件移动我的英雄,没有编译器错误,一切都很好,唯一的问题是当我按键盘时没有发生我的英雄运动。这是我的代码:
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帧中循环动画,即使我释放键盘也是如此。
答案 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);
}
}
}
}