Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Выход из игры и возвращение в меню (http://www.flasher.ru/forum/showthread.php?t=199533)

Rozalinda 20.05.2013 11:26

Выход из игры и возвращение в меню
 
Здравствуйте еще раз!
В прямом смысле слова не могу выбраться из игры.

Есть класс App, в котором содержится переменная game:Game. В игре располагаются игровые фишки, при нажатии на которые и происходят все действия и проверки, то есть все это происходит в классе Game. Когда же игра заканчивается, мне нужно удалить те элементы, которые содержатся на экране и загрузить обратно меню, чтобы можно было снова играть. А это уже находится в классе App. Оба они находятся в одном пакете, но в классе Game я не могу сослаться на методы класса App, чтобы, собственно, выбраться из игры и вернуться наверх, откуда можно и экземпляр Game удалить и дальше работать.
Ввиду отсутствия опыта, приходится прибегать к сторонней помощи. Помогите разобраться, что мне делать в такой ситуации.

Wolsh 20.05.2013 11:30

Посылать из Game событие "GameOver", на которое должен быть подписан Арр, который и удалит Game и выведет меню.

Rozalinda 20.05.2013 11:32

Эм... спасибо )
А можно это как-то более программно пояснить, пожалуйста? (проект первый...)

Wolsh 20.05.2013 14:16

В Game.as :
Код AS3:

//...
public static const GAME_OVER:String = "GameOver";
//... какие-то условия выполнились и надо "выйти наверх":
super.dispatchEvent(new Event(GAME_OVER));

В App.as :
Код AS3:

private var _game:Game = new Game();
//...
_game.addEventListener(Game.GAME_OVER, onGameOver);
//...
private function onGameOver(event:Event):void
{
        super.removeChild(_game);
        _game = null;
        showMenu();
}


Rozalinda 20.05.2013 15:57

Здорово, спасибо большое!

MoHaX 20.05.2013 17:39

Есть еще простой способ. Можно использовать callback, в твоем случае это метод из класса App.
Во время создания класса Game передай ему ссылку на метод gameOver, сохрани ее в переменную в классе Game, и вызови когда удобно.

Sync 20.05.2013 17:47

ненадо учить этому. делать гадости люди и сами научацца)

Rozalinda 20.05.2013 17:47

а почему гадости? )

Sync 20.05.2013 17:55

потому что человек читающий код с большим числом калбеков по опасности приближается к ошпарившемуся сатане

Rozalinda 20.05.2013 17:57

м, я просто еще не знакома с понятием калбеков )


Часовой пояс GMT +4, время: 05:23.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.