PDA

Просмотр полной версии : Как загрузить внешние изображения и прицепить к ним по прелоадеру?


джонатан
29.05.2008, 20:08
Здравствуйте! Вот решил спросить у Вас, уважаемые друзья, как же загружать внешние jpg изображения, и чтобы был прелоадер их загрузки. Не один на все, а на каждом свой!

Благодарю Вас за внимание.

Alex_beginner
29.05.2008, 20:17
Привет! Дело благородное. Используй класс MovieClipLoader и всякие там события onLoadStart, onLoadComplete, onLoadInit, onData итд, создавая для каждого джпега свой лоадер.

джонатан
29.05.2008, 20:33
Ага. Спсибки! значит LoadMovie и loadMovieNum не кактят...
Скажите, вот я когда обычный прелоудер делаю, пишу такой вот код:


onClipEvent (load) {
total = _root.getBytesTotal();
}
onClipEvent (enterFrame) {
loaded = _root.getBytesLoaded();
percent = int(loaded/total*100);
text = percent+"%";
gotoAndStop(percent);
if (loaded == total) {
_root.gotoAndPlay(2);
}
}


Ни и он соответственно висит на 100-кадровом клипе, в котором 1 кадр = 1%. Я смогу по его аналогии применить MovieClipLoader, или там подругому как-то?

BBOY Ильич
29.05.2008, 20:50
Почему бы и нет...

Alex_beginner
29.05.2008, 20:55
Кстати я почему-то в хелпе, немогу найти MovieClipLoader. Не знаете почему? - в классах смотрите, а не в компонентах.

Пример прелоадера с MovieClipLoader'ом:

preloader._visible = false;
var loader:MovieClipLoader = new MovieClipLoader();
var listener:Object = {};
loader.addListener(listener);
var timer:Number = null;
loader.loadClip("http://www.myserver.com/flash/anim.swf", clip);
listener.onLoadStart = function():Void {
preloader._visible = true;
preloader.proc.text="0 %", preloader.time.text="?";
timer = getTimer();
listener.onLoadError = function():Void {
clip.createTextField("error", 0, 50, 50, 0, 0);
clip.error.autoSize = clip.error.border=true;
clip.error.text = "Файл не может быть загружен";
};
listener.onLoadInit = function():Void {
clip._visible = false;
clip.stop();
}
listener.onLoadProgress = function(clip:MovieClip, l_b:Number, t_b:Number):
Void {
var percent:Number = l_b/t_b;
preloader.proc.text = Math.floor(percent*1000)/10;
preloader.polosa._xscale = percent*100;
preloader.time.text = Math.round((1-percent)*(getTimer()-timer) / percent
/ 6000) /10;
};
listener.onLoadComplete = function():Void {
preloader.swapDepths(1000), preloader.removeMovieClip();
delete loader, delete listener, delete timer;
clip._visible=true, clip.play();
};
};

джонатан
30.05.2008, 17:47
Не работает почему-то...

Alex_beginner
30.05.2008, 20:58
Ну тут могут быть ошибки. Я думаю ты с ними справишься. Я всего лишь принцип показал.

Если, какую либо ошибку не сможешь исправить, пиши, подмогу, чем могу.

джонатан
31.05.2008, 22:26
Хорошо, сенк ю!