|
В этом уроке объясняется, как программно работать с их экземплярами и переменными в нутрии них.
Что, если нужно одним экземпляром управлять из другого. Для этого во флэш можно каждому экземпляру дать свое имя, а в последствии выполнять над ним команды, указывая его имя.
Подробней:
Создайте внутренний ролик (Movie clip) с анимацией движения и поместите в рабочую область два его экземпляра. Кликните дважды на любом из экземпляров, для редактирования символа и поместите в последний кадр код:
Stop ();
Как уже говорилось, изменения произойдут во всех экземплярах. Просмотрите ролик (Ctrl+Enter)…
Оба экземпляра проиграли и остановились. Сделаем так, чтобы останавливались не все, а только один. Для этого зададим экземпляру, который вы хотите, чтобы остановился имя (в меню Properties в поле Instance name). Имя, может быть каким угодно (для примера введем имя “newname”).
Теперь в последнем кадре поправим код на:
_level0.newname.stop();
Просмотрите ролик (Ctrl+Enter)…
Теперь рассмотрим, что же мы сделали…
Мы написали сценарий, останавливающий воспроизведение экземпляра с именем “newneme” по завершении проигрывания анимации в символе…
Таким образом, мы можем, откуда угодно управлять каким угодно экземпляром…
Для большей понятности приведу еще пример…
Теперь внутри уже имеющегося символа поместите экземпляр другого и назовите его “newname2”…
Теперь в каждом экземпляре (как вы понимаете) появится по экземпляру новоиспеченного символа.
Т.е. путь к экземпляру “newname2” находящемуся в “newname”, будет выглядеть так:
_level0.newname.newname2
(такая система построения путей аналогична системе файлов и папок).
Экземплярам, которым вы не задали имени, оно задается программой автоматически… так вот имя экземпляра, которому вы не дали имя (я имею в виду экземпляр созданного первым по счету нами символа) будет назван instance1 и путь к находящемуся внутри него экземпляру “newname2” будет:
_level0.instance1.newname2
Увидеть список всех объектов вашего ролика, можно запустив просмотр и нажав Ctrl+L (показывает все объекты доступные в кадре, который отображался во время нажатия).
Надеюсь, поле этого объяснения осталось не больше одного вопроса, а именно, что такое _level0?
Во flash реализована многоуровневая структура. Уровней может быть сколько угодно, начиная с 0. На каждом уровне может находиться ролик являющийся отдельным файлом (т.е. каждый ролик может загружать в себя другие).
По сути, сначала указывается уровень, на котором находиться нужный экземпляр, а затем путь к нему. Если вы не уверены на коком уровне в последствии будет ролик используйте _root (указывает текущий уровень).
В нашем примере форма ” _root.newname.stop(); “ вполне будит действовать.
Если вы хотите использовать относительные пути, используйте _parent (аналогично оператору “ .. ” в путях к именам файлов).
Переменные внутри ролика
Все описанное прежде относится и к переменным.
Теперь в первом кадре основного ролика напишите:
a = 1;
В первом кадре экземпляра “newneme” напишите:
a = 2;
В первом кадре экземпляра “newneme2” напишите:
a = 3;
Теперь просмотрим все переменные ролика, при просмотре нажав Ctrl+Alt+V (показывает все переменные и их значения доступные в кадре, который отображался во время нажатия).
|