智慧 + 毅力 = 无所不能

正确性、健壮性、可靠性、效率、易用性、可读性、可复用性、兼容性、可移植性...

导航

flash本身失去焦点的事件:Event.DEACTIVATE

Posted on 2009-12-02 16:36  Bill Yuan  阅读(2119)  评论(0编辑  收藏  举报
代码
// initialize arrow variables
var leftArrow:Boolean = false;
var rightArrow:Boolean 
= false;
var upArrow:Boolean 
= false;
var downArrow:Boolean 
= false;

var mascot:Mascot 
= new Mascot;
mascot.x 
= 200;
mascot.y 
= 200;
addChild(mascot);

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressedDown);
stage.addEventListener(KeyboardEvent.KEY_UP, keyPressedUp);
stage.addEventListener(Event.ENTER_FRAME, moveMascot);
stage.addEventListener(Event.DEACTIVATE, missingStage);

// set arrow variables to true
function keyPressedDown(event:KeyboardEvent)
{
    
if (event.keyCode == 37)
    {
        leftArrow 
= true;
    }
    
else if (event.keyCode == 39)
    {
        rightArrow 
= true;
    }
    
else if (event.keyCode == 38)
    {
        upArrow 
= true;
    }
    
else if (event.keyCode == 40)
    {
        downArrow 
= true;
    }
}

// set arrow variables to false
function keyPressedUp(event:KeyboardEvent)
{
    
if (event.keyCode == 37)
    {
        leftArrow 
= false;
    }
    
else if (event.keyCode == 39)
    {
        rightArrow 
= false;
    }
    
else if (event.keyCode == 38)
    {
        upArrow 
= false;
    }
    
else if (event.keyCode == 40)
    {
        downArrow 
= false;
    }
}

// set arrow variables to false
function missingStage(e:Event)
{

    leftArrow 
= false;

    rightArrow 
= false;

    upArrow 
= false;

    downArrow 
= false;

}

// move every frame
function moveMascot(event:Event)
{
    var speed:Number 
= 5;
    
if (leftArrow)
    {
        mascot.x 
-= speed;
    }
    
if (rightArrow)
    {
        mascot.x 
+= speed;
    }
    
if (upArrow)
    {
        mascot.y 
-= speed;
    }
    
if (downArrow)
    {
        mascot.y 
+= speed;
    }
}