![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Mar 2010
Сообщений: 11
|
Здравствуйте ребята! Я как начинающий в AS3 наткнулся на очередной камень.. создаю страничку сайта.Бэкграунд - рандомная картинка из библиотеки, загружаеться UILoader_ом. Написал скрипт для прелоадера, который показывает статус только для swf файла. Помогите пожалуйста связать размер картинки загружаемой UILoader_ом с размером swf.
Тоесть как совместить переменные , например toLoadUI и toLoad???? Так как я не знаю ещё большинство команд, для меня это трудно.. stop(); //Загрузка случаяной картинки от 1 до 9 var случаянаяКартинка:Number = Math.ceil(Math.random()*18); BackgroundIMG. source = "wallpapers/wall"+случаянаяКартинка+".jpg"; //UI bytes BackgroundIMG.addEventListener(ProgressEvent.PROGRESS, UIPreloader); function UIPreloader(event:ProgressEvent) { var toLoadUI:Number = event.bytesTotal; var loadedUI:Number = event.bytesLoaded; var totalUI:Number = loadedUI/toLoadUI; } //Content bytes addEventListener(Event.ENTER_FRAME, LoaderF); function LoaderF(e:Event):void{ var toLoad:Number = loaderInfo.bytesTotal; var loaded:Number = loaderInfo.bytesLoaded; var total:Number = loaded/toLoad; if(loaded == toLoad){ removeEventListener(Event.ENTER_FRAME, LoaderF); gotoAndStop(2); }else{ preloader_mc.preloaderFill_mc.scaleX = total; preloader_mc.precent_txt.text = Math.floor(total*100)+"%"; preloader_mc.ofBytes_txt.text = loaded + "bytes"; preloader_mc.totalBytes_txt.text = toLoad + "bytes"; } } Последний раз редактировалось St.Shaeen; 12.03.2010 в 03:08. |
|
|||||
|
Регистрация: Jun 2008
Адрес: Tomsk
Сообщений: 88
|
а организовать очередь загрузки нельзя? загрузил swf, стартуй загрузку картинки. Можно создать относительный прогресс бар, указывающий общую загрузку + прогресс бар, отображающий загрузку текущего фрейма/свф/картинки.
Можно попробовать так: на Enter_Frame, а лучше на таймер, навешать событие, которое будет обрабатывать прелодаер( текстовое поле в вашем случае ). Функция будет обрабатывать глобально объявленные непременные toLoadUI, loadedUI, toLoad, loaded. Которые в свою очередь, обновятся в ваших UIPreloader, LoaderF. |
|
|||||
|
Регистрация: Mar 2010
Сообщений: 11
|
Спасибо за совет, только вот сообразить не могу как вытянуть из функции эти значеня например totalUI.
а потом может создать отдельные переменные типа и так далее и на них уже вешать счётчик. но опять таки не могу я достать эти значения из функции.... Последний раз редактировалось St.Shaeen; 14.03.2010 в 15:06. |
|
|||||
|
Регистрация: Feb 2007
Сообщений: 563
|
У меня к автору вопрос - а почему вы выбрали какой-то экзотический способ грузить и отображать процесс загрузки?
Вопрос второй -что-то не очень понятно что счем связать нужно. Вот вам для справки, может поможет - Стандартный скрипт загрузки картинки из хелпа - package { import flash.display.Loader; import flash.display.Sprite; import flash.events.*; import flash.net.URLRequest; public class LoaderExample extends Sprite { private var url:String = "Image.gif"; public function LoaderExample() { var loader:Loader = new Loader(); configureListeners(loader.contentLoaderInfo); loader.addEventListener(MouseEvent.CLICK, clickHandler); var request:URLRequest = new URLRequest(url); loader.load(request); addChild(loader); } private function configureListeners(dispatcher:IEventDispatcher):void { dispatcher.addEventListener(Event.COMPLETE, completeHandler); dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler); dispatcher.addEventListener(Event.INIT, initHandler); dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); dispatcher.addEventListener(Event.OPEN, openHandler); dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler); dispatcher.addEventListener(Event.UNLOAD, unLoadHandler); } private function completeHandler(event:Event):void { trace("completeHandler: " + event); } private function httpStatusHandler(event:HTTPStatusEvent):void { trace("httpStatusHandler: " + event); } private function initHandler(event:Event):void { trace("initHandler: " + event); } private function ioErrorHandler(event:IOErrorEvent):void { trace("ioErrorHandler: " + event); } private function openHandler(event:Event):void { trace("openHandler: " + event); } private function progressHandler(event:ProgressEvent):void { trace("progressHandler: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal); } private function unLoadHandler(event:Event):void { trace("unLoadHandler: " + event); } private function clickHandler(event:MouseEvent):void { trace("clickHandler: " + event); var loader:Loader = Loader(event.target); loader.unload(); } } } |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:51. |
|
|
« Предыдущая тема | Следующая тема » |
|
|