Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.03.2010, 15:55
St.Shaeen вне форума Посмотреть профиль Отправить личное сообщение для St.Shaeen Найти все сообщения от St.Shaeen
  № 1  
Ответить с цитированием
St.Shaeen

Регистрация: Mar 2010
Сообщений: 11
Question Помогите с UILooader_ом

Здравствуйте ребята! Я как начинающий в AS3 наткнулся на очередной камень.. создаю страничку сайта.Бэкграунд - рандомная картинка из библиотеки, загружаеться UILoader_ом. Написал скрипт для прелоадера, который показывает статус только для swf файла. Помогите пожалуйста связать размер картинки загружаемой UILoader_ом с размером swf.
Тоесть как совместить переменные , например toLoadUI и toLoad????
Так как я не знаю ещё большинство команд, для меня это трудно..

Код AS3:
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.
Старый 12.03.2010, 07:35
F1esk вне форума Посмотреть профиль Отправить личное сообщение для F1esk Найти все сообщения от F1esk
  № 2  
Ответить с цитированием
F1esk
 
Аватар для F1esk

Регистрация: Jun 2008
Адрес: Tomsk
Сообщений: 88
а организовать очередь загрузки нельзя? загрузил swf, стартуй загрузку картинки. Можно создать относительный прогресс бар, указывающий общую загрузку + прогресс бар, отображающий загрузку текущего фрейма/свф/картинки.

Можно попробовать так: на Enter_Frame, а лучше на таймер, навешать событие, которое будет обрабатывать прелодаер( текстовое поле в вашем случае ).
Функция будет обрабатывать глобально объявленные непременные toLoadUI, loadedUI, toLoad, loaded. Которые в свою очередь, обновятся в ваших UIPreloader, LoaderF.

Старый 14.03.2010, 15:04
St.Shaeen вне форума Посмотреть профиль Отправить личное сообщение для St.Shaeen Найти все сообщения от St.Shaeen
  № 3  
Ответить с цитированием
St.Shaeen

Регистрация: Mar 2010
Сообщений: 11
Спасибо за совет, только вот сообразить не могу как вытянуть из функции эти значеня например totalUI.
а потом может создать отдельные переменные типа

Код AS3:
var toLoadAll:Number = toLoad + toLoadUI;
и так далее и на них уже вешать счётчик.
но опять таки не могу я достать эти значения из функции....


Последний раз редактировалось St.Shaeen; 14.03.2010 в 15:06.
Старый 14.03.2010, 15:27
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 4  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
У меня к автору вопрос - а почему вы выбрали какой-то экзотический способ грузить и отображать процесс загрузки?
Вопрос второй -что-то не очень понятно что счем связать нужно.
Вот вам для справки, может поможет -
Стандартный скрипт загрузки картинки из хелпа -
Код AS3:
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();
        }
    }
}
как нетрудно догадаться - в этом примере в функции "progressHandler" можно отображать прогресс загрузки, функция init позволяет узнать размеры картинки и присвоить куда вам там надо.

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:51.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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