Просмотр полной версии : Прелоадер
вот код
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
а в чем проблема? =)
проблема в том что его не видно т.е
гедбайтс дает налл
widt=0
height=0
даже после загрузки
я пытался его поймать так:
this["rozetkiButtons"+i] .гедбайтс
massivButtonsRozetki[i] .гедбайтс
massivButtonsRozetki[i] .temp.гедбайтс
но не фига не вышло
и даже так
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)
}
Всем спасибо :)
проблема была решена так
// 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--;
}
}
}
};
//
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.