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

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

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

Регистрация: Aug 2010
Сообщений: 29
Question Предоадер на загружаемые картинки

Для загрузки картинок в своем проекте использовал код найденный на этом портале
Код AS1/AS2:
// ФУНКЦИЯ ПОДГОНКИ ЗАГРУЖЕННЫХ КАРТИНОК ПО РАЗМЕРУ И ЦЕНТРУ СЛОТА //
resizeClip = function(mc, maxWidth, maxHeight) {
     mc.image._yscale = mc.image._xscale = 100; // добавил чтобы при повторном выборе картинки меньше загруженной произошло считывание нового размера
     var ratio_x = maxWidth / mc.image._width;
     var ratio_y = maxHeight / mc.image._height;
     if (ratio_x <= ratio_y) {
         if (ratio_x < 1) {
             // ширина равна максимальной а высота в соответствии с пропорцией
             mc.image._width = maxWidth;
             mc.image._yscale = mc.image._xscale;
         } 
     } else {
         if (ratio_y < 1) {
             // высота равна максимальной а ширина в соответствии с пропорцией
             mc.image._height = maxHeight;
             mc.image._xscale = mc.image._yscale;
         }
     }
     // центруем 
     mc.image._x = -1 * Math.round(mc.image._width/2);
     mc.image._y = -1 * Math.round(mc.image._height/2);
     //сглаживаем
     mc.image.forceSmoothing = true; 
};
 
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
mcLoader.addListener(listener);
//после загрузки, ресайзим о центруем:
listener.onLoadInit = function(target_mc:MovieClip) {
     resizeClip(target_mc._parent, 590, 540);
}
mcLoader.loadClip('img0.jpg', page.slide_mc.image);
но помимо первоначальной загрузки у меня появилась необходимость менять эту картинку для чего добавил несколько кнопок

Код AS1/AS2:
btn1.onRelease = function () {
     mcLoader.loadClip('img1.jpg', page.slide_mc.image);
}
btn2.onRelease = function () {
     mcLoader.loadClip('img2.jpg', page.slide_mc.image);
}
Проблема в том что когда происходит загрузка картинки то на ее месте образуется пустота (если при этом блок slide_mc прозрачен и никак не выделяется) хотелось бы повесить ко всему этому (поверх загружаемой картинки) маленький прелоадер (хотябы простейший цифровой) при этом чтобы он срабатывал каждый раз когда мы нажимаем на кнопку (выбираем загрузку другой картинки)

Пытался найти решение из большенства уже предоставленного материала но пока без результатно.
Заранее спасибо всем отозвавшимся.

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Вы можете при наступлении закачки:
Код AS1/AS2:
listener.onLoadStart=function(target){
	attachMovie("preloader","preloader",1500)
}
preloader - это клип в библиотеки, в котором есть текстовое динам. поле с именем t

затем во время закачки:
Код AS1/AS2:
listener.onLoadProgress=function(target,loaded,total){
	preloader.t.text=loaded;
}
выводить число например загруженный байт
А при окончании загрузки
Код AS1/AS2:
listener.onLoadInit = function(target_mc:MovieClip) {
     resizeClip(target_mc._parent, 590, 540);
	 removeMovieClip(preloader)
}
удалять предзагрузчик. Это сработает только если вы реально загружаете картинки из инета, иначе надо использовать listener.getProgress()

Старый 22.09.2010, 17:53
wcbfalcon вне форума Посмотреть профиль Отправить личное сообщение для wcbfalcon Найти все сообщения от wcbfalcon
  № 3  
Ответить с цитированием
wcbfalcon

Регистрация: Aug 2010
Сообщений: 29
спасибо за подсказку в принципе я чтото подобное пытался сделать но функционировало всего 1 раз
ваш пример работает каждый раз при нажатии только вот на вывод текста я добавил % а не байтность
Код AS1/AS2:
listener.onLoadProgress = function(target, loadedBytes, totalBytes) {
    process = Math.round((loadedBytes / totalBytes) * 100);
    img_loader.t.text = process + "%";
};
а вот удалени перезагрузчика не происходит
Код AS1/AS2:
listener.onLoadInit = function(target_mc:MovieClip) {
    removeMovieClip(img_loader); // не работает
};
вот это не работает обошел конечно это путем скрывания из вида блока загрузчика
Код AS1/AS2:
listener.onLoadStart=function(target){
    img_loader._visible = true;
    attachMovie("img_loader","img_loader",1500);
};
и
Код AS1/AS2:
listener.onLoadInit = function(target_mc:MovieClip) {
    img_loader._visible = false;
};
возможно не совсем коректно но это срабатывает

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Ага, видать я уже что-то забываю в as2.

Старый 23.09.2010, 00:06
wcbfalcon вне форума Посмотреть профиль Отправить личное сообщение для wcbfalcon Найти все сообщения от wcbfalcon
  № 5  
Ответить с цитированием
wcbfalcon

Регистрация: Aug 2010
Сообщений: 29
Я бы с радостью перешел на AS3 но по глупости начал писать проект на AS2 и переписывать все уже нет времени (проект это целый сайт-портфолио) ну да ладно в принципе ._visible тоже норм работает

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

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

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


 


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


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