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

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

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

Регистрация: Sep 2004
Сообщений: 42
Отправить сообщение для a1. с помощью ICQ
По умолчанию Не работает MouseEvent под маской

Перерыл все интернеты - проблема есть, решения не нашёл, подскажите пожалуйста.
Пытаюсь вызвать MouseEvent у спрайта, который находится под маской - ничего не стреляет, код прилагаю:
Код AS3:
			with (sliderMask) {
				graphics.beginFill(0x00ccff);
				graphics.drawRect(0, 0, sliderWidth, 20);
				y = -10;
				graphics.endFill();
				mouseEnabled = false;
			}
			var bg:Sprite = new Sprite();
			with (bg) {
				graphics.beginFill(0x000000, 0);
				graphics.drawRect(0, 0, sliderWidth, 20);
				graphics.endFill();
			}
			with (loadedSlider) {
				addChild(bg);
				bg.y = -10;
				graphics.beginFill(0x00ccff, .5);
				graphics.drawRect(0, 0, sliderWidth, sliderHeight);
				graphics.endFill();
				buttonMode = true;
				mouseChildren = false;
				x = -width;
				addEventListener(MouseEvent.ROLL_OVER, function (e:MouseEvent) { trace('it works'); } );
			}
			with (slider) {
				addChild(sliderMask);
				addChild(loadedSlider);
				mask = sliderMask;
			}
buttonMode не работает, MouseEvent не выстреливает
Помогите, уже 2 часа над этим бьюсь.

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

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
Код AS3:
			var sprite:Sprite = new Sprite();
			var maskSprite:Sprite = new Sprite();
			addChild(sprite);
			//addChild(maskSprite);
			sprite.graphics.beginFill(0x333333, 1);
			sprite.graphics.drawEllipse(0, 100, 100, 150);
			sprite.graphics.endFill();
			maskSprite.graphics.beginFill(0x003300, 0.5);
			maskSprite.graphics.drawEllipse(50, 50, 50, 200);
			maskSprite.graphics.endFill();
			sprite.mask = maskSprite;
			sprite.addEventListener(MouseEvent.CLICK, trace);//работает.
У меня работает. Что я делаю не так?

Добавлено через 3 минуты
P.S. был бы рад разобраться в Вашем коде и найти ошибку, но его читать сложно.
Цитата:
0x00ccff
надо писать 0x00CCFF
Код AS3:
function (e:MouseEvent) { trace('it works'); }
Не используйте анонимные функции.
Код AS3:
with (sliderMask) {
по возможности избегайте использования with.
__________________
Могу ошибаться... =)

Старый 29.04.2010, 13:21
a1. вне форума Посмотреть профиль Отправить личное сообщение для a1. Посетить домашнюю страницу a1. Найти все сообщения от a1.
  № 3  
Ответить с цитированием
a1.

Регистрация: Sep 2004
Сообщений: 42
Отправить сообщение для a1. с помощью ICQ
Анонимную ф-ю заюзал только для отлова эвента.
Ошибку только что отловил - назвал мувик slider, а так нельзя было.
Может кому пригодится.

Для поисковиков:
Не работает клик под маской.
Не работает mouseevent с маской.
Не кликает на маску.

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

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
Цитата:
назвал мувик slider, а так нельзя было.
Почему? А у меня можно.
Код AS3:
			var slider:MovieClip = new MovieClip();
			var sprite:Sprite = new Sprite();
			var maskSprite:Sprite = new Sprite();
			slider.addChild(sprite);
			addChild(slider);
			//addChild(maskSprite);
			sprite.graphics.beginFill(0x333333, 1);
			sprite.graphics.drawEllipse(0, 100, 100, 150);
			sprite.graphics.endFill();
			maskSprite.graphics.beginFill(0x003300, 0.5);
			maskSprite.graphics.drawEllipse(50, 50, 50, 200);
			maskSprite.graphics.endFill();
			sprite.mask = maskSprite;
			sprite.addEventListener(MouseEvent.CLICK, trace);//работает.
__________________
Могу ошибаться... =)

Старый 29.04.2010, 13:29
a1. вне форума Посмотреть профиль Отправить личное сообщение для a1. Посетить домашнюю страницу a1. Найти все сообщения от a1.
  № 5  
Ответить с цитированием
a1.

Регистрация: Sep 2004
Сообщений: 42
Отправить сообщение для a1. с помощью ICQ
попробуйте назвать так свойство класса.
у меня на сцене мувик так назывался. ошибок не выдавал, но и не работал.

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

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
Цитата:
Сообщение от a1. Посмотреть сообщение
попробуйте назвать так свойство класса.
у меня на сцене мувик так назывался. ошибок не выдавал, но и не работал.
Код AS3:
	public class Main extends Sprite {
		private var slider:MovieClip = new MovieClip();
		public function Main() 
		{ 
			super();
			var sprite:Sprite = new Sprite();
			var maskSprite:Sprite = new Sprite();
			slider.addChild(sprite);
			addChild(slider);
			//addChild(maskSprite);
			sprite.graphics.beginFill(0x333333, 1);
			sprite.graphics.drawEllipse(0, 100, 100, 150);
			sprite.graphics.endFill();
			maskSprite.graphics.beginFill(0x003300, 0.5);
			maskSprite.graphics.drawEllipse(50, 50, 50, 200);
			maskSprite.graphics.endFill();
			sprite.mask = maskSprite;
			sprite.addEventListener(MouseEvent.CLICK, trace);//работает. 
		}
	}
Может быть проблема в with?
__________________
Могу ошибаться... =)

Старый 29.04.2010, 13:39
a1. вне форума Посмотреть профиль Отправить личное сообщение для a1. Посетить домашнюю страницу a1. Найти все сообщения от a1.
  № 7  
Ответить с цитированием
a1.

Регистрация: Sep 2004
Сообщений: 42
Отправить сообщение для a1. с помощью ICQ
пробовал и без, тоже не работало. часа два на пустяк этот потратил.

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

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
Мда, интересно вышло. Непонятно что было, непонятно почему прошло. И такую тему Вы хотите чтоб поисковики находили?)
__________________
Могу ошибаться... =)

Старый 29.04.2010, 13:48
a1. вне форума Посмотреть профиль Отправить личное сообщение для a1. Посетить домашнюю страницу a1. Найти все сообщения от a1.
  № 9  
Ответить с цитированием
a1.

Регистрация: Sep 2004
Сообщений: 42
Отправить сообщение для a1. с помощью ICQ
у кого проблемы с маусэвентом под маской. в гугле находится пара тем без ответа и платные ответы по этому запросу. может кому пригодится.

Старый 29.04.2010, 13:53
mickfallout вне форума Посмотреть профиль Отправить личное сообщение для mickfallout Найти все сообщения от mickfallout
  № 10  
Ответить с цитированием
mickfallout
 
Аватар для mickfallout

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
Что пригодится? Непонятное шаманство с именем клипа, которое 99% что помогает только Вам? Сомневаюсь. А гугл не находит никаких тем с проблемами "с маусэвентом под маской" потому что их нет. Вы же не можете привести пример нормального кода в котором эта проблема будет, а я привел пример показывающий что никакой проблемы нет. Конкретно Ваша проблема может быть например в том что Вы просто не заметили вывод трассировки(я утрирую конечно =) ).
__________________
Могу ошибаться... =)

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

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

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

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


 


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


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