Я создаю маленькую игру.
В своем классе документов я создаю экземпляры класса Character
и Level
со следующим кодом:
//add the Level
level = new TileGrid();
level.y = 100;
level.x = 400;
addChild(player);
//add our player
player = new Character();
player.y = 150;
player.x = 400;
addChild(player);
Я также создаю класс контроллера, который обрабатывает пользовательский ввод.(например, проверяет, может ли игрок двигаться вправо.)
Я также создаю списки событий для keyboardevents и прочего.
Когда клавиша нажата, я хочу проверить, возможно ли перемещение, вызвав функцию checkTile(tileNumber)
класса TileGrid из класса контроллера.
Класс контроллера выглядит следующим образом:
package {
import flash.events.KeyboardEvent;
import flash.events.Event;
public class Controller{
//Constructor code
public function Controller(){}
//Keyboard pressed -> move character
public function keyPressed(evt:KeyboardEvent):void
{
trace(level.checkTile(30));
}
}
И класс TileGrid выглядит примерно так:
package {
import flash.events.KeyboardEvent;
import flash.events.Event;
public class TileGrid{
//Constructor code
public function TileGrid(){
//Creating all the tiles and adding them to the stage.
}
//Check if a certain tile is walkable
public function checkTile(tileNumberType){
if(tileNumberType > 15){
return false;
}else{
return true;
}
}
}
Но когда я проверяю это, я получаю следующую ошибку: Line 81 1120: Access of undefined property level.
Когда я пытаюсь: trace(Object(parent).level.checkTile(30));
я получаю: 1120: Access of undefined property parent.
Как я могу получить доступ к методам из одного класса с экземпляром из второго класса?