Проверить на принадлежность к классу
Друзья, ещё маленький частный вопрос к вам.
У меня в механизме проверки условий обращения идут по строковым идентификаторам, которые совпадают с геттерами проверяемого объекта. Например, имея массив условий на выполнение действия, записанный в формате {owner, propID, value}, нам для проверки достаточно установить owner-а, чтобы потом обратиться owner[propID] и сравнить полученный результат с value. Вопрос, как проверить самого owner-a на принадлежность к тому или иному наследнику класса? И как записать это в массиве условий, подобно тому, как в моём примере выше? Спасибо. |
Вообще не понял вопроса.
Цитата:
2. не достаточно, чтобы класс был "правильным". Нужно еще, чтобы propID был существующим. Если owner — экземпляр, то проверить класс можно if (owner is EnemySoldier) {}. Но owner может быть и "статическим" классом? Надеюсь нет. |
Цитата:
Код AS3:
Цитата:
Код AS3:
|
Тоже не понял. Ты имеешь ввиду это?
Код AS3:
|
Следующий шаг начать писать цепочки вызывов функций в конфигах. Очень интересно как автор рефакторит код? А ведь можно было сразу использовать что-то типа https://github.com/mayakwd/as3-vanilla-ice
|
Цитата:
Цитата:
|
Цитата:
(рабочий код)): Код AS3:
— А что смущает? Ну, как бы, трудно рефакторить такую Лондонскую Библиотеку. Компилятор понятия не имеет о том, что ты делаешь, ибо ты оперируешь строками а не классами и их свойствами и методами до последнего момента вызова — но и там нетипизированный доступ и компилятор возвращается ни с чем. "Расходимся". Причем, всю эту непроверяемую компилятором кучу текста ты используешь, "чтобы ничего не забыть и не ошибиться". Когнитивный диссонанс настигает здесь. |
Открой для себя интерфейсы. Очень полезная штука
|
Wolsh, спасибо за код. Разобрался.
Цитата:
Цитата:
А как ещё хранить ссылки на те или иные свойства объекта, кроме как строковой константой? |
Цитата:
Код AS3:
Плюс интерфейсов в том, что их можно применить к любому классу. Допустим ты можешь легко применить один и тот же интерфейс и к наледнику Sprite и Sound или еще чего-то. И по типу интерфейса они будут одинаковы |
Часовой пояс GMT +4, время: 19:44. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.