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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.01.2012, 11:35
Varlamov_AS вне форума Посмотреть профиль Отправить личное сообщение для Varlamov_AS Найти все сообщения от Varlamov_AS
  № 1  
Ответить с цитированием
Varlamov_AS

Регистрация: Dec 2011
Сообщений: 31
Question Создание ProgressBar

Доброго времени суток. Изучаю создание прелоадеров.
Ситуация такая: сделал загрузчик (немного коряво, но вроде работает) с выводом процента загруженных данных.
Код AS3:
package {
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
// Собственно класс с полосой загрузки
import progressBar.ProgressBar;
 
public class PreLoader extends MovieClip {
    public var urlLoader:URLLoader = new URLLoader();
 
    private var _urlRequest:URLRequest;
    private var _progressBar:ProgressBar = new ProgressBar();
    private var _percent:uint = 0;
 
    public function PreLoader() {
        super();
        stop();
 
        _urlRequest = new URLRequest();
 
        urlLoader.addEventListener(Event.INIT, downloadStart);
        urlLoader.addEventListener(Event.COMPLETE, downloadComplete);
        urlLoader.addEventListener(ProgressEvent.PROGRESS, downloadProgress);
    }
 
    public function startDownload(url:String):void {
        _percent = 0;
        _progressBar = new ProgressBar();
        _progressBar.initDownload();
 
        _urlRequest.url = url;
        urlLoader.load(_urlRequest);
    }
 
    private function downloadStart(e:Event):void {
       this.addChild(_progressBar);
    }
 
    public function getProgressBar():ProgressBar {
        return _progressBar;
    }
 
    private function downloadComplete(e:Event):void {
        dispatchEvent(new PreloaderEvent(PreloaderEvent.PRELOADER_LOAD_COMPLETE));
 
        e.target.removeEventListener(Event.INIT, downloadStart);
        e.target.removeEventListener(Event.COMPLETE, downloadComplete);
        e.target.removeEventListener(ProgressEvent.PROGRESS, downloadProgress);
    }
 
    private function downloadProgress(e:ProgressEvent):void {
        if (e.target.bytesTotal != 0)
            _percent = Math.round((e.target.bytesLoaded / e.target.bytesTotal) * 100);
       //Здесь процент загрузки передается в ProgresBar
        _progressBar.progress(_percent);
    }
}
}
Теперь нужен совет по созданию ProgressBar'a, т.е. как правильнее и лучше организовать полосу загрузки? Может есть какие-то готовые варианты, причем использование Flex нежелательно (Только AS3).

Старый 12.01.2012, 11:46
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 2  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Просто нарисуйте два прямоугольника, один фоновый, другой скалируйте.
Сначала в downloadStart:
Код AS3:
progressBar.scaleX = 0;
Затем в downloadProgress:
Код AS3:
progressBar.scaleX = e.target.bytesLoaded / e.target.bytesTotal;

Старый 12.01.2012, 11:51
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 3  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Не очень это будет смотреться. Чисто для самого простого загрузчика. Лучше сделать изображение загрузчика, поставить сверху маску, и уже маску масштабировать

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

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

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


 


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


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