PDA

Просмотр полной версии : Можно ли подгрузить swf с определенного кадра?


rkorkin
09.05.2011, 00:42
Можно ли подгрузить swf с определенного кадра?
например,
on(release)
{
loadMovie("name.swf",0);
и тут добавить gotoAndPlay("kadr_nomer");
}


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

mooncar
09.05.2011, 00:50
Нет, нельзя.

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

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
если проект не в инете, то данный способ подойдет?
Тоже очень плохо.
Если не писать на объектах, то как обозначить, что при нажатии на кнопку "name" должно произойти все вышеперечисленное?
Называем кнопку на сцене btn (Instance Name). Не в библиотеке! На сцене. Смотрим пример обработчика onRelease выше.
Да. Весь код - пишется в кадре.


я так понимаю mcl, lst это мы придумываем названия переменных и они могут быть любыми?!
tgt это что?
mcl - это имя экземпляра MovieClipLoader
lst - имя слушателя события загрузки
cont - ссылка на cont_mc, то есть созданный пустой контейнер для загрузки
tgt - это аргумент функции обработчика события загрузки onLoadInit, внутри этой функции всегда ссылается на контейнер, куда грузили, то есть на cont или cont_mc, что одно и то же.
В принципе, в данном примере можно написать и
cont.gotoAndPlay(50);
и
cont_mc.gotoAndPlay(50);
Действие будет одно и то же. Но использовать внутренний аргумент и ссылки удобнее в дальнейшем.

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

rkorkin
09.05.2011, 01:16
Спасибо! буду пробовать