![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 122
|
Здравствуйте уважаемые программисты.
Я сделал собственный прелоадер во Flex проекте. Тут полный код класса прелоадера. Я отображаю процента загрузки следующим образом public override function set preloader(preloader:Sprite):void { preloader.addEventListener(ProgressEvent.PROGRESS, onSWFDownloadProgress); ... } ... private function onSWFDownloadProgress(event:ProgressEvent):void { var t:Number = event.bytesTotal; var l:Number = event.bytesLoaded; var p:Number = Math.round((l/t) * 100); tField.text="Loading... "+p+"%"; tField.setTextFormat(tFormat); } |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 122
|
Вы имеете ввиду это:
public override function set preloader(preloader:Sprite):void { preloader.addEventListener(ProgressEvent.PROGRESS, onSWFDownloadProgress); preloader.addEventListener(Event.COMPLETE, onSWFDownloadComplete); preloader.addEventListener(FlexEvent.INIT_PROGRESS, onFlexInitProgress); preloader.addEventListener(FlexEvent.INIT_COMPLETE, onFlexInitComplete); // Я добавил это строчку preloader.addEventListener(RSLEvent.RSL_PROGRESS,rslListener); ... } ... private function rslListener(event:RSLEvent):void { var t:Number = event.bytesTotal; var l:Number = event.bytesLoaded; var p:Number = Math.round((l/t) * 100); tField.text="Loading... "+p+"%"; tField.setTextFormat(tFormat); } |
|
|||||
|
Я имел ввиду, что preloader отдает значения bytesTotal / bytesLoaded для всего. И приложения и RSL. Вот так:
private function getByteValues():Object { var li:LoaderInfo = root.loaderInfo; var loaded:int = li.bytesLoaded; var total:int = li.bytesTotal; // Look up the rsl bytes and include those var n:int = rslListLoader ? rslListLoader.getItemCount() : 0; for (var i:int = 0; i < n; i++) { loaded += rslListLoader.getItem(i).loaded; total += rslListLoader.getItem(i).total; } return { loaded: loaded, total: total }; } ... var bytes:Object = getByteValues(); var loaded:int = bytes.loaded; var total:int = bytes.total; // Dispatch a progress event (later we might conditionalize this // so that it isn't sent on a cache load). dispatchEvent(new ProgressEvent(ProgressEvent.PROGRESS,false, false, loaded, total)); Кстати, какой смысл был наследоваться от DownloadProgressBar, если вы не используете его методы? Достаточно наследоваться от Sprite, главное реализовать IPreloaderDisplay. Последний раз редактировалось alatar; 11.02.2011 в 14:04. |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 122
|
Скажите плиз откуда взялась переменная rslListLoader, я что то не могу разобратся
|
|
|||||
|
Регистрация: Dec 2009
Сообщений: 122
|
Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 12:22. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| Flex4 |
|
|