AS3 - SimpleButton внутри спрайта
У меня есть меню, которое является спрайтом, и я добавляю кнопку, чтобы иметь возможность свернуть меню. Я использую SimpleButton()
и я добавил кнопку, как ребенок в меню, так menu.addChild(button)
Проблема, с которой я столкнулся, заключается в том, что, когда я наведу курсор мыши и нажму кнопку, ни одно из событий не запускается Спрайт меню имеет свою собственную кнопку мыши над событием, и кнопка должна располагаться относительно меню, чтобы иметь смысл быть дочерним элементом меню. Как я могу заставить кнопку все еще работать?
Заранее спасибо!
редактировать
Вот мой код:
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);
2 ответа
Родительский спрайт (меню) может есть события мыши. Попробуйте установить mouseChildren = true для этого объекта.
Прежде всего, какого черта вы определяете свою кнопку как const? Определите это как неконстантную переменную, которая просто глупа, если у вас нет ДЕЙСТВИТЕЛЬНО веской причины для этого. Во-вторых, добавьте слушателей событий DIRECTLY в minimalBtn, а не в контейнер прямоугольника (родительский объект).
Также имейте в виду, что, хотя в документации говорится, что четыре состояния кнопки являются необязательными в конструкторе, они на самом деле вовсе не являются необязательными. Класс очень специфичен в отношении параметров конструктора, которые приведут к его поломке и неправильной работе во время выполнения (конечно, без ошибок компиляции или времени выполнения, так как flash - победитель этого).
Так что, хотя вы предоставляете здесь все четыре аргумента конструктора, может быть, с чем-то повозится, если мои предыдущие предложения не пройдут. Смотрите следующую ссылку для получения дополнительной информации о конструкторе.
http://selfdocumentingcode.blogspot.com/2009/04/flash-simplebutton-and-mouseover-and.html