Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Выгрузить swf, Срочно нужна ваша помошь
Flash Zone Forum > Macromedia Flash > ActionScript
KHVshNic
Здравствуйте, чтобы не начинать swf с начала а переходить на нужный кадр, я подгружаю его в пустой мувик и задаю командуперехода на 55 кадр. все работает, но есть небольшой ньанс.
Когда я таким путем перехожу из одного файла в другой ( в обоих реализован переход на 55 кадр) несколько раз, проект начинает натурально лагать. кнопки туго соображают, скролл с лекцией перестает прокручиваться плавно и начинает слайд шоу((
В чем может быть проблема? Наверно после перехода, предыдущий swf как то выгрузить надо? я получается в один контейнер ( и в первом и во втором файле, контейнер container_mc)
 загружаю много копий одних и тех же файлов?

p.s. капец, специально отрыл диспетчер задач, и после каждого перехода, смотрел вес процесса, действительно, с каждым разом, вдвое увеличивается((( Хелп! как решить?

Использую следующий скрипт

Цитата
this.createEmptyMovieClip('container_mc', 0);
container_mc._lockroot = true ;

var my_mcl:MovieClipLoader = new MovieClipLoader();
var my_lst:Object = new Object();
my_mcl.addListener(my_lst);
stop();

Создаю контейнер и лоадер.


_root.Knopaki.Next.onRelease = function()
{
container_mc.stop();
container_mc.unloadMovie();
my_mcl.loadClip('Lection2.swf', container_mc);
};
listener.onLoadInit = function(tgt:MovieClip)
{
tgt.gotoAndStop(55);
};



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

ничего не работает почему то.
 если я в одном файле создал контейнер, нормально перехожу во второй файл а от туда уже никак.
 кнопка не реагирует. в чем может быть проблема?
chingachgoog
А этот код только в одном файле (оболочке для подгружаемых)? Или нет?

Судя по описанию - похоже на то, что много container_mc создается каждый раз, хотя по коду это не так. Надо трейсить.
Или в подгружаемых клипах какая-нибудь хрень на интервалах.

Еще один момент - unloadMovie() срабатывает НЕ мгновенно, а при переходе на следующий кадр. В принципе ход верный - нужен именно анлоад, но можно попробовать (в качестве эксперимента) ремув и создание пустого контейнера с нуля (ремув, кстати, срабатывает СРАЗУ).
KHVshNic
Цитата(chingachgoog @ 18.05.2012 - 09:09) *
А этот код только в одном файле (оболочке для подгружаемых)? Или нет?

Судя по описанию - похоже на то, что много container_mc создается каждый раз, хотя по коду это не так. Надо трейсить.
Или в подгружаемых клипах какая-нибудь хрень на интервалах.

Еще один момент - unloadMovie() срабатывает НЕ мгновенно, а при переходе на следующий кадр. В принципе ход верный - нужен именно анлоад, но можно попробовать (в качестве эксперимента) ремув и создание пустого контейнера с нуля (ремув, кстати, срабатывает СРАЗУ).


Пробовал писать container_mc.removeMovieClip();
Все равно первый мувик остается активным, даже его кнопки действовать продолжают.
А разве нельзя, загрузить в контейнер мувик, лать команду перейти на нужный кадр, а потом выгрузить файл с контейнером ?
KHVshNic
Вот исходники
http://sendfile.su/595517

может по ним кто чего посоветует?
chingachgoog
Цитата(KHVshNic @ 18.05.2012 - 12:09) *
Пробовал писать container_mc.removeMovieClip();
Все равно первый мувик остается активным, даже его кнопки действовать продолжают.


container_mc должен быть на положительной глубине, чтобы removeMovieClip сработал, а он на уровне 0 сейчас лежит

Цитата(KHVshNic @ 18.05.2012 - 12:09) *
А разве нельзя, загрузить в контейнер мувик, лать команду перейти на нужный кадр, а потом выгрузить файл с контейнером ?


Конечно можно. Просто не ясно почему не работает. По идее должно.
KHVshNic

Тоесть, контейнер надо на 1 уровне создавать?
KHVshNic
Сделал немного иначе

Код AS1/AS2
Цитата
my_mcl.unloadClip();
var my_mcl:MovieClipLoader = new MovieClipLoader();
var my_lst:Object = new Object();
my_mcl.addListener(my_lst);
stop();

_root.Knopaki.PrewLection.onRelease = function()
{
my_mcl.loadClip('Lection1.swf',0);
};
my_lst.onLoadInit = function(tgt:MovieClip)
{
tgt.gotoAndStop(55);
};


Это лучшее чего я смог пока добится, вроде решилась моя проблема с забивкой плеера))
Но такой момент, когда грузится файл, на секунду где то, появляется первый кадр, а уж только потом перепрыгивает на 55.
 как можно от этого избавиться? чтоб мгновенно на 55?
MustLive
Цитата
Тоесть, контейнер надо на 1 уровне создавать?

Да, KHVshNic, нужно на 1 уровне. В случае использования removeMovieClip (а когда не нужно убирать мувиклип, тогда можно контейнер создавать и на 0 уровне).

Цитата
как можно от этого избавиться? чтоб мгновенно на 55?

Это инертность коннекта и/или компьютера. Будет скорость выше, то будет выглядеть, что мгновенно происходит переход на 55 кадр (задержки не будет).

Чтобы не было видно первого кадра можно использовать различные ухищрения. Например, можно сделать первый кадр пустым и поставить там stop(). И уже после запуска перехода на 55 в дочерней флешке будет показано её содержимое.
Русская версия IP.Board © 2001-2013 IPS, Inc.