Просмотр полной версии : Флешку с прелоадером глючит
Здравствуйте.
Такая проблема. Есть флешка. У неё есть прелоадер. Весь код - вот он.
preloader.onEnterFrame = function() {
totalFileSize = _root.getBytesTotal();
bytesLoaded = _root.getBytesLoaded();
percentLoaded = Math.floor(100*bytesLoaded/totalFileSize);
preloader.txtfield.text = percentLoaded + "%";
if (percentLoaded >= 100) {
_root.gotoAndStop (2);
}
}
_root.onEnterFrame = function() {
_root.lineStyle(5, 0xff00ff, 100, true, "none", "round", "miter", 1);
_root.lineTo(_xmouse, _ymouse);
}
После того как он отрабатывает, проигрывание не останавливается на втором кадре, а зацикливается и очень быстро мелькают первый и второй кадры. В чём косяк не могу понять. Флеш ковыряю только второй день =).
_root.onEnterFrame = function() {
_root.lineStyle(5, 0xff00ff, 100, true, "none", "round", "miter", 1);
_root.lineTo(_xmouse, _ymouse);
}
— этот код какое отношение к прелоадеру имеет?
Лишних слушателей ообще быть не должно, поэтому попробуйте написать так:
preloader.onEnterFrame = function() {
totalFileSize = _root.getBytesTotal();
bytesLoaded = _root.getBytesLoaded();
percentLoaded = Math.floor(100*bytesLoaded/totalFileSize);
preloader.txtfield.text = percentLoaded + "%";
if (percentLoaded >= 100) {
_root.gotoAndStop (2);
delete this.onEnterFrame;
}
}
Лишний слушатель - это чтоб посмотреть что в принципе случится если его добавить, потому что потом он может понадобиться.
ваш совет попробовал, не помогло. Я пробовал и removeMovieClip() в разных вариантах, и даже this.enabled = false.
Всё так же глухо пока.
Вообще, у вас с кодом, который вы выложили, все нормально, значит косяк где-то в другом месте. Выложите исходник.
ну попробуйте еще во втором кадре "stop()" написать... )
А ты попробуй так:
preloader.onEnterFrame = function() {
totalFileSize = _root.getBytesTotal();
bytesLoaded = _root.getBytesLoaded();
percentLoaded = Math.floor(100*bytesLoaded/totalFileSize);
preloader.txtfield.text = percentLoaded + "%";
if (percentLoaded >= 100) {
delete this.onEnterFrame;
_root.gotoAndStop(2);
}
}
Сперва удали "onEnterFrame", а потом переходи на второй кадр
Всем огромное спасибо. Помогли разобраться.
Сделал вот так.
stop();
preloader.onEnterFrame = function() {
totalFileSize = _root.getBytesTotal();
bytesLoaded = _root.getBytesLoaded();
percentLoaded = Math.round(100*bytesLoaded/totalFileSize);
preloader.txtfield.text = percentLoaded + "%";
if (percentLoaded >= 100) {
_root.gotoAndStop(2);
}
}
Ну и ещё один вопрос в тему.
Я, руководствуясь хорошим стилем, завёл отдельный слой actions. Нужно ли, в соответствии с этим же стилем, писать весь код в одном кадре, или создавать на шкале несколько ключевых кадров, и раскидывать по ним?
В твоем случае должно быть как минимум два кадра. Ты же сам написал _root.gotoAndStop(2);
В первом кадре - код загрузчика, а во втором - весь остальной код
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.