Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Можно ли подгрузить swf с определенного кадра? (http://www.flasher.ru/forum/showthread.php?t=155719)

rkorkin 09.05.2011 00:42

Можно ли подгрузить swf с определенного кадра?
 
Можно ли подгрузить swf с определенного кадра?
например,
Код AS1/AS2:

on(release)
{
loadMovie("name.swf",0);
и тут добавить gotoAndPlay("kadr_nomer");
}

Нужно подгрузить ролик с определенного момента.

mooncar 09.05.2011 00:50

Нет, нельзя.

Грузить можно только всё.
Если вам нужно загрузить стороннюю swf, и что-то с нею сделать, то без использования MovieClipLoader обойтись невозможно (если проект в инете).
У MCL есть событие onLoadInit. Вот когда оно произойдет, тогда и действуем!
Решение:

Код AS1/AS2:

var cont:MovieClip = this.createEmptyMovieClip('cont_mc', 0)
var mcl:MovieClipLoader = new MovieClipLoader();
var lst:Object = new Object();
lst.onLoadInit = lstOnLoadInit;
mcl.addListener(lst);
 
btn.onRelease = function  ()
{
        mcl.loadClip('test.swf', cont);
};
 
 
function lstOnLoadInit(tgt:MovieClip)
{
        tgt.gotoAndPlay(50);
}

Разумеется, писать на объектах нельзя (поверьте на слово), а loadMovie нельзя использовать в проектах, которые хостятся в инете, потому что нельзя понять, когда переходить к нужному кадру, то есть готовность загруженного.
Грузить лучше не на уровень, а в отдельный контейнер.

rkorkin 09.05.2011 01:00

если проект не в инете, то данный способ подойдет?
Если не писать на объектах, то как обозначить, что при нажатии на кнопку "name" должно произойти все вышеперечисленное?

p.s.
я так понимаю mcl, lst это мы придумываем названия переменных и они могут быть любыми?!
tgt это что?

mooncar 09.05.2011 01:06

Цитата:

Сообщение от rkorkin (Сообщение 994979)
если проект не в инете, то данный способ подойдет?

Тоже очень плохо.
Цитата:

Сообщение от rkorkin (Сообщение 994979)
Если не писать на объектах, то как обозначить, что при нажатии на кнопку "name" должно произойти все вышеперечисленное?

Называем кнопку на сцене btn (Instance Name). Не в библиотеке! На сцене. Смотрим пример обработчика onRelease выше.
Да. Весь код - пишется в кадре.

Цитата:

Сообщение от rkorkin (Сообщение 994979)
я так понимаю mcl, lst это мы придумываем названия переменных и они могут быть любыми?!
tgt это что?

mcl - это имя экземпляра MovieClipLoader
lst - имя слушателя события загрузки
cont - ссылка на cont_mc, то есть созданный пустой контейнер для загрузки
tgt - это аргумент функции обработчика события загрузки onLoadInit, внутри этой функции всегда ссылается на контейнер, куда грузили, то есть на cont или cont_mc, что одно и то же.
В принципе, в данном примере можно написать и
Код AS1/AS2:

cont.gotoAndPlay(50);

и
Код AS1/AS2:

cont_mc.gotoAndPlay(50);

Действие будет одно и то же. Но использовать внутренний аргумент и ссылки удобнее в дальнейшем.

Имена м.б. любыми, но нельзя использовать служебные слова и цифры в начале, иметь в начале прописные буквы не рек-ся, так классы называют.

rkorkin 09.05.2011 01:16

Спасибо! буду пробовать


Часовой пояс GMT +4, время: 02:44.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.