Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Прелоадер (http://www.flasher.ru/forum/showthread.php?t=45050)

Cerber 16.05.2003 19:22

Прелоадер
 
вот код

this.createEmptyMovieClip("rozetkiButtons"+i, layer_clip);
//
massivButtonsRozetki[i] = eval("rozetkiButtons"+i);
massivButtonsRozetki[i].createEmptyMovieClip("temp", 1);
//
_root.propertyPosition(_root.nodRozetki, nodIndex, "nameFileToLoad");
//
massivButtonsRozetki[i].temp.loadMovie(_root.nameFileToLoad);
massivButtonsRozetki[i].i = nodIndex;

вопрос такой как сделать на загружаемый файл прелоадер?

llllllllll 16.05.2003 19:34

а в чем проблема? =)

Cerber 16.05.2003 19:43

проблема в том что его не видно т.е

гедбайтс дает налл
widt=0
height=0
даже после загрузки
я пытался его поймать так:

this["rozetkiButtons"+i] .гедбайтс
massivButtonsRozetki[i] .гедбайтс
massivButtonsRozetki[i] .temp.гедбайтс

но не фига не вышло

Cerber 16.05.2003 19:46

и даже так

massivButtonsRozetki[i].onLoad = function() {


preloader[this.i]._visible = false;

};

CyberMax 16.05.2003 19:53

Цитата:

Оригинал написал(а) Cerber
проблема в том что его не видно т.е

гедбайтс дает налл
widt=0
height=0
даже после загрузки
я пытался его поймать так:

this["rozetkiButtons"+i] .гедбайтс
massivButtonsRozetki[i] .гедбайтс
massivButtonsRozetki[i] .temp.гедбайтс

но не фига не вышло

Делай трёхкадровый цикл и жди в нём того светлого момента, когда getBytesTotal() соизволит вернуть число, большее, чем 10 (десять). Если с путями не напутаеш, то всё заработает.
Я так в прелодере слайдшоу делал.

llllllllll 16.05.2003 19:55

Вот так он скажет сколько там байтслоадед:

i = 1;
layer_clip = 1;
massivButtonsRozetki = [];;
massivButtonsRozetki[i] = this.createEmptyMovieClip("rozetkiButtons"+i, layer_clip);
massivButtonsRozetki[i].createEmptyMovieClip("temp", ++layer_clip);
massivButtonsRozetki[i].temp.loadMovie("test.swf");
this.onMouseDown = function(){
trace(massivButtonsRozetki[i].temp.getBytesLoaded());
}

А onLoad - естественно не пашет, этож сто раз подымалось, есть вот какойто под рукой багфикс от flashguru - но там тоже какойто левак был не помню, но в целом правильная дорога:

Movieclip.prototype.oldLoadMovie=Movieclip.prototype.loadMovie
Movieclip.prototype.loadMovie=function(url,vars){
if(this.onData != undefined && this.onData != null){
this._parent.createEmptyMovieClip("__fixEvents",7777)
this._parent.__fixEvents.theTarget=this
this._parent.__fixEvents.onData=this.onData
if(this.onLoad != undefined && this.onLoad != null){
this._parent.__fixEvents.onLoad=this.onLoad
}
this._parent.__fixEvents.onEnterFrame=function(){
this.oldv=this.v
this.v=this.theTarget.getBytesLoaded()
if(this.v != this.oldv){
this.onData.call(this.theTarget)
}
if(this.v == this.theTarget.getBytesTotal()){
this.theTarget.onData=this.onData
if(this.onLoad != undefined){
this.theTarget.onLoad=this.onLoad
}
this.onLoad.call(this.theTarget)
this.removeMovieClip()
}
}
}
this.oldLoadMovie(url,vars)
}

Cerber 16.05.2003 20:19

Всем спасибо :)
проблема была решена так

// preload
numElements = _root.rozetkiNumbersPosition;
this.onEnterFrame = function() {
if (numElements) {


for (i=1; i<=_root.rozetkiNumbersPosition; i++) {
bytes_loaded = massivButtonsRozetki[i].temp.getBytesLoaded();
bytes_total = massivButtonsRozetki[i].temp.getBytesTotal();
if (bytes_loaded == bytes_total) {
massivPreloaderClipa[i]._visible = false;
numElements--;
}
}
}
};
//


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

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