PDA

Просмотр полной версии : swf-ка глючит после обновления страницы


Огнеметчик
25.06.2006, 17:31
Сделал небольшой swf-ролик со встроенным прелоадером (на первом кадре прелоадер, на втором экшн-скрипт), сделал хтмл-страницу, которая загружает этот ролик. Сама свф-ка весит пару килобайт, но она подгружает внешнюю эмпэтришку, которая весит почти мегабайт.

Если зайти на эту страницу в первый раз, то прелоадер нармально показывает ход загрузки, а по завершении без проблем переходит на второй кадр и выполняет экшн-скрипт с него. Но! Если в браузере нажать кнопку "обновить" или "F5", то ни прелоадер, ни код со второго кадра не срабатывают, на экране отображается просто фон, который задан фоном флэшки. Если кликнуть правой кнопкой мыши по области где должна быть флэшка, то появляется стандартное флэшкино контекстное меню, никаких надписей типа "муви нот лоадед" нет.

Где могла собака порыться?

etc
25.06.2006, 17:34
Плохо написан прелоадер. Показывай код.

Огнеметчик
25.06.2006, 17:43
Плохо написан прелоадер. Показывай код.

Первый кадр:

var sound: Sound = new Sound(this);
sound.loadSound("music.mp3", false);
var isSoundLoad: Boolean;

sound.onLoad = function(r: Boolean)
{
isSoundLoad = r;
preloader._x = 2000;
clearInterval(time);
_root.gotoAndStop(2);
}

function preload()
{
if(sound.getBytesTotal() > sound.getBytesLoaded())preloader.text = Math.round(sound.getBytesLoaded() / sound.getBytesTotal() * 100) + "%";
}

var time: Number = setInterval(preload, 500);
_root.stop();


preloader - это название текстового поля, в котором отображается процент загрузки.

Во втором кадре нет ничего того, что касается прелоада.

etc
25.06.2006, 17:47
Используй onEnterFrame, вместо интервала

Огнеметчик
25.06.2006, 17:57
Используй onEnterFrame, вместо интервала
Хммм... Сейчас попробую, только есть одно сомнение.

У меня на втором кадре код, который должен быть выполнен только после полной загрузки музыки, по этой причине на первом кадре размещен прелоадер и _root.stop(), а после загрузки музыки выполняется _root.gotoAndStop(2). Если я буду использовать onEnterFrame не будет ли фэшка постоянно скакать от первого кадра ко второму?

Огнеметчик
25.06.2006, 22:02
Проблема решилась проверкой переменной, в которой хранится количество загруженных процентов, на isNaN.