2012-02-17 56 views
0

У меня есть меню, которое является спрайтом, и я добавляю кнопку, чтобы иметь возможность свести к минимуму меню. Я использую SimpleButton(), и я добавил кнопку в качестве дочернего элемента меню, так что menu.addChild(button) Проблема, с которой я сталкиваюсь, заключается в том, что когда я нажимаю и нажимаю кнопку, ни одно из событий не срабатывает. В меню спрайта есть собственное событие мыши, и кнопка должна быть помещена относительно меню, поэтому имеет смысл быть дочерним элементом меню. Как заставить кнопку работать?AS3 - SimpleButton внутри спрайта

Заранее благодарен!

Редактировать
Вот мой код:

protected const rectangle:Sprite = new Sprite(); 
private const minimizeBtn:SimpleButton = new SimpleButton(new ButtonDisplayState(MINIMIZE_BTN_BG_COLOR, 15, 15), new ButtonDisplayState(0xFF0000, 15, 15), new ButtonDisplayState(0x00FF00, 15, 15), new ButtonDisplayState(0x0FF000, 15, 15)); 
rectangle.addEventListener(MouseEvent.MOUSE_OVER, rectMouseOver); 
addChild(rectangle); 
rectangle.addChild(minimizeBtn); 
+0

Какие события не уволили: те из меню или кнопки? клик, mouseOver или оба? – sch

+0

Кнопка. Click и mouseOver оба не стреляют. –

+0

Можете ли вы разместить код, в котором вы добавляете слушателей? –

ответ

1

Родитель спрайт (меню) может быть поедая события мыши. Попробуйте установить mouseChildren = true на этот объект.

+0

mouseChildren is true по умолчанию, я не думаю, что он изменил это. – sch

+0

правильный. Я не изменил это –

+0

Если я заставляю кнопку быть дочерним элементом сцены, а не меню, а затем использовать абсолютные координаты, чтобы поместить кнопку в том же месте, в котором она работает. Должен быть способ заставить его работать как ребенок из спрайта меню, хотя? –

0

Прежде всего, почему, черт возьми, вы определяете свою кнопку как const? Определите его как неконстантную переменную, которая просто глупа, если у вас нет ДЕЙСТВИТЕЛЬНО хорошей причины для этого. Во-вторых, добавьте слушателей событий прямо в файл minimBtn, а не в контейнер прямоугольника (родительский объект).

Также имейте в виду, что хотя в документации указано, что четыре состояния кнопки являются необязательными в конструкторе, они действительно не являются необязательными. Класс очень специфичен в отношении параметров конструктора, которые вызовут нарушение класса и не будут корректно работать во время выполнения (без ошибок компиляции или времени выполнения, так как Flash является чемпионом этого).

Итак, хотя вы предоставляете все четыре аргумента конструктора, это может быть чем-то, что нужно возиться, если мои предыдущие предложения терпят неудачу. См. Следующую ссылку для большего количества NFO о конструкторе.

http://selfdocumentingcode.blogspot.com/2009/04/flash-simplebutton-and-mouseover-and.html

Смежные вопросы