Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Проблема при загрузке изображения (http://www.flasher.ru/forum/showthread.php?t=99309)

Winged 02.08.2007 15:39

Проблема при загрузке изображения
 
Итак, мне нужно загрузить превьюшки из внешних файлов в массив из 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.
Рисунке грузятся, т.е во флеше они показываются...
Объясните, плиз, что я делаю не так...

Usnul 02.08.2007 15:54

сразу после загрузки картинка не отображается, она отображается в следующем кадре, если я правильно помню. Эта проблема пропала в АС3.

iNils 02.08.2007 15:59

Из хелпа (http://flash-mx.ru/help/)
"При использовании событий onLoadComplete и onLoadInit класса MovieClipLoader, очень важно понимать чем отличаются особенности их наступления. Событие onLoadComplete имеет место после того как SWF или JPEG файл загружен, но до того как его код задействован. В этот момент невозможно обратится к свойствам и методам загруженного клипа и, стало быть, Вы не можете вызвать функцию, передвинуть клип на указанный кадр и т.д. В большинстве случаев лучше использовать событие onLoadInit, которое имеет место когда клип загружен и полностью инициализирован."

Winged 02.08.2007 16:00

iNils, огромное спасибо - помогло! А то у меня заказ горит, а я как дурак сижу и не знаю что делать ;)


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

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