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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.08.2006, 17:54
Zmet вне форума Посмотреть профиль Отправить личное сообщение для Zmet Найти все сообщения от Zmet
  № 1  
Ответить с цитированием
Zmet
[+ 1,3 21,8,06]

Регистрация: Aug 2006
Сообщений: 40
Отправить сообщение для Zmet с помощью ICQ Отправить сообщение для Zmet с помощью Skype™
По умолчанию Массив ссылок на объекты

Уже перелопатила несколько учебников и никак не могу понять, есть ли в АС возможность создать массив ссылок на объекты, например принадлежащие одному мувику? или массив кнопок (как в С++)?

Если нет, то как решается подобная проблема: есть достаточно большое количество однотипных объектов (например, кнопок), которые одинаково реагируют на одно и то же событие (например, движение мыши). Действия при наступлении события описываются в отдельной функции, а вот реакцию на это событие приходится описывать отдельно для каждого объекта. А если их сто?!

Пробовала делать через листенера, но ведь он не может определить, какой конкретно объект из списка вызвал событие. Или может? Если может, то как получить на него ссылку.

Заранее спасибо.

Старый 16.08.2006, 18:01
CCCPirate вне форума Посмотреть профиль Отправить личное сообщение для CCCPirate Найти все сообщения от CCCPirate
  № 2  
Ответить с цитированием
CCCPirate
 
Аватар для CCCPirate

Регистрация: Jun 2006
Сообщений: 1,061
создай свой класс

Старый 16.08.2006, 18:06
Zmet вне форума Посмотреть профиль Отправить личное сообщение для Zmet Найти все сообщения от Zmet
  № 3  
Ответить с цитированием
Zmet
[+ 1,3 21,8,06]

Регистрация: Aug 2006
Сообщений: 40
Отправить сообщение для Zmet с помощью ICQ Отправить сообщение для Zmet с помощью Skype™
Цитата:
Сообщение от CCCPirate
создай свой класс
А попроще никак? Т.е. массивов не бывает?

Старый 16.08.2006, 18:12
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Zmet, используй EventDispatcher, там есть возможность определения объекта, отославшего событие.

Старый 16.08.2006, 18:23
Zmet вне форума Посмотреть профиль Отправить личное сообщение для Zmet Найти все сообщения от Zmet
  № 5  
Ответить с цитированием
Zmet
[+ 1,3 21,8,06]

Регистрация: Aug 2006
Сообщений: 40
Отправить сообщение для Zmet с помощью ICQ Отправить сообщение для Zmet с помощью Skype™
Цитата:
Сообщение от __etc
Zmet, используй EventDispatcher, там есть возможность определения объекта, отославшего событие.
Спасибо. Пока не знаю, правда, что это такое. Пойду в справке поковыряюсь

Старый 16.08.2006, 18:29
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Класс mx.events.EventDispatcher
http://livedocs.macromedia.com/flash.../00003473.html

Старый 16.08.2006, 18:34
CCCPirate вне форума Посмотреть профиль Отправить личное сообщение для CCCPirate Найти все сообщения от CCCPirate
  № 7  
Ответить с цитированием
CCCPirate
 
Аватар для CCCPirate

Регистрация: Jun 2006
Сообщений: 1,061
объект может передавать свое _name, так же можно просмотреть все объекты внутри клипа: (for var name in clip) { trace (name) ...}

я не совсем понял в чем собственно задача? (что неообходимо реализовать?)

Старый 16.08.2006, 18:34
Zmet вне форума Посмотреть профиль Отправить личное сообщение для Zmet Найти все сообщения от Zmet
  № 8  
Ответить с цитированием
Zmet
[+ 1,3 21,8,06]

Регистрация: Aug 2006
Сообщений: 40
Отправить сообщение для Zmet с помощью ICQ Отправить сообщение для Zmet с помощью Skype™
Мерси

Старый 16.08.2006, 18:52
Zmet вне форума Посмотреть профиль Отправить личное сообщение для Zmet Найти все сообщения от Zmet
  № 9  
Ответить с цитированием
Zmet
[+ 1,3 21,8,06]

Регистрация: Aug 2006
Сообщений: 40
Отправить сообщение для Zmet с помощью ICQ Отправить сообщение для Zmet с помощью Skype™
Цитата:
Сообщение от CCCPirate
объект может передавать свое _name, так же можно просмотреть все объекты внутри клипа: (for var name in clip) { trace (name) ...}

я не совсем понял в чем собственно задача? (что неообходимо реализовать?)
Задача описана вначале, кажется довольно понятно
Есть сто разных картинок. При нажатии на любую картинку ее прозрачность становится равной 50. Как описать эти действия для всех картинок сразу.

Есть:
Код:
pict1.onSobytie=function(){
pict1._alpha=50;
}; //и так сто раз, для каждой картинки
Хочу:
Код:
pict[i].onSobytie=function(){
pict[i]._alpha=50;
};
//событие наступает только для одного объекта, но описывается сразу для всех


Последний раз редактировалось iNils; 21.08.2006 в 13:19.
Старый 16.08.2006, 18:55
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Код:
import mx.events.EventDispatcher;
EventDispatcher.initialize(container_mc);
for (var i in container_mc) {
     var mc = MovieClip(container_mc[i]);
     if (mc!=null) {
         mc.onAnyEvent = function(event) {
              this._alpha = 50;
              trace(['Event receiver: '+this,'Event sender: '+event.target]);
         }
         container_mc.addEventListener("onAnyEvent",mc); // если используется EventDispatcher
     }
}
container_mc.dispatchEvent({type:'onAnyEvent'});
Пример.


Последний раз редактировалось etc; 16.08.2006 в 19:00.
Создать новую тему Ответ Часовой пояс GMT +4, время: 07:21.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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