![]() |
Как привести загруженный контент к интерфейсу
Вложений: 2
Всем привет. Столкнулся с такой проблемой: при попытке привести загруженный контент с document class BingoGame к интерфейсу IBingoGame методом
Код AS3:
Код AS3:
Код:
TypeError: Error #1034: Type Coercion failed: cannot convert bingo.game::BingoGame@1bfdb0b1 to bingo.interfaces.IBingoGame.Код AS3:
Для наглядности привожу структуру зависимостей классов проекта (а может она вовсе не наглядная, но я старался :)): Вложение 21699 Вообще смутили меня две вещи: 1. Если загрузить игру в главную флэшку (в Shell), то она прекрасно приводится к своему интерфейсу. 2. Если в лоадере написать: Код AS3:
Лоадер загружается в главную флэшку shell один раз, затем из него берется класс LoaderBar и в дальнейшем, при с создании нового таба, создается экземпляр этого класса. Прикрепляю файл с рисунком-схемой в zip-архиве, т.к. вложенный рисунок стал каким-то маленьким и неудобочитаемым |
А где в IBingoGame функция activate ? И по-моему Вы путаете диаграмму классов с чем то еще...
|
Код AS3:
|
litebox сложновато описал проблему...
дело в том, что если загрузить clip1.swf, а потом в clip1.swf загрузить clip2.swf, то при при поптыке привести символы в clip2.swf к интерфесу, возвращается null |
insected - с UML я знаком совсем немножко - просто лень было рисовать взаимодействие в Word'е или Illustrator'е - так что за неграматную диаграмму прошу простить - рисовал просто для наглядности процесса. В IBingoGame и в BingoGame функция activate(value:Boolean):void присутствует, забыл указать ее на диаграмме.
BlooDHounD - спасибо за помощь, у меня это описано так: Код AS3:
Попытаюсь еще раз чуть проще: в shell.swf загружается tab_manager.swf (класс TabManager и TabContent), а tab_manager.swf загружает в себя game.swf и привод ее к интерфейсу возвращает null. А если загрузить game.swf в shell.swf - то игра приводится к интерфейсу замечательно. |
Попробуйте все грузить в CurrentDomain - возможно создаются 2 разных интерфейса (один в загружающей флешке, другой - в загруженой), и соответственно, получается 2 разных интерфейса.
|
на данном этапе решил проблему так:
Код AS3:
wvxvw - а что вы имеете ввиду под CurrentDomain, объясните пожалуйтса |
|
Сталкивался с такой проблемой. В данной ситуации флеш действительно создает два разных интерфейса с одинаковым именем. Как вариант решения: введи интерфейс в главную флэшку.
Код:
var tmp:IBingoGame; |
Да, два указателя на интерфейсы действительно красивее, чем две функции, которые я нигде не вызываю; ограничился локальными переменными в конструкторе:
Код AS3:
|
| Часовой пояс GMT +4, время: 10:46. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.