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

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

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

Регистрация: Nov 2005
Адрес: 26°58′49.06″ 49°24′35.72″ Ymaps
Сообщений: 119
Отправить сообщение для ZGG с помощью ICQ Отправить сообщение для ZGG с помощью Skype™
Attention Проблема с массивом

На основной сцене есть 41 кадр и 2 слоя. Один слой создан специально для скрипта (actions), а второй – для объектов (objects). В первом кадре (кадр прелоадера) на слоях actions и objects стоят ключевые кадры. Начиная со 2 кадра на слое objects и до 41 стоят 40 отдельных кадров, в каждом из которых находятся объекты MovieClip с разными названиями (Instance Name). В этих кадрах есть MovieClip`ы с точно такими же названиями, как и в других кадрах этого слоя. Если я Вас запутал, то объясняю попроще:
Слой objects:
2 кадр – объекты: m100_b, m33_v4, m3, m5, m12
3 кадр – объекты: m5, m11, m6, m765, m3, m40, m4_v5
4 кадр – объекты: m40, m4, m5_v4, m56, m57, m09, m3, m100_b
5 кадр – объекты: m3, m11, m25_v4, m40
И так далее до 41 кадра …
Все объекты – MovieClip.
А на слое actions, с 2 до 41 кадра стоит один большой frame (кадр), в котором и написан основной скрипт флешки. В нем я создаю массив всех вышеперечисленных объектов myarray. Используя for, каждому объекту из массива назначено обработчик события onPress.

И вот по сути в чем проблема: После завершения загрузки прелоадером, идет переход на второй кадр. На этом кадре, обработчик событий на всех объектах работает. А при переходе на 3 кадр (или другие кадры), работают обработчики только тех клипов, названия которых совпадают с названиями клипов во 2 кадре.

Пробовал тестировать с Debug Movie. Результат: элементы массива (объекты с обработчиком события onPress), которые находятся в текущем кадре и не работают – undefined.

Помогите исправить эту проблему.
Заранее спасибо!

Старый 11.02.2006, 17:54
MOHCTEP вне форума Посмотреть профиль Отправить личное сообщение для MOHCTEP Найти все сообщения от MOHCTEP
  № 2  
Ответить с цитированием
MOHCTEP

Регистрация: Dec 2002
Адрес: Живу вот где-то
Сообщений: 493
Цитата:
Сообщение от ZGG
Используя for, каждому объекту из массива назначено обработчик события onPress.
После завершения загрузки прелоадером, идет переход на второй кадр. На этом кадре, обработчик событий на всех объектах работает. А при переходе на 3 кадр (или другие кадры), работают обработчики только тех клипов, названия которых совпадают с названиями клипов во 2 кадре.
События циклом пришились "видимым" в момент выполнения цикла, объектам. Раз цикл у тебя во 2 кадре, так он и увидел то, что "инициализировалось" в этом кадре. Про объекты, расположенные дальше по таймлайну, твой скрипт просто еще "не знает".
Варианты решения проблемы:
1. Расположить все клипы во 2 кадре, в нужных кадрах их "включать-выключать".
2. Перед инициализацией цикла сделать "холостой" прогон таймлайна.

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

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

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


 


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


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