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

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

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

Регистрация: Nov 2010
Сообщений: 5
По умолчанию MouseEvent с объектом из массива

Здравствуйте, столкнулся с такой проблемой. Необходимо сделать меню в виде 3D карусели с использованием движка Away3D. Для этого я создаю массив объектов и потом с помощью цикла их размещаю по кругу. Код цикла с добавлением объектов в упрощенном (дабы вы не копались в куче кода что не имеет отношения к делу) варианте таков:
Код AS3:
                private var i:Number = 0; //начальное значение счетчика объектов
		private var R:Number = 400; //радиус окружности
		private var tangle:Number; // угол расположения объекта
		private var itemsnumber:Number = 12; //количество объектов
 
 
		private var boxes:Array = new Array(); //создаем массив 
 
                        //функция цикла создания объектов
			function boxadd():void {
				for (i ; i < itemsnumber; i++){
					tangle = i*(2*Math.PI)/itemsnumber;
					boxes[i] = new Cube({y:R*Math.cos(tangle),x:R*Math.sin(tangle),ownCanvas:true]});
                                        scene.addChild(boxes[i]);	
				}
В аттаче - то что получается.
Для кубиков мне нужно сделать МаусЕвенты, как прописать функцию евента что-бы автоматически определялось какой объект сейчас активен (под курсором) и взаимодействие происходило только с данным объектом?
Вложения
Тип файла: zip my.zip (289.9 Кб, 40 просмотров)


Последний раз редактировалось BWAne; 06.11.2010 в 21:30.
Старый 06.11.2010, 22:59
t4arty вне форума Посмотреть профиль Отправить личное сообщение для t4arty Найти все сообщения от t4arty
  № 2  
Ответить с цитированием
t4arty

Регистрация: May 2010
Адрес: пространство в положении
Сообщений: 219
Код AS3:
object.addEventListener(MouseEvent.MOUSE_MOVE, blabla);
не ?

Старый 06.11.2010, 23:01
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 3  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
у авея свои обработчики...
__________________
мира и гармонии

Старый 07.11.2010, 12:34
BWAne вне форума Посмотреть профиль Отправить личное сообщение для BWAne Найти все сообщения от BWAne
  № 4  
Ответить с цитированием
BWAne

Регистрация: Nov 2010
Сообщений: 5
Это все понятно, маус евент пашет если его я назначаю например к boxes[1].
Как назначить маус евент сразу на массив и допустим при клике на любой кубик, этот самый кубик получал например GlowFilter. Только евент сам бы определял на какой именно элемент массива было кликнуто.

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

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Нельзя назначить слушатель на массив, можно на контейнер.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

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

Регистрация: Nov 2010
Сообщений: 5
контейнер в который я добавляю боксы - scene. Следовательно слушатель к нему надо добавлять.
Вот опять к этому и пришли, как в евенте прописать таргет что-бы он автоматически определялся ? Например при наведении на на курсора на бокс подсвечивался именно этот бокс, при наведении на второй - подсвечивался опять же только тот на котором курсор. Не добавлять же к каждому боксу [1] ... [n], отдельный слушатель событий, наверно это же можно сделать в пару строк.

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Наверное нужно слушать эвенты на контейнере scene и работать с боксом как event.target.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 07.11.2010, 14:30
BWAne вне форума Посмотреть профиль Отправить личное сообщение для BWAne Найти все сообщения от BWAne
  № 8  
Ответить с цитированием
BWAne

Регистрация: Nov 2010
Сообщений: 5
угу вот только как их... или его евент таргетом сделать.
Есть где-нибудь примеры с использованием event.target и curentTarget ?

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

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
http://help.adobe.com/ru_RU/AS3LCR/F...l-classes.html
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

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

Регистрация: Nov 2010
Сообщений: 5
Спасибо нашел решение
Код AS3:
function OnMouseOver (e:MouseEvent3D):void {
					if (e.object is Mesh) {
						var mesh:Mesh = e.object as Mesh;
}
}

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

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

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


 


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


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