Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Loader и внешний SWF (http://www.flasher.ru/forum/showthread.php?t=133613)

Limeflash 09.12.2009 03:12

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

Код в целом прост:

Код AS3:

var context:LoaderContext = new LoaderContext();
context.checkPolicyFile = true;
var ldr:Loader= new Loader();
ldr.load( new URLRequest( "путь до swf-файла" ), context );

Обычные картинки, простые флешки, например баннеры, созданные в AS2, грузятся и работают прекрасно. Но как только доходит до загрузки AS3-флешки, дебаг-плеер начинает сыпать ошибками, что мол "Error #1009: Не удается вызвать свойство или метод со ссылкой на объект 'null'"

В чем грабля?

bicubic_bublic 09.12.2009 03:13

Цитата:

В чем грабля?
код загружаемыой флешки с ошибкой написан..

Limeflash 09.12.2009 03:17

Цитата:

Сообщение от bicubic_bublic
код загружаемыой флешки с ошибкой написан..

Скорее нет, чем да, ведь сама по себе (отдельно от загрузчика) загружаемая флешка работает прекрасно.

bicubic_bublic 09.12.2009 03:36

Цитата:

Скорее нет, чем да, ведь сама по себе (отдельно от загрузчика) загружаемая флешка работает прекрасно.
это ни о чем не говорит.
для начала проверьте ссылки на stage при инициализации загружаемой флешки. в конструкторе их быть не должно.

Limeflash 09.12.2009 03:39

Цитата:

Сообщение от bicubic_bublic
я флешка работает прекрасно.

это ни о чем не говорит.
для начала проверьте ссылки на stage при инициализации загружаемой флешки. в конструкторе их быть не должно.[/quote]

Ссылки, пожалуй есть, и скорее всего будут, ведь флешка произвольная, и каждый раз может быть разной, я на нее влиять не могу.
Если дело связано как-то с безопасностью - могу уточнить, что обе флешки находятся на одном и том же сервере, и есть всеразрешающий crossdomain.xml

bicubic_bublic 09.12.2009 03:41

тогда попробуйте загружать таким образом:
Код AS3:

var loader:Loader= new Loader();
addChild(loader);
loader.load( new URLRequest( "путь до swf-файла" ), context );


Limeflash 09.12.2009 03:45

Цитата:

Сообщение от bicubic_bublic
тогда попробуйте загружать таким образом:
Код AS3:

var loader:Loader= new Loader();
addChild(loader);
loader.load( new URLRequest( "путь до swf-файла" ), context );



Пробовал так, пробовал this.stage.addChild(ldr), пробовал вообще убрать addChild, ошибка все равно возникает точно такая же во всех случаях.

bicubic_bublic 09.12.2009 03:50

ну можно попробовать декомпилировать проблемные флешки и выяснить в чем проблема..

возможно где-то есть обращение к root которое считается внутреннее а получается не очень..

Limeflash 09.12.2009 04:00

Цитата:

Сообщение от bicubic_bublic
ну можно попробовать декомпилировать проблемные флешки и выяснить в чем проблема..

возможно где-то есть обращение к root которое считается внутреннее а получается не очень..

Декомпилировать можно, и скорее всего они есть, эти обращения, ведь изначально флешки не писались под использование в прелоадере, а теперь их надо использовать в прелоадере.

wvxvw 09.12.2009 04:04

Пока не будет глобального обработчика ошибок - ничего вы с этим не сможете сделать... исправить чужую криворукость в уже скомпилированом коде - это Левшой надо быть...


Часовой пояс GMT +4, время: 17:47.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.