Показать сообщение отдельно
Старый 23.11.2018, 16:19
Rzer вне форума Посмотреть профиль Отправить личное сообщение для Rzer Посетить домашнюю страницу Rzer Найти все сообщения от Rzer
  № 4  
Ответить с цитированием
Rzer
 
Аватар для Rzer

блогер
Регистрация: Feb 2007
Адрес: Spb
Сообщений: 613
Записей в блоге: 8
Отправить сообщение для Rzer с помощью ICQ
Всё равно тебе придётся узнать в каком режиме находится стейт.

Можно сделать и так:

Код AS3:
class State{
 
   public static const NORMAL:String = "normal";
   public static const BATTLE:String = "battle";
 
   function getStateType():String {
     return NORMAL;
   }
}
И переопределять этот метод в детях:

Код AS3:
class BattleState{
  override function getStateType():String {
     return State.BATTLE;
   }
}
И проверять в коде:
Код AS3:
override function doSomething():void{
   if (_state.getStateType() == State.NORMAL) doSomethingNormal();
   else doSomethingBattle();
}
Но я не вижу принципиально разницы, если все твои последующие стейты ты будешь наследовать от ChStateNormal или ChStateBattle