Форум 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=72283)

breez38 23.11.2005 11:27

Ожидание загрузки картинки
 
Народ, у меня такая проблема:
я пишу движок flash+xml для презентаций и мне требуется загружать картинки из внешних файлов. С самой загрузкой проблем нет, но вот что плохо, что сам процесс загрузки картинки происходит, когда стек пуст.
т.е.
Код:

var mc:MovieClip = createEmptyMovieClip("container_mc", this.getNextHighestDepth());

var mcllist:Object = new Object();
mcllist.onLoadInit = function()
{
        trace('loaded!');
}
var mcl:MovieClipLoader = new MovieClipLoader();
mcl.addListener(mcllist);
mcl.loadClip("1.jpg", mc);
trace('end of script');

сначала выведит 'end of script', а затем 'loaded!'
другими словами картинка грузится асинхронно.
хотя в других языках программирования (Object Pascal(Delphi), C++) загрузки картинок происходят синхронно со всей программой.
может кто находил решения, как подождать, пока картинка заругиться? :confused:

KPaul 23.11.2005 12:49

А что за причина требующая такой синхронности?

breez38 23.11.2005 13:01

Ожидание загрузки картинки
 
Цитата:

А что за причина требующая такой синхронности?
Причин море...
Например, делаю я каталог товаров. Получается прикол... вся текстовая информация загрузилась, а картинка все еще грузится... конечно с винта этого почти не заметно.. но вот если с CD диска грузится (особенно после некоторого простоя), то очень неприятное мигание картинок происходит..
Так же, при загрузки скинов, иконок.. да и просто в любом месте где требуется что информация показывалась вся и сразу..

Конечно, можно было прелоадер на картинку повесить типа MovieClipLoader.OnLoadProgress, но он работает только, если файл качается из Инета, а с локальными не работате (пробовал уже).

St. Father 23.11.2005 13:14

1. В поиск.
2. В аську.

liquid lone 23.11.2005 13:20

Цитата:

сначала выводит 'end of script', а затем 'loaded!'
естественно, так как событие, происходящее после загрузки первого кадра ( onLoadInit ), следует после начала закачки (loadClip)
используй onLoadComplit - событие происходит при завершении загрузки, то есть самым последним в этой цепочке

breez38 23.11.2005 13:52

Ожидание загрузки картинки
 
to St. Father: в поиске был - ничего не нашел.

to liquid lone: тоже самое...

St. Father 23.11.2005 14:04

смысл такой
1. в локале можно обойтись без МКЛоадера. Если хоть один умный человек посмотрит тему "Разборы с prototype" т.к. есть enterFrame и onLoad, которых, в идеале должно хватить.
2. Если хочешь, чтобы код не выполнялся до загрузки картинки - структура должна быть такая:
маяФукция ()
{
стэйтменс... который не должен выполнятся до загрузки.
}
МКЛоадер_листнер.onLoadComplete = маяФукция;
______________
либо такая
клипВКоторыйЯГружу.loadMovie ("клипКоторыйЯГружу");
onEnterFrame = function ()
{
if(клипВКоторыйЯГружу.getBytesTotal () == клипВКоторыйЯГружу.getBytesLoaded)
// или флаг какой-нить
{
delete onEnterFrame;
стэйтменс... который не должен выполнятся до загрузки.
}
}
в асю стукнись - поговорим... темя для мя интересная :)


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

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