Просмотр полной версии : loadMovie как прелоудер для swf
я сделал проэкт во флеш и остался прелоудер, я сделал дополнительный swf, который подгружает главный (так как у меня атачятся мувики я не могу встроить прелоудер в основной проэкт)
в дополнительном прелоудере всего один mc (loading) и такой код :
_root.loading.onEnterFrame=function() {
_root.loadMovie("main.swf");
l=_root.getBytesLoaded();
t=_root.getBytesTotal();
this.txt = Math.floor(100*l/t)+"%";
}
оно все равно загружает с 60%
почему?
клгда я пробывал загружать свф в мувик клип, то свф теряет свои свойства, теряет резину и прочее,
~спасибо
amexdesign
26.11.2009, 22:04
так как у меня атачятся мувики я не могу встроить прелоудер в основной проэкт
почему же нет? вставте все аттачи в отдельную функцию и запускайте её по заключению загрузкирута основного фильма
export in first frame отмечено, тогда прелоудер загрузится после мувиков и будет пустой экран а потом сразу с 40% начнет
если не отметить, то тогда они вобще не будут атачится
должено же быть какоето простое решение
amexdesign
27.11.2009, 01:30
1. создаёшь в swf с прелоудером пустой мувик как контейнер, в который загружается твой основной проект. вот это:
_root.loadMovie("main.swf")
работать не будет, так как loadMovie работает только с целевым объектом.
2.а теперь AS:
loadMovie("main.swf", container);// container - это мувик на сцене
this.onEnterFrame=function() {
var l = container.getBytesLoaded();
var t = container.getBytesTotal();
if(l == t){
// здесь функция, выполняемая по завершению загрузки, например
this.txt._visible = 0;
}else{
this.txt.text = Math.floor(100*l/t)+"%";
}
}
когда гружу в контейнер то загружаемый теряет свои фунции,
тут по форуму полазил нашол _lockroot свойство, похоже это то что мне надо.
сейчас попробую слепить что то
DarkChris
27.11.2009, 13:06
поставь галочку Generate size report при паблише и посмотри результат что у тебя там в первом фрэйме грузится. Там сразу станет все понятно :)
а почему нельзя воспользоваться прослушивателем
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
mcLoader.addListener(listener);
listener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
total = bytesTotal;
loaded = bytesLoaded;
percent = int ((loaded / total) * 100); //можно присвоить текстовому полю и будут показываться проценты загрузки
if(total==loaded){
//тут будет всё выполняться, когда мувик загрузится
}
}
mcLoader.loadClip("main.swf", container);//вместо container указать мувиклип куда будет грузится main.swf
вот что-то вроде этого :)
DarkChris
27.11.2009, 17:24
хмм. а оно работать будет ?:)
слушатель вешается на mcLoader. что бы это заработало мне кажется нужно вместо:
loadMovie("main.swf", container);
сделать так
mcLoader.loadClip("main.swf",container);
верно, просто не то поле скопировал :)
поправил код...
когда локрут = тру то все в теории должно быть норм, но оно как то по китайски грузит и всегда не до 100%, пару муви клипов не будут загружены
ldr = контейнер
_root.ldr._lockroot = true;
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:Object = {}
mcLoader.addListener(listener);
mcLoader.loadClip("main.swf",ldr);
listener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
_root.loading.txt = Math.floor((bytesLoaded/bytesTotal)*100)+"%";
};
listener.onLoadComplete = function() {
mcLoader.removeListener(listener);
};
убрал галочку с Export in First Frame и загрузил все атачеемые мс в кадр между лоудером и проэктом, но мне не хотелось этого делать
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.