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

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

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

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
По умолчанию Диспетчеризация событий или кнопки в кнопке.

Час добрый.

есть задача, сделать кнопку в которой будет выезжать ещё несколько.

т.е. получается, на стейдже есть кнопка при наведении на которую
на ней появляется ещё несколько и надо узнать на какую кликнул юзер. Не могу сообразить как это сделать.

Код AS3:
 
// Вот пример :
 
// Интерфейс который наследуют все объекты MyButton
interfsce IMyButton
{
    function MOUSE_DOWN ( e : MouseEvent = null ) : void ;
}
 
// Основной класс
var globalButton : MyButton = new MyButton ( ) ;
addChild ( globalButton ) ;
 
function addButton ( ) : void {
    globalButton.addChild ( new MyButton ( ) ) ;
}
 
stage.addEventListener ( MouseEvent.MOUSE_DOWN, onClickButton ) ;
 
function onClickButton ( e : MouseEvent ) : void
{
    if ( e.target as IMyButton ) IMyButton ( e.target ).MOUSE_DOWN ( e ) ;
}
 
// Избавиться от интерфейса накладно весь проект рубить.
// Есть возможность с иерархией диспетчеризацией,
// но как гуглу задать желаемый вопрос не соображу.
Заранее благодарен.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь!

Старый 07.12.2011, 15:53
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 2  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Может и не надо узнавать? Просто сделать ссылку на неё и юзать:

Код AS3:
        var but:IMyButton = IMyButton ( e.target );

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

Регистрация: Oct 2011
Адрес: Питер
Сообщений: 58
Цитата:
надо узнать на какую кликнул юзер
Найдите в документации event.target и event.currentTarget.

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

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
Цитата:
Сообщение от smithy Посмотреть сообщение
Найдите в документации event.target и event.currentTarget.
Суть в том что сами кнопки не знают о том кто они, их определяет сонтроллер по интерфейсам которые они наследуют! И тут выходит что при определении таргета в контроллере срабатывает слушатель и далее не обрабатывается таргет! Мне же нужно что бы при определении "таргет == кнопка" он продолжал слушать, типа а в этой кнопке нет ещё кнопки? Вот как сделать это я не знаю!

При использовании currentTarget, трейсит всё время // object stage

Добавлено через 2 минуты
Цитата:
Сообщение от fish_r Посмотреть сообщение
Может и не надо узнавать? Просто сделать ссылку на неё и юзать:

Код AS3:
        var but:IMyButton = IMyButton ( e.target );
хм, а как мне узнать является ли e.target IMyButton ? ведь в ином случае он будить пытаться применить такой же метод ко всем объектам на стейдже.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь!

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Код AS3:
if(e.target is IMyButton)
{
}
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

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

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


 


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


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