Итак, я создаю космический шутер. Мой класс документа — Engine, и он выглядит так:
package Classes
{
import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.Event;
import flash.events.MouseEvent;
public class Engine extends MovieClip
{
private var startMenu:StartMenu;
private var numberOfStars:int = 80;
public static var enemyList:Array = new Array();
private var spaceShip:Ship;
private var hud:HUD;
public function Engine()
{
startMenu = new StartMenu();
stage.addChild(startMenu);
startMenu.x = (stage.stageWidth / 2);
startMenu.y = (stage.stageHeight / 2);
}
private function startGame()
{
stage.removeChild(startMenu)
spaceShip = new Ship(stage);
stage.addChild(spaceShip);
spaceShip.x = (stage.stageWidth / 2);
spaceShip.y = (stage.stageHeight / 2);
spaceShip.addEventListener("hit", shipHit);
hud = new HUD(stage); //create the HUD
stage.addChild(hud); //and display it.
for (var i:int = 0; i < numberOfStars; i++)
{
stage.addChildAt(new Star(stage), 1);
}
addEventListener(Event.ENTER_FRAME, createFighter);
}
}
Итак, как видите, я вызываю другой класс под названием StartMenu. Вот где у меня проблемы: вот код (или его отсутствие)
package Classes
{
import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.*;
public class StartMenu extends MovieClip
{
public function StartMenu()
{
button1.addEventListener(MouseEvent.CLICK, buttonClicked);
}
private function buttonClicked(e:MouseEvent)
{
}
}
}
(Не обращайте внимания на ошибки отступов, это правильно в реальном коде) Итак, представьте, что на экране отображается кнопка. Эта кнопка является частью класса StartMenu и ожидает события MouseEvent.CLICK.
После нажатия кнопки мне нужно каким-то образом вернуться к классу Engine и вызвать функцию startGame() , но я не могу просто сделать Engine.startGame() , я попытался установить функцию в общедоступную функцию, и у меня есть попытался установить функцию в общедоступную статическую функцию. неудачно. ПОМОГИТЕ, ПОЖАЛУЙСТА?? Любой метод подойдет, мне просто нужен способ, чтобы этот класс мог перейти к функции startGame после нажатия кнопки!