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

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

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

Регистрация: Sep 2010
Сообщений: 6
Question Как получить массив из eventListener?

Всем привет!

Вопрос следующий:


Есть функция-
Код AS3:
function initButtons(arr:Array):void {
 
	for(var i:int = 0; i<arr.length; i++){
		arr[i].id = i;
		arr[i].buttonMode = true;
		arr[i].addEventListener(MouseEvent.MOUSE_OVER, playOver);
		arr[i].addEventListener(MouseEvent.MOUSE_OUT, playOut);
		arr[i].addEventListener(MouseEvent.CLICK, doClick);		
	}//for
-как мне передать arr[i] в playOver из этой функции когда происходит событие?

-как получить целый массив при наведении курсора мыши на какой-либо объект этого массива? Например: если у меня в массиве кнопки, то когда я навожу курсор на любую из кнопок я получаю весь массив целиком?



Последний раз редактировалось iNils; 02.09.2010 в 03:41.
Старый 02.09.2010, 06:34
AirDecade вне форума Посмотреть профиль Отправить личное сообщение для AirDecade Найти все сообщения от AirDecade
  № 2  
Ответить с цитированием
AirDecade

Регистрация: Jun 2010
Сообщений: 15
Вариант 1:
Добавить в данный класс переменную под Array и в этой функции просто присваивать ей arr, переданный в параметре. Из функций-обработчиков обращаться к этой переменной.
Вариант 2:
В объект, который в массиве, добавить переменную, в которую записывать этот массив и обращаться к нему через event.target

Старый 02.09.2010, 06:54
angry_beaver вне форума Посмотреть профиль Отправить личное сообщение для angry_beaver Найти все сообщения от angry_beaver
  № 3  
Ответить с цитированием
angry_beaver

Регистрация: Sep 2010
Сообщений: 6
Цитата:
Сообщение от AirDecade Посмотреть сообщение
Вариант 1:
Добавить в данный класс переменную под Array и в этой функции просто присваивать ей arr, переданный в параметре. Из функций-обработчиков обращаться к этой переменной.
Вариант 2:
В объект, который в массиве, добавить переменную, в которую записывать этот массив и обращаться к нему через event.target

Я не совсем понял. Дай пример простенький пожалуйста!

Старый 02.09.2010, 07:30
AirDecade вне форума Посмотреть профиль Отправить личное сообщение для AirDecade Найти все сообщения от AirDecade
  № 4  
Ответить с цитированием
AirDecade

Регистрация: Jun 2010
Сообщений: 15
Код AS3:
public class SomeClass {
 
		private var buttons:Array;
 
		........
 
		function initButtons(arr:Array):void {
 
			buttons=arr;
			for(var i:int = 0; i<arr.length; i++){
				arr[i].id = i;
				arr[i].buttonMode = true;
				arr[i].addEventListener(MouseEvent.MOUSE_OVER, playOver);
				arr[i].addEventListener(MouseEvent.MOUSE_OUT, playOut);
				arr[i].addEventListener(MouseEvent.CLICK, doClick);		
			}
		}
		function playOver(e:MouseEvent):void {
 
			for(var i:int = 0; i<buttons.length; i++){
				//Что-то делаем		
			}
		}
}
Второй вариант - если в arr находятся свои какие-то объекты, то добавить им свойство buttons и в том цикле добавить строчку
Код AS3:
arr[i].buttons = arr;

Старый 02.09.2010, 12:10
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 5  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
когда я навожу курсор на любую из кнопок я получаю весь массив целиком?
В event.currentTarget вы получите ссылку на кнопку (по-сути ваш arr[i])

Старый 02.09.2010, 12:20
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 6  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Опять вопрос из серии "как передать парамер в слушатель" - ищите по форуму. Регулярно всплывает. Интересно, будет ли толк, если статью написать...
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
@angry_beaver
Цитата:
как получить целый массив при наведении курсора мыши на какой-либо объект этого массива? Например: если у меня в массиве кнопки, то когда я навожу курсор на любую из кнопок я получаю весь массив целиком?
Для этого можно передать ссылку на массив в каждый элемент массива
__________________
...вселенская грусть

Старый 02.09.2010, 12:25
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 8  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
Для этого можно передать ссылку на массив в каждый элемент массива
для этого достаточно прописать этот массив в приватном свойстве класса и обращаться к нему. Зачем плодить ссылки?

Старый 02.09.2010, 12:36
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 9  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
Зачем плодить ссылки?
Вероятно, массивов может быть несколько
__________________
...вселенская грусть

Старый 02.09.2010, 16:41
iillyyaa вне форума Посмотреть профиль Отправить личное сообщение для iillyyaa Найти все сообщения от iillyyaa
  № 10  
Ответить с цитированием
iillyyaa

Регистрация: Apr 2010
Сообщений: 147
AirDecade, про приведённый код, я мало понимаю пока в флеше, но, помоему это бред.

будет у нас массив из 1000 элементов, и мы будет все 1000 перебирать при нажатии на каком то из них ? а если массивов несколько ? и как в этом коде найти нужный элемент массива ?


-De- больше чем уверен, что толк будет, я лично чуть в теории понимаю, какие то ссылки на этот объект (массив) передаются при клике, но пока не понимаю как к ним обратиться и т.д.

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

Теги
array , EventListener , массив , получить , слушатель

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

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


 


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


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