![]() |
|
||||||||||
|
|||||
|
Имеется мувик template с двумя кнопками. На одну из кнопок должна указывать анимированная стрелка, которую я аддчайлдю в этот же template и делаю ей
При этом стрелка отчасти перекрывает вторую кнопку. Кнопка в месте перекрытия не прокликивается. Повесил слушатель на MouseEvent.CLICK на stage, оказалось, событие при клике по стрелке ловит сам template. Не могу понять, почему так происходит, ведь я вырубил mouseEnabled стрелки. Подскажите пожалуйста, как можно решить эту проблему. |
|
|||||
|
[+4 24.04.13]
[+4 20.04.13] Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
|
mouseEnabled означает что вы отключаете события мыши на этом обьекте, это не означает что обьект будет пропускать события сквозь себя
|
|
|||||
|
Rembrant, приведите, пожалуйста, побольше кода, а то трудно интерпретировать словесное описание.
|
|
|||||
|
[+4 24.04.13]
[+4 20.04.13] Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
|
ну логически так и должно работать, если тебе нужно чтобы стрелка не мешала и перекрывала одновременно, тогда можно сделать так:
1. создаем MovieClips с кнопками 2. создаем стрелку 3. создаем прозрачные кнопки 4. вешаем события на прозрачные кнопки, при событиях меняем\анимируем MovieClips в пункте 1 Добавлено через 2 минуты ну или убрать стрелку чтобы не перекрывала |
|
|||||
|
bav, вот с таким кодом красная стрелка не даёт кликать кнопку btn1
import flash.events.MouseEvent; template.btn0.buttonMode = template2.btn1.buttonMode = true; var arrow:Arrow = new Arrow(); arrow.x = -35; arrow.y = 131; arrow.mouseEnabled = arrow.mouseChildren = false; template.addChild(arrow); template2.btn1.addEventListener(MouseEvent.CLICK, onBtn1); function onBtn1(event:MouseEvent):void { trace("1"); } |
|
|||||
|
Добавьте строчку
Вот смоделированный пример: // Создаем объекты var template:Sprite = new Sprite(); var template2:Sprite = new Sprite(); var btn0:Sprite = new Sprite(); var btn1:Sprite = new Sprite(); var arrow:Sprite = new Sprite(); // Рисуем объекты var g:Graphics = template.graphics; g.lineStyle(1); g.beginFill(0xAAAAAA); g.drawRect(0, 0, 300, 300); g.endFill(); g = template2.graphics; g.lineStyle(1); g.beginFill(0x888888); g.drawRect(0, 0, 100, 200); g.endFill(); g = btn0.graphics; g.lineStyle(1); g.beginFill(0x00FF00); g.drawRect(0, 0, 50, 50); g.endFill(); g = btn1.graphics; g.lineStyle(1); g.beginFill(0xFF0000); g.drawRect(0, 0, 50, 50); g.endFill(); g = arrow.graphics; g.lineStyle(1); g.beginFill(0x00FFFF); g.drawCircle(0, 0, 25); g.endFill(); // Располагаем объекты template.x = 30; btn1.x = btn1.y = 10; btn0.x = btn0.y = 20; arrow.x = 10; arrow.y = 30; // Добавляем на сцену addChild(template2); addChild(template); template2.addChild(btn1); template.addChild(btn0); template.addChild(arrow); // Функции clk и clk0 выводят соответственно // "btn1 clicked" и "btn0 clicked" btn1.addEventListener(MouseEvent.CLICK, clk); btn0.addEventListener(MouseEvent.CLICK, clk0); arrow.mouseEnabled = false; template.mouseEnabled = false; |
|
|||||
|
Lorem ipsum
|
Вот это мы приехали.
__________________
Поймай яблоко 2! |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:59. |
|
|
« Предыдущая тема | Следующая тема » |
|
|