Просмотр полной версии : gotoAndPlay() не переходит в некоторые кадры
nameveiof
15.01.2012, 22:35
gotoAndPlay(номер); по непонятной причине не переходит в некоторые кадры
при том что это единственный скрипт в ролике, а на других объектах и кадрах скриптов нет
но если удалить некоторые объекты, например папку "tov" с содержащимися слоями
тогда команда работает нормально
------------
приведу пример:
в ролике 445 кадров
gotoAndPlay(); с указанием любого кадра до 184, переходит на указанный кадр
если указать любой кадр больше 184 gotoAndPlay перекиывает только на 184
но как только я удалю папку "tov" с подслоями gotoAndPlay(); переходит на любой кадр до 445 нормально, как и должно быть
может кто-нибудь объяснить в чём причина такого странного поведения?
я чего-то не понял или это баг?
----------------------
файл в приложении
параметры файла
as2
flash10
сохранено в Flash cs5
Да, это какой-то баг. Видимо ролик неким чудесным образом не успевает загрузиться полностью в первом кадре, весьма странно, хотя скорее всего это флеш его косячно компилирует, или эти новые твины - глюченые.
Пара способов обойти проблему:
Переходить на 385 кадр не в 1, а в 2 кадре.
Или сделать так, чтобы банер начинался во втором кадре, а первый - оставить пустым.
crazyone
16.01.2012, 02:06
Банально - не успевает загрузиться. Такие переходы действительно лучше делать со второго кадра.
Если интересно - сделайте trace(_framesloaded); и увидите, что у вас всего 180 с чем-то кадров успевает подгрузиться. А если грузиться будет через медленный интернет - то вобще может только несколько кадров загрузить.
crazyone
Да, но всё дело в том, что это происходит не на сервере, а при тестовом просмотре, а также при запуске отдельного swf на компьютере.
nameveiof, сделайте так:
setTimeout(gplay, 100, 383);
function gplay(num:Number)
{
gotoAndPlay(num);
trace(_currentframe); //проверяем, куда попали
}
383 - требуемый кадр
100 - задержка в миллисекундах
Но вообще лучше использовать прелоадер, предзагрузчик.
crazyone
16.01.2012, 14:02
crazyone
Да, но всё дело в том, что это происходит не на сервере, а при тестовом просмотре, а также при запуске отдельного swf на компьютере.
Процесс обработки кадров от этого никак не изменяется. Как был асинхронным, так и остался. Как только загрузился первый кадр, его код сразу выполняется, не дожидаясь загрузки и инициализации всего остального.
crazyone
Первый раз такое вижу. Значит, будем делать прелоадеры и для настольных приложений :quiet:
crazyone
16.01.2012, 16:26
Я не говорил, что нужны прелоадеры для десктопных приложений.
Но если инициализация твоих приложений происходит в первом кадре, а ресурсы при этом разбросаны по таймлайну и не грузятся в первый кадр, то перед их использованием прийдется проверить их доступность.
nameveiof
16.01.2012, 17:27
Спасибо. странный нюанс.
странно что в локальной среде требуется какое либо время на загрузку
получается какая то непроизвольная имитация скачивания.
перемотку делал для удобства редактирования баннера чтобы не ждать лишний раз
тут прелоадер был бы лишним телодвижением для такой мелочи
просто перенос команды более поздние кадры 5 9 15 решают проблему
при 30 кадрах/c удобно
Я, например, всегда оставляю первый кадр для предлоадера, в том числе и для десктопных приложений. Часто грузится много графики извне, по готовности - переход в рабочий кадр.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.