|
|
|||||
Не работает MouseEvent под маской
Перерыл все интернеты - проблема есть, решения не нашёл, подскажите пожалуйста.
Пытаюсь вызвать MouseEvent у спрайта, который находится под маской - ничего не стреляет, код прилагаю: 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; } Помогите, уже 2 часа над этим бьюсь. |
|
|||||
Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
|
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. был бы рад разобраться в Вашем коде и найти ошибку, но его читать сложно. Цитата:
Не используйте анонимные функции. по возможности избегайте использования with.
__________________
Могу ошибаться... =) |
|
|||||
Анонимную ф-ю заюзал только для отлова эвента.
Ошибку только что отловил - назвал мувик slider, а так нельзя было. Может кому пригодится. Для поисковиков: Не работает клик под маской. Не работает mouseevent с маской. Не кликает на маску. |
|
|||||
Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
|
Цитата:
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);//работает.
__________________
Могу ошибаться... =) |
|
|||||
попробуйте назвать так свойство класса.
у меня на сцене мувик так назывался. ошибок не выдавал, но и не работал. |
|
|||||
Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
|
Цитата:
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);//работает. } }
__________________
Могу ошибаться... =) |
|
|||||
пробовал и без, тоже не работало. часа два на пустяк этот потратил.
|
|
|||||
Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
|
Мда, интересно вышло. Непонятно что было, непонятно почему прошло. И такую тему Вы хотите чтоб поисковики находили?)
__________________
Могу ошибаться... =) |
|
|||||
у кого проблемы с маусэвентом под маской. в гугле находится пара тем без ответа и платные ответы по этому запросу. может кому пригодится.
|
|
|||||
Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
|
Что пригодится? Непонятное шаманство с именем клипа, которое 99% что помогает только Вам? Сомневаюсь. А гугл не находит никаких тем с проблемами "с маусэвентом под маской" потому что их нет. Вы же не можете привести пример нормального кода в котором эта проблема будет, а я привел пример показывающий что никакой проблемы нет. Конкретно Ваша проблема может быть например в том что Вы просто не заметили вывод трассировки(я утрирую конечно =) ).
__________________
Могу ошибаться... =) |
Часовой пояс GMT +4, время: 04:10. |
|
« Предыдущая тема | Следующая тема » |
Теги |
mask , MouseEvent |
|
|