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

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

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

Регистрация: Jan 2007
Сообщений: 302
Question Подскажыте с MouseEvent.CLICK и выбором обьекта

Есть у меня 3 кнопки, задум таков, чтоб при клике на каждую в другой клас отсылались значения 1,2,3.
когда нажалась кнопка 1 значение передается 1 и так д...

Че т немогу придумать..
делаю вот так..

Код AS3:
			var btn1:Buttons = new Buttons("Movie1fgh f f fg hgfhfg hgfh ");
				btn1.x = 15;
				btn1.y = 50;
			btn1.addEventListener(MouseEvent.CLICK, click);
 
			var btn2:Buttons = new Buttons("Movie2");
				btn2.x = 15;
				btn2.y = 150;
				//btn2.addEventListener(MouseEvent.MOUSE_DOWN, click);
 
			var btn3:Buttons = new Buttons("Movie3");
				btn3.x = 15;
				btn3.y = 250;
				//btn2.addEventListener(MouseEvent.MOUSE_DOWN, click);
 
 
//вот.. как то так... чтоб в n запригывало 1 если нажата 1 кнопка, 2 вторая, 3 третья.
 
 
 private function click(event:MouseEvent,n:int):void { 
 
		 	var v1:VideoLoader = new VideoLoader(n);
    	  }
Спасибо.

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

Регистрация: Aug 2008
Адрес: 53 E
Сообщений: 60
приемники для событий принимают один аргумент no more them one, которым является тип данных событийного объекта, никаких n туда не засунешь.
Кто мешает вам из приемника для события click обратится к объекту Buttons (e.carrentTarget) и извлечь из него свойство n?
Вы ведь в метод-конструктор класса Buttons передаете строковой аргумент, который, наверняка в конструкторе присваивается открытому свойству экземпляра этого класса.
__________________
04.08 1516 23:42

Старый 09.12.2009, 00:11
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 3  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
1. В обработчик события передаётся только событие, никаких дополнительных параметров туда совать не надо, забудьте об этом.
2. У событие есть свойство target, оно содержит ссылку на объект, по которому юзер кликнул. Смотрите, какая это из нужных кнопок, и решайте что делать дальше.
__________________
тонкий тролль, осеянный благодатью

Старый 09.12.2009, 00:39
Killer_13 вне форума Посмотреть профиль Отправить личное сообщение для Killer_13 Найти все сообщения от Killer_13
  № 4  
Ответить с цитированием
Killer_13
 
Аватар для Killer_13

Регистрация: Jan 2007
Сообщений: 302
Спасибо, - покопал в даном направлении - разобрался, вот решение.

Код AS3:
private function click(event:MouseEvent):void { 
 
			switch (event.currentTarget){
 
				case btn1:
				var v1:VideoLoader = new VideoLoader(1);
				break;
 
				case btn2:
				var v2:VideoLoader = new VideoLoader(2);
				break;
 
				case btn3:
				var v3:VideoLoader = new VideoLoader(3);
				break;
 
			}
    	  }

Старый 09.12.2009, 02:29
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 5  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Лучше проверять target вместо currentTarget.
currentTarget указывает на объект, который поймал событие, target - на объект, который его послал.
Т.е. если бы вы повесили слушателя не а каждую кнопку, а на контейнер, в котором все кнопки находятся (а так обычно и делается, когда нужно отловить клик по одному из большого количества однородных объектов), currentTarget показал бы контейнер а не нажатую кнопку.
__________________
тонкий тролль, осеянный благодатью

Старый 09.12.2009, 02:36
bicubic_bublic вне форума Посмотреть профиль Найти все сообщения от bicubic_bublic
  № 6  
Ответить с цитированием
bicubic_bublic
Banned

Регистрация: Sep 2009
Сообщений: 231
Цитата:
Сообщение от GAIKER Посмотреть сообщение
Лучше проверять target вместо currentTarget.
currentTarget указывает на объект, который поймал событие, target - на объект, который его послал.
Т.е. если бы вы повесили слушателя не а каждую кнопку, а на контейнер, в котором все кнопки находятся (а так обычно и делается, когда нужно отловить клик по одному из большого количества однородных объектов), currentTarget показал бы контейнер а не нажатую кнопку.
target тоже может ошибиться.. если у вас "составные" кнопки, то таргетом может оказаться одна из частей, а не сама кнопка..

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

Регистрация: Jan 2007
Сообщений: 302
GAIKER
bicubic_bublic

спасибо за полезную информацию, сейчас исправлю

Старый 09.12.2009, 07:08
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 8  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Цитата:
target тоже может ошибиться.. если у вас "составные" кнопки, то таргетом может оказаться одна из частей, а не сама кнопка..
Лечится при помощи mouseChildren = false
__________________
тонкий тролль, осеянный благодатью

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

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

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


 


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


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