2013-05-14 58 views
0

所以,我在这个Flash CS5文件,我想禁用另一个运行时的功能。更确切地说:我正在做一个让我通过键盘控制游戏角色的功能。当这个角色击中另一个角色时,我希望它停止移动,即使我尝试再次按下按键。这是我的代码:如何通过AS3中的另一个停止功能?

stage.addEventListener(KeyboardEvent.KEY_DOWN, move) 
stage.addEventListener(Event.ENTER_FRAME, game) 

function game(e:KeyboardEvent) : void { 

if (e.keyCode == 39){ 
character.x += 15; 
} 

if (e.keyCode == 37){ 
character.x -= 15; 
} 

} 

function game(e:Event): void { 

if(character.hitTestObject(wall)) { 

**how do i disable that move event here??** 

} 

} 

我发誓我搜索了很多!讨厌打扰;)

回答

3
var canWalk:Boolean = true; 

function game(e:KeyboardEvent) : void { 

    if (e.keyCode == 39 && canWalk){ 
     character.x += 15; 
    } 

    if (e.keyCode == 37 && canWalk){ 
     character.x -= 15; 
    } 

} 

function game(e:Event): void { 

    if(character.hitTestObject(wall)) { 
     canWalk = false; 
    } 

} 

一旦hitaction结束,您必须将其切换回'true'。

+0

非常感谢您快速明确的回复,RST!我用你的想法,但我认为,因为我使用AS3“_root”。部分指向我的代码中的错误,所以我用布尔代替。 &&部分真的救了我,谢谢! ;) – user2382330 2013-05-14 15:31:22

+0

不客气,我调整了代码。 – RST 2013-05-14 15:40:34