![]() |
|
||||||||||
|
|||||
|
Всем привет
Суть ситуации вот в чем: - Есть swf-контейнер для нескольких игр - Есть несколько swf-файлов, в которых зашиты несколько вариантов логики игры (класс Game, называется так во всех swf-ках). - Далее, есть интерфейс IGame, который зашит во все swf-ки, включая контейнер. Идея такая, что swf-загрузчик обращается к логике любой игры через IGame. Но... Так как имена классов совпадают (логика везде называется Game), то во избежание повторения имен классов, я каждый раз swf с классом Game гружу в новый ApplicationDomain. И вот в чем весь косяк - интерфейс IGame в загружаемой swf-ке тоже попадает в новый ApplicationDomain, а значит, он уже не равен интерфейсу в swf-ке загрузчике. Соответственно, кастинг Game из загруженной swf-ки в IGame загружающей возвращает ровно null =( Уфф... ну вот, наконец-то, и сам вопрос - как лучше с этим разобраться, при учете, что необходимо сохранить имя класса Game во всех swf-ках? UPD: Судя по всему, нужного эффекта никак не добиться. По сути, мне нужно было перезаписать класс Game в текущем домене приложения, чего сделать никак нельзя. Единственный выход для сохранения строгой типизации - это изменение имен классов в загружаемых swf-ках и загрузка этих swf-ок в ApplicationDomain.currentDomain
__________________
...вселенская грусть Последний раз редактировалось gloomyBrain; 08.09.2010 в 12:01. |
![]() |
Часовой пояс GMT +4, время: 07:19. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| applicationDomain , interface , loader as3 |
|
|