Загрузка внешнего SWF, не может привести класс документа к общему базовому классу - PullRequest
0 голосов
/ 12 октября 2009

У меня есть родительский SWF-файл, который определяет базовый класс виджетов.

Затем я загружаю внешний SWF-файл в родительский. Класс документа внешнего SWF является производным от базового класса Widget - назовем его, например, DerivedWidget.

Проблема в том, что когда я загружаю внешний SWF-файл, я не могу привести Loader.content (показывается в отладчике как имеющий тип DerivedWidget) к типу Widget. Я использую оператор «as» для приведения содержимого в качестве виджета в родительский SWF после завершения загрузки, но приведение приводит к «null».

Такое поведение не ожидается, поскольку внешний SWF-файл загружается в домен приложения родителя, а содержимое загрузчика отображается в отладчике как DerivedWidget, который, как я знаю, происходит от Widget, но приведение к базовому классу Widget не выполняется. .

Может кто-нибудь объяснить это неожиданное поведение и предложить решение?

[Редактировать: оглядываясь на более ранний снимок кода ... это работало раньше, но теперь это не так ... и код загрузки и приведения не изменился]

[Edit2: на самом деле, похоже, что при отладке в Flash IDE происходит сбой. При нормальной работе все загружается в правильный ApplicationDomain (sameDomain = true); это, очевидно, огромная ошибка]

Ответы [ 2 ]

0 голосов
/ 14 декабря 2009

Я столкнулся с подобной проблемой. Решение в два раза.

  1. Используйте DerivedWidget(mc) вместо mc as DerivedWidget. Есть несколько статей, посвященных этой проблеме, вам нужно это выяснить.

  2. убедитесь, что класс DerivedWidget доступен в обеих средах компиляции. Если вы используете модуль или задействуете другой домен Flash, будьте осторожнее.

0 голосов
/ 02 декабря 2009

В способе наследования DocumentClass есть некоторые ошибки.

http://bugs.adobe.com/jira/browse/FP-2999 (необходимо войти в систему отслеживания ошибок Adobe)

Я рекомендую снять его со сцены и экспортировать через библиотеку, вместо этого он будет работать. На самом деле мое практическое правило таково: «никогда не используйте классы документов».

...