Показать сообщение отдельно
Старый 17.05.2018, 13:41
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 3  
Ответить с цитированием
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 483
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Вообще не понял вопроса.

1. зачем "устанавливать"? Доступ же не типизированный.
2. не достаточно, чтобы класс был "правильным". Нужно еще, чтобы propID был существующим.
PropID - точно существующий, так как заранее известно, экземпляры каких классов проверяются. А "устанавливать" затем, что у меня в действии персонажи абстрактно заданы как атакующий и защищающийся. На этих местах могут быть как герой, так и враг или ещё кто-нибудь. Поэтому получив формулировку условий в форме {owner: IDs.STATUS_ATTACKER, propID: IDs.PROP_IS_WOUNDED, value:true}, прежде чем обращаться за значением, у меня выполняется такой метод в классе проверки условий действия:

Код AS3:
protected function checkOwner(ownerID: String) : Character
{
switch(ownerID)
{
case IDs.STATUS_ATTACKER: return attacker; // Проверка по строковому ID и возврат экземпляра персонажа 
case IDs.STATUS_DEFENDER: return defender;
}
Обращение через константы - пока лучшее, что я придумал, чтобы не косячить с именами геттеров при такой системе записи.

Цитата:
Если owner — экземпляр, то проверить класс можно if (owner is EnemySoldier) {}.
А как передать тот самый "EnemySoldier" в метод проверки условия? Вот так:

Код AS3:
protected function checkCond(owner: Character, classID: String)
{
if (owner is classID) return true
}
не выходит. В этом и вопрос.
__________________
Не сломано - не чини!