![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2008
Адрес: Москва
Сообщений: 92
|
Как обычно сразу к коду:
private function doLoadComponent( component:ComponentBean, params:Object ) : void { loader_as2 = new SWFLoader(); target.addChild( loader_as2); //... дальше идет создание реквеста и лоад. работает, заменяем на private function doLoadComponent( component:ComponentBean, params:Object ) : void { loader_as2 = new Loader(); target.addChild( loader_as2); //... перестает работать, Error #1034: Ошибка типа Coercion: невозможно преобразовать flash.display::Loader@4e5d641 в mx.core.IUIComponent. П.С. как человек который любит лично разбивать лоб о грабли я проверил утверждение о том, что если через SWFLoader грузить as2, загруженое содержимое будет работать не адекватно. Не адекватно равно вот чему: трейс при первой загрузке: in first frame: _root=_root/this=_root/_level0=undefined/_global.tempvar = 123 in LocalConn from flex: _root=_root/this=[object Object]/_level0=undefined/_global.tempvar = 123 in root func: _root=_root/this=_root/_level0=undefined/_global.tempvar = 123 трейс при повторной загрузке в той же сессии: in first frame: _root=_root/this=_root/_level0=undefined/_global.tempvar = 123 in LocalConn from flex: _root=undefined/this=[object Object]/_level0=_level0/_global.tempvar = undefined in root func: _root=undefined/this=_level0/_level0=_level0/_global.tempvar = undefined При первой загрузке у нас в LC есть рут, но нет левел0, при повторной все ровно наоборот. На мой взгляд очень познавательно, не так ли? ![]() Последний раз редактировалось incorp; 03.11.2009 в 15:26. |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
кто такой SWFLoader?
и кто такой target? видно что ф-ция addChild объекта target - принимает в качестве аргумента mx.core.IUIComponent, которым не является loader, a SWFLoader соответственно является) а по поводу _root и level0 - просто не надо их использовать.
__________________
Отряд Котовскага |
|
|||||
|
Регистрация: Nov 2008
Адрес: Москва
Сообщений: 92
|
А вот кто они такие, смотри:
getQualifiedClassName(loader_as2)=flash.display::Loader - обычный лоадер getQualifiedClassName(target)=mx.containers::Canvas - сюда грузим getQualifiedClassName(loader_as2)=mx.controls::SWFLoader - swf лоадер из чего совершенно не ясно почему лоадер воспринимается как IUIComponent. Насчет рут и левел0 - не я придумал их использовать, просто было написано много игр еще при царе горохе и конечно преписывать их на ас3 или с нормальным синтаксисом никто не собирается. Поэтому их надо как то запихать во флексовое лобби. Ну и потом, я в упор не вижу разницы с примером из хелпа: |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
разница в targete - target = flex компонент, соответственно его чилды должны быть, компонентами, а Loader это не IUIComponent.
SWFLoader как раз и оборачивает content в IUIComponent. Используй его. Для работы с as2 кодом используй localConnection или события: см здесь:
__________________
Отряд Котовскага |
|
|||||
|
Регистрация: Nov 2008
Адрес: Москва
Сообщений: 92
|
ага, вроде дошло. та штука в которую я пытаюсь добавить лоадер вовсе не желает его там видеть. спасиб.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 01:50. |
|
|
« Предыдущая тема | Следующая тема » |
|
|