У меня есть некоторые проблемы в игре, которую я создаю в Action Script 3. Я делаю это со знанием каждого учебника, который я когда-либо читал, используя FlashDevelop. Однако в этом коде я обнаружил несколько ошибок, которые мешают мне компилировать. Вот только два файла AS, которые у него есть:
Main.as
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.utils.Timer;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
public class Main extends Sprite
{
public var gameTimer:Timer
public var LeftisPressed:Boolean;
public var RightisPressed:Boolean;
public var jumper = new Jumper;
public function Main()
{
gameTimer = new Timer( 40 )
gameTimer.addEventListener(TimerEvent.TIMER, onTick);
RightisPressed = false;
LeftisPressed = false;
addEventListener( Event.ADDED_TO_STAGE, OnAddToStage() );
jumper = new Jumper();
addChild( jumper );
}
public function OnAddtoStage() :void
{
stage.addEventListener( KeyboardEvent.KEY_DOWN, onKeyPress );
stage.addEventListener( KeyboardEvent.KEY_UP, onKeyRelease );
}
public function onTick (timerEvent: TimerEvent) :void
{
if (LeftisPressed)
{
jumper.Left();
}
if (RightisPressed)
{
jumper.Right();
}
}
public function onKeyPress (keyboardEvent: KeyboardEvent) :void
{
if (KeyboardEvent.keyCode == Keyboard.LEFT )
{
LeftisPressed = true;
}
if (KeyboardEvent.keyCode == Keyboard.RIGHT )
{
RightisPressed = true;
}
}
public function onKeyRelease(keyboardEvent: KeyboardEvent) :void
{
if (KeyboardEvent.keyCode == Keyboard.LEFT )
{
LeftisPressed = false;
}
if (KeyboardEvent.keyCode == Keyboard.RIGHT )
{
LeftisPressed = false;
}
}
}
}
Jumper.as
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.utils.Timer;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
/**
* ...
* @author Timothy Bumpus
*/
public class Jumper extends Sprite
{
public function Jumper()
{
var square:Sprite = new Sprite();
addChild(square);
square.graphics.lineStyle(3,0x00ff00);
square.graphics.beginFill(0x0000FF);
square.graphics.drawRect(0,0,100,100);
square.graphics.endFill();
square.x = 250
square.y = 350
}
public function Left()
{
x = x - 3
}
public function Right()
{
x = x + 3
}
}
}
(Если это важно для вас, это называется перемычка, потому что я в итоге заставлю его прыгнуть.)
Идея состоит в том, чтобы заставить спрайт двигаться влево и вправо к соответствующим клавишам. Но когда я пытаюсь отладить его, он выдает мне 5 ошибок: «col: 44 Error: вызов возможно неопределенного метода OnAddToStage». и «col: 22 Error: доступ к возможно неопределенному свойству keyCode через ссылку со статическим типом Class». за каждый раз я упоминаю keyCode. После поиска в интернете я могу только сделать вывод, что он как-то связан с Flex SDK, который использует FlashDevelop, но я не могу найти какую-либо конкретную справку об ошибке в этом контексте.
Я не могу быть единственным человеком, у которого была эта проблема. Есть идеи?