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

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

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

Регистрация: Jul 2007
Сообщений: 12
По умолчанию Проблема при загрузке изображения

Итак, мне нужно загрузить превьюшки из внешних файлов в массив из BitmapData. Превью имеют названия 1.jpg, 2.jpg ... img_num.jpg Имею такой код:
Код:
import flash.display.BitmapData;
var img_num:Number = 5; //Кол-во изображений
var pre_path:String = "/previews/"; //Папка с превью
var pre_bmd:Array = [];  //Массив с BitmapData
function applyAll():Void {
	//Сначала нам нужно загнать все превьюшки в массив BitmapData. Для этого мы поочереди грузим  
	//каждую превью в MovieClip, после чего рендерим его в BitmapData.
	function loadNext(i:Number) {
		//Функция рекурсивно грузит превью, ждет ее загрузки, отрисовывает и грузит следующую
		var loader:MovieClipLoader = new MovieClipLoader();
		var listener:Object = {};
		createEmptyMovieClip("temp"+i, getNextHighestDepth());
		_root["temp"+i].createEmptyMovieClip("img",1);
		loader.addListener(listener);
		loader.loadClip(pre_path+i+'.jpg', _root["temp"+i].img);
		listener.onLoadComplete = function() {
			trace(_root["temp"+i]._width);
			if (i<img_num){
				loadNext(i+1);
			}else{
				trace("Loading complete!");
			}
		};
	}
	trace("Loading previews...");
	loadNext(1);
}
Так вот - trace(_root["temp"+i]._width); у меня почему-то выдает 0, хотя должен 120 (длина превьюшек везде 120).
Может, я не правильно понял, но ведь событие onLoadComplete происходит уже после того, как рисунок загрузится, и соот-но длина клипа должна быть 120.
Рисунке грузятся, т.е во флеше они показываются...
Объясните, плиз, что я делаю не так...

Старый 02.08.2007, 15:54
Usnul вне форума Посмотреть профиль Отправить личное сообщение для Usnul Посетить домашнюю страницу Usnul Найти все сообщения от Usnul
  № 2  
Ответить с цитированием
Usnul
 
Аватар для Usnul

Регистрация: Mar 2001
Адрес: во сне
Сообщений: 2,701
Отправить сообщение для Usnul с помощью ICQ
сразу после загрузки картинка не отображается, она отображается в следующем кадре, если я правильно помню. Эта проблема пропала в АС3.
__________________
I'm only happy when it rains.
Waka Laka

Старый 02.08.2007, 15:59
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 3  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Из хелпа (http://flash-mx.ru/help/)
"При использовании событий onLoadComplete и onLoadInit класса MovieClipLoader, очень важно понимать чем отличаются особенности их наступления. Событие onLoadComplete имеет место после того как SWF или JPEG файл загружен, но до того как его код задействован. В этот момент невозможно обратится к свойствам и методам загруженного клипа и, стало быть, Вы не можете вызвать функцию, передвинуть клип на указанный кадр и т.д. В большинстве случаев лучше использовать событие onLoadInit, которое имеет место когда клип загружен и полностью инициализирован."
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 02.08.2007, 16:00
Winged вне форума Посмотреть профиль Отправить личное сообщение для Winged Найти все сообщения от Winged
  № 4  
Ответить с цитированием
Winged

Регистрация: Jul 2007
Сообщений: 12
iNils, огромное спасибо - помогло! А то у меня заказ горит, а я как дурак сижу и не знаю что делать

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

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

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


 


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


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