Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 21.02.2008, 17:12
deep_freeze вне форума Посмотреть профиль Отправить личное сообщение для deep_freeze Найти все сообщения от deep_freeze
  № 1  
Ответить с цитированием
deep_freeze
 
Аватар для deep_freeze

Регистрация: Nov 2006
Адрес: *.kh.ua
Сообщений: 19
По умолчанию Доступ к MovieClip'ам, вложенным в Button

Вопрос заключается вот в чём.

1. Допустим, у нас имеется MovieClip. Мы присваиваем его экземпляру имя mc.

2. В него мы из библиотеки может добавить экземпляр какого-то другого мувиклипа, присвоив ему InstanceName = "l1" (по номеру уровня).

3. В этот l1 можно добавить экземпляр третьего мувиклипа из библиотеки, присвоив этому экземпляру имя "l2".

4. В l3 помещается ещё один экземпляр и называется l3.

Таким образом, для того, чтобы заставить ролик l3 проигрываться с метки под названием "play_l3", нужен следующий код:

Код:
_level0.mc.l1.l2.l3.gotoAndPlay("play_l3");
Это работает для всех мувиклипов, но что касается кнопок (символов типа Button), здесь ситуация немного другая.

1. Создаём кнопку. Называем её "btn". В кадр "Up" добавляем экземпляр мувиклипа из библиотеки, называем его l1.
2. В l1 добавляем ещё один экземпляр, называем его l2.
3. В l2 добавляем ещё один экземпляр, называем его l3.

Значит для того, чтобы запустить анимацию с метки "play_l3" нужен соответственно код

Код:
_level0.btn.l1.l2.l3.gotoAndPlay("play_l3");
Но данный код не работает, трассировка показывает, что _level0.btn.l1.l2.l3 не определён, а путь до l3 выглядит следующим образом:

Код:
_level0.btn.l1.instance2.l3
Вопрос заключается в том, почему Флеш использоват для l2 автоматическое именование (сгенерированное название "instance2"), и не воспользовался заданным вручную значением "l2"? В мувиклипах такой проблемы нет, а вот при большой вложенности мувиклипов в кнопках она встречается постоянно.

Можно, конечно, в дебаггере посмотреть автоматически просвоенное название экземпляра и обращаться к l3 следующим образом:

Код:
_level0.btn.l1.instance2.l3.gotoAndPlay("play_l3");
Но, кроме того, что такой подход очень неудобен для восприятия, он вносит существенную проблему, которая заключается в том, что при добавлении в ролик экземпляров мувиклипов без названия (которым Флеш автоматически просвоит имена), instance2 может уже оказаться, скажем, instancе5 и далее в том же духе...

Что это такое с именованием экземпляров в кнопках и как с этим можно бороться?

Создать новую тему   Часовой пояс GMT +4, время: 02:38.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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