
Код AS3:
// переменные определяющие в какую сторону лететь.
var up,down,left,right = 0;
// слушатель событий нажатия клавиш.
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownF);
// слушатель событий отпускания клавиш.
stage.addEventListener(KeyboardEvent.KEY_UP,keyUpF);
// ENTER_FRAME =)
stage.addEventListener(Event.ENTER_FRAME,updatePosF);
// функция выполняющаяся при нажатии клавиш.
function keyDownF(e:KeyboardEvent):void
{
if (e.keyCode == Keyboard.UP)
{
//если верно, то присвоить переменной up значение 1.
up = 1;
}
if (e.keyCode == Keyboard.DOWN)
{
//если верно, то присвоить переменной down значение 1.
down = 1;
}
if (e.keyCode == Keyboard.RIGHT)
{
//если верно, то присвоить переменной right значение 1.
right = 1;
}
if (e.keyCode == Keyboard.LEFT)//аналогично.
{
left = 1;
}
}
// функция выполняющаяся при отпускании клавиш.
function keyUpF(e:KeyboardEvent):void
{
if (e.keyCode == Keyboard.UP)
{
//если верно, то присвоить переменной up значение 0.
up = 0;
}
if (e.keyCode == Keyboard.DOWN)// аналогично
{
down = 0;
}
if (e.keyCode == Keyboard.RIGHT)// аналогично
{
right = 0;
}
if (e.keyCode == Keyboard.LEFT)// аналогично
{
left = 0;
}
}
// а вот и функция которая проверяет не вышел
// ли игрок за пределы экрана, и в какую сторону надо лететь.
function updatePosF(e:Event):void
{
if (up == 1)// если up = 1, то лететь вверх
{
player.y -= 5;
}
if (down == 1)// если down = 1, то лететь вниз
{
player.y += 5;
}
if (left == 1)// если left = 1, то лететь влево
{
player.x -= 5;
}
if (right == 1)// если right = 1, то лететь вправо
{
player.x += 5;
}
//----------------------------------
// запрет на передвижение, если пчелка возле краёв экрана
if (player.y <=player.height/2)
{
up = 0;
}
if (player.y >= stage.stageHeight-player.height/2)
{
down = 0;
}
if (player.x <= player.width/2)
{
left = 0;
}
if (player.x >= stage.stageWidth-player.width/2)
{
right = 0;
}
//-------------------------------
}