![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2013
Сообщений: 33
|
Подскажите в чём может быть проблема?
Есть такой прелоадер: package { import flash.display.DisplayObject; import flash.display.Loader; import flash.display.MovieClip; import flash.events.Event; import flash.events.ProgressEvent; import flash.net.LocalConnection; import flash.net.URLRequest; import flash.system.ApplicationDomain; import flash.system.LoaderContext; import flash.system.Security; import flash.system.SecurityDomain; public class Preload extends MovieClip { public function Preload() { this.addEventListener(Event.ADDED_TO_STAGE, onStage); function onStage(e:Event) { var preloader:Loader = new Loader(); var request:URLRequest = new URLRequest('game.swf'); preloader.contentLoaderInfo.addEventListener(Event.COMPLETE, onccCompl); preloader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgr); preloader.load(request); } } private function onProgr(e:ProgressEvent) { var bLoad:int = e.bytesLoaded; var bTotal:int = e.bytesTotal; textWin.text = String(bLoad/bTotal*100); } private function onccCompl(e:Event) { trace('ok'); var mc:MovieClip=e.target.content as MovieClip; addChild(mc); } } } Проценты бегут, но при завершении флешка не добавляется на сцену. Пробовал и SecurityDomain и по ADDED_TO_STAGE. Вылетает ошибка: TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null". at Game() |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Цитата:
Туда и надо смотреть. |
|
|||||
|
Регистрация: Jun 2013
Сообщений: 33
|
Без прелоадера работает.
Может что-то с FlashVars? |
|
|||||
|
[+1 16.07.13]
[+4 16.07.13] Регистрация: Oct 2005
Сообщений: 217
|
А Вы там к stage не обращаетесь?
|
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Цитата:
Покажите код Game. |
|
|||||
|
Регистрация: Jun 2013
Сообщений: 33
|
|
|
|||||
|
[+1 16.07.13]
[+4 16.07.13] Регистрация: Oct 2005
Сообщений: 217
|
Ну вот Вам и ошибка, потому что, когда Вы загружаете 1 swf во 2, в загружаемом нет свойства stage.Можно будет обратится к stage, когда она будет уже добавлена в список отображения.Я думаю, что именно по этой причине во flash develop по умолчанию создается такая структура.
Может я и ошибаюсь, на мой взгляд самое логичное объяснение. Последний раз редактировалось belv; 11.08.2013 в 23:07. |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
На самом деле, путаница в обработке событий.
Автор кода думает, что e.target в функции onccCompl это loader, но на самом деле это loader.contentLoaderInfo (см. на подписку на событие Event.COMPLETE). Самое простое - вынести лоадер в приватные переменные класса и брать контент из него. |
|
|||||
|
[+1 16.07.13]
[+4 16.07.13] Регистрация: Oct 2005
Сообщений: 217
|
Вы попробуйте загрузить так как автор и Вы увидите, что все работает.
А ошибку генерирует загружаемая флешка.Компилятор говорит, что нет какого-то свойства.Это свойство stage, я больше чем уверен. Попробуйте в загружаемую swf прописать, trace(stage.stageWidth); и Вы увидите эту же ошибку. |
|
|||||
|
Регистрация: Jun 2013
Сообщений: 33
|
Цитата:
Спасибо большое!!! Так работает. |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:20. |
|
|
« Предыдущая тема | Следующая тема » |
|
|