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

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

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

Регистрация: Aug 2010
Сообщений: 91
По умолчанию Перехватить MouseEvent и послать далее

Ситуация такая: есть контейнеры на флешке. В них добавляются мувики (SimpleButton). Нужно чтобы при нажатии на мувик, мы переходили по ссылке. Но прикол в том, что мы не можем заставить слушать событие мувик, только контейнер. Но контейнер не регистрирует событие, т.к. его перехватывает мувик. А если мы отключим мувику мышь, то он перестанет изменяться при наведении мыши и клике. Как бы красиво выйти из ситуации?

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

Регистрация: Apr 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 355
SimpleButton - это стандартный класс кнопки а не мувика. Когда вы щелкаете по кнопке, то событие передается по всей цепочке от stage к вашей кнопке и потом обратно пузыриком к stage. Прервать передачу события можно в любом зарегестрированном слушателе с помощью event.stopPropagation() или event.stopPropagationImmediate(). Если вы этого не делаете, то ловите спокойно событие на любом из объектов списка отображения от кнопки до всех в которые она вложена.
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Ситуация такая: есть контейнеры на флешке. В них добавляются мувики (SimpleButton)
Это не мувики, я Вас уверяю. Мувиком там и не пахнет.

@SunShadow

Код AS3:
Event#stopImmediatePropagation?
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 30.08.2010 в 22:54.
Старый 30.08.2010, 23:50
Robotex вне форума Посмотреть профиль Отправить личное сообщение для Robotex Найти все сообщения от Robotex
  № 4  
Ответить с цитированием
Robotex

Регистрация: Aug 2010
Сообщений: 91
Это я так выразился. Это swf-ки, у которых на stage добавлена кнопка (причем работать должно и с обычными роликами, потому и "мувики"). А слушателя цепляю к MovieClip, в который добавляется ролик.
Если прописать mouseChildren = false, то ролики нажимаются, но не реагируют на наведение мышью, в противном случае реагируют, но не нажимаются. Как решить?

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Ситуация такая: есть контейнеры на флешке.
Цитата:
Это я так выразился. Это swf-ки, у которых на stage добавлена кнопка
Как-нибудь проще можно? Я не понял.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Apr 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 355
Выложи исходник, так дело быстрее пойдет.)

Цитата:
Сообщение от dimarik Посмотреть сообщение
Код AS3:
Event#stopImmediatePropagation?
Каюсь, подцепил какую то заразу, голова плохо соображала когда набирал.
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ

Старый 31.08.2010, 09:39
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 7  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Цитата:
Но прикол в том, что мы не можем заставить слушать событие мувик, только контейнер.
Мы можем заставить слушать любой IEventDispatcher. Любой DisplayObject тоже к нему относится.

А почему не подписать бы этот СимплоБутонМувик?

Старый 31.08.2010, 13:07
Robotex вне форума Посмотреть профиль Отправить личное сообщение для Robotex Найти все сообщения от Robotex
  № 8  
Ответить с цитированием
Robotex

Регистрация: Aug 2010
Сообщений: 91
Исходник показать, увы, не могу (политика компании - запрещено передавать код сторонним лицам - у нас в нем очень инновационные идеи)

Подписать нельзя, потому что добавляется он в другом классе, в который лезть крайне нежелательно. К тому же в контейнере может быть не только кнопка, но и мувиклип или даже битмап.

Старый 31.08.2010, 13:41
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 9  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Цитата:
Сообщение от Robotex Посмотреть сообщение
политика компании - запрещено передавать код сторонним лицам - у нас в нем очень инновационные идеи
Инновационнее некуда (особенно SimpleButton). Потом и на работу брать некого из-за «инноваций».

Старый 31.08.2010, 19:09
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 10  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Извините, если я сейчас Вас оскорблю, но в
Цитата:
Ситуация такая: есть контейнеры на флешке. В них добавляются мувики (SimpleButton). Нужно чтобы при нажатии на мувик, мы переходили по ссылке.
не пахнет новизной. У вас может быть игра с совершенно невероятным геймплеем или что-то в этом роде, но из кода по переходе по ссылке что-то понять о проекте в целом просто невозможно, поэтому это попахивает маразмом. Я Вас не осуждаю, но что есть.)

Но в целом революция есть.
Код AS3:
[Embed(source = '../lib/1-1.png')] private var pic:Class;
        public function Main():void 
        {
			var spr:Sprite = new Sprite();
 
			(spr.addChild(new MovieClip()) as DisplayObjectContainer).addChild(new pic() as Bitmap); //строчка ужас, просто писать лень =)
 
			spr.addEventListener(MouseEvent.CLICK, onClick);
 
			super.addChild(spr);
        }
 
		private function onClick(event:MouseEvent):void 
		{
			trace("белочка");
		}
У меня выводит "белочка". А у Вас?

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

Теги
MouseEvent
Опции темы
Опции просмотра

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

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


 


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


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