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

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

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

Регистрация: Jul 2008
Сообщений: 42
По умолчанию Отследить загрузку картинки в movie clip

Доброе время суток. Вобщем вся суть проблемы отражена в названии вопроса. Необходимо определить момент, когда картинка загрузилась в movieclip. Есть пример на AS2.
Код:
clip.loadImage = function(file)
{
    this.image.removeMovieClip();
    this.createEmptyMovieClip("image", 0);
    this.image.loadMovie(file);
    this.onEnterFrame = function()
    {
        var l = this.image.getBytesLoaded();
        var t = this.image.getBytesTotal();
        if (t>0 && l>=t) {
            // загрузка закончилась
            delete this.onEnterFrame;
        }
    };
};
Самостоятельно его не получилось переделать, флеш ругается на getBytesLoaded/Total. Подскажите пожалуйста решение проблемы. Заранее благодарю за помощь!

Старый 01.08.2009, 10:51
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Loader в помощь.

Старый 01.08.2009, 13:21
Аллиас вне форума Посмотреть профиль Отправить личное сообщение для Аллиас Найти все сообщения от Аллиас
  № 3  
Ответить с цитированием
Аллиас
 
Аватар для Аллиас

Регистрация: May 2009
Сообщений: 63
Для меня первое знакомство с Loader'ом по справочнику оказалось не очень понятным, поэтому приведру пример загрузки картинки с помощью Loader'а (Код рассчитан на FLA файл).
Код AS3:
//создаем переменную со ссылку на то, что загружаем.
var url:URLRequest = new URLRequest("http://s49.***********/i124/0904/08/c4970982e94e.gif");
//создаем сам загрузчик
var ldr:Loader = new Loader();
//загружаем url
ldr.load(url);
//чтобы узнать когда загрузка содржимого началась, идет, и закончилась
//нужно слушать соответствующее события (Event.OPEN, ProgressEvent.PROGRESS
// и Event.COMPLETE соответственно), для этого добавим необходимые слушатели
//свойству contentLoaderInfo, нашего загрузчика (внимания сам Loader НЕ отправляет этих событий)
//отравится один раз при начале загрузки...
ldr.contentLoaderInfo.addEventListener(Event.OPEN, onStart);
//будет отправляться постоянно, пока загрузка не завершилась
//вот тут можно считать contentLoaderInfo.bytesTotal и
//contentLoaderInfo.bytesLoaded;
ldr.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);
//отправится один раз, когда загрузка будет завершена.
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
//создаем обработчики для всех событий...
function onStart(e:Event){
  trace("загрузка началась"); 
}
function onProgress(e:Event){
  trace("загружено "+Math.floor(ldr.contentLoaderInfo.bytesLoaded/1024) +" из "+Math.floor(ldr.contentLoaderInfo.bytesTotal/1024)+" КБ"); 
}
function onComplete(e:Event){
  trace("загрузка закончилась");
  addChild(ldr); //отображение картинки когда загрузка заверншилась 
}


Последний раз редактировалось Аллиас; 01.08.2009 в 13:37.
Старый 02.08.2009, 06:13
Ilut вне форума Посмотреть профиль Отправить личное сообщение для Ilut Найти все сообщения от Ilut
  № 4  
Ответить с цитированием
Ilut

Регистрация: Jul 2008
Сообщений: 42
Большое спасибо за ответы, но вновь возникла трудность. Подскажите, а как можно проверить существование загружаемого файла? Я пробовал использовать блоки try catch, пробовал слушать события об ошибке, но у меня так и не получилось достичь желаемого результата! вот пример кода, который у меня в данный момент:
Код AS3:
loader.addEventListener(IOErrorEvent.IO_ERROR, onErr);	
var ureq:URLRequest=new URLRequest("file_path");	
loader.load (ureq); 	
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
Заранее благодарю за помощь!

Старый 02.08.2009, 11:30
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 5  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код AS3:
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onErr);

Старый 02.08.2009, 12:46
Ilut вне форума Посмотреть профиль Отправить личное сообщение для Ilut Найти все сообщения от Ilut
  № 6  
Ответить с цитированием
Ilut

Регистрация: Jul 2008
Сообщений: 42
Я такой вариант тоже рассматривал, но он не рабочий.

Старый 02.08.2009, 13:14
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Не может быть.

Старый 02.08.2009, 13:18
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 8  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
Ilut, все работает, если делать как надо и вешать слушателей ДО вызова загрузки
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 03.08.2009, 03:53
Ilut вне форума Посмотреть профиль Отправить личное сообщение для Ilut Найти все сообщения от Ilut
  № 9  
Ответить с цитированием
Ilut

Регистрация: Jul 2008
Сообщений: 42
Спасибо за помощь, разобрался в чем была проблема и почему слушатель не запускался.

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

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

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


 


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


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