![]() |
прелоадер + Loader
Подскажите, пожалуйста, как правильно сделать прелоадер для экземпляра компонента Loader?
На рабочем листе есть экземпляр компонента Loader - "loader1" и кнопочки - в зависимости от того, какая кнопка нажата, в loader1 загружаются фотографии 1.jpg, 2.jpg, 3.jpg и т.д. При первой загрузке в loader1 - прелоадер работает, полоса движется. А при всех остальных - загрузка происходит, а прелоадер не работает. При последующих загрузках получается так, что loader1.bytesTotal дает значение предыдущей фотографии, а не новой, а также loader1.bytesLoaded==loader1.bytesTotal. Не знаю что с этим делать. function preloader(){ var t,l:Number; var prc:Number; _root.attachMovie("line", "line", 1); _root.line._xscale=0; _root.onEnterFrame=function(){ t=loader1.bytesTotal; l=loader1.bytesLoaded; _root.line._xscale=l/t*100; if (l && t && l==t){ delete _root.onEnterFrame; _root.line.unloadMovie(); } } } К кнопкам у меня привязан такой код: on(release){ loader1.load("1.jpg"); // для других кнопок соответственно другие фотографии preloader(); } |
Неужели никто не знает в чем проблема? Или все так просто и очевидно, что никто не хочет потратить минутку и подсказать? :((((
|
не знаю в чем проблема, может это поможет:
t = loader1.bytesTotal; _root.onEnterFrame = function() { l = loader1.percentLoaded; trace(l); _root.line._xscale = l; ...} здесь t объявлена перед onEnterFrame, чтобы было меньше обращений к loader1, все равно его значение не меняется :) удачи! |
Вложений: 1
Alex T, спасибо. К сожалению, не помогло.
Проблема заключается в том, что когда мы входим в _root.onEnterFrame=function() {....} самый первый раз, то loader1.bytesLoaded и loader1.bytesTotal - undefined... Т.е. то, что прикреплено к кнопкам (loader1.load("1.jpg")....) срабатывает не сразу. При втором заходе в _root.onEnterFrame=function() {....} - все ок. Соответственно, когда начинаю грузить другие фотки - loader1.load("2.jpg") и снова попадаю в ту функцию, то в первый заход у меня остаются старые значения, а во второй заход уже все ок. Я ввела дополнительную переменную (k), чтобы l,t присваивались значения не с первого раза, а начиная со второго.... Но не знаю - может проще можно сделать. Может ошибка в чем-то другом. Да и не нравится мне, что общий размер файла у меня определяется при каждом вызове той функции, а вынести за пределы этой функции не могу. Не работает. Прилагаю исходник. |
Очень хороший маневр!
Minutka, в принципе мне кажется главное, чтобы работало, а как оно сделано это уже второй вопрос (но конечно, если значение не имеет размер файла и оперативная память, т.е. если из-за обходов всяких "глюков" сильно не увеличиваются эти показатели),...:). |
Тогда оставлю как есть. Спасибо
|
| Часовой пояс GMT +4, время: 10:18. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.