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

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

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

Регистрация: Apr 2010
Сообщений: 67
По умолчанию Передача события в родительский компонент

Добрый день,
Есть компонент состоящий из нескольких кнопок и текст-полей. Компонент используется в нескольких различных родительских компонентах, и, сейчас я вешаю в каждом родителе слушателей на кнопки этого компонента. Задача стоит такая, чтобы слушателей убрать внутрь компонента (и сократить их число таким образом), но транслировать события в родитель.
Идеально, чтобы было нечто подобное:
Код AS3:
 
<s:Component  leftBtnClick="function_1()" rightBtnClick="function_2()" />
Как такое сделать?

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Наиболее логичный вариант - это сделать свое событие для компонента, которое и транслировать по нажатию на кнопки, например ComponentEvent.FIRST_CLICK, ComponentEvent.SECOND_CLICK и т.д.

Старый 28.07.2010, 16:12
Ivanaka вне форума Посмотреть профиль Отправить личное сообщение для Ivanaka Посетить домашнюю страницу Ivanaka Найти все сообщения от Ivanaka
  № 3  
Ответить с цитированием
Ivanaka
 
Аватар для Ivanaka

Регистрация: Apr 2010
Сообщений: 67
После нескольких дней экспериментов удалось сделать то, что хотел. Может быть кому-нибудь пригодится:
Внутри компонента:
Код AS3:
[Bindable] public var prvClick:Function = new Function;//паблик функция будет свойством у компонента
...
prevBtn.addEventListener(MouseEvent.CLICK, prvClick);//вешаем слушателя
Идем на верхний уровень и в теге компонента добавляем:
Код AS3:
<components:dateStepper  prvClick="{prevClick}" />
...
//ну и где-то функция которая должна выполнится:
private function prevClick(e:MouseEvent):void {
				//делаем что-нибудь
			}
В результате, съэкономил на внешних слушателях и упаковал все внутрь компонента. Код - меньше, понятней, красивей

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Не знаю как в 4ом, в 3-ем была
в компоненте
Код AS3:
<mx:Metadata>
	[Event(name="prvClick", type="flash.events.MouseEvent")]
</mx:Metadata>
 
//дальше в коде
dispatchEvent(new Event("prvClick"));
Идем на верхний уровень и в теге компонента добавляем:
Код AS3:
<components:dateStepper  prvClick="prevClick(event)" />
В 4ом наверно есть тоже.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

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

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


 


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


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