Итак, у меня есть PopupButton, и когда я нажимаю на кнопку, я хочу, чтобы всплывающее меню имело закругленные углы. Как бы я поступил так?
UPDATE:
Я нашел обновление, похожее на то, что я хочу сделать, его можно найти на следующей странице:
http://blog.flexmonkeypatches.com/2007/10/08/flex-rounded-menues-using-masking/comment-page-1/
Единственное отличие состоит в том, что я показываю меню с помощью кнопки PopUpButton. Пока это то, что у меня есть для моего пользовательского меню:
package {
import flash.display.Sprite;
import mx.controls.Menu;
import mx.events.MenuEvent;
public class MyMenu extends Menu {
public function MyMenu() {
super();
addEventListener("menuShow", onMenuShow);
}
private function onMenuShow(e:MenuEvent):void {
callLater(maskRoundedCorners,[e]);
}
private function maskRoundedCorners(e:MenuEvent):void {
var menu:Menu = e.menu as Menu;
menu.cacheAsBitmap=false;
if (!menu.mask){
var maskx:uint = menu.x;
var masky:uint = menu.y;
var maskw:uint = menu.getExplicitOrMeasuredWidth();
var maskh:uint = menu.getExplicitOrMeasuredHeight();
var rad:int = menu.getStyle("cornerRadius") * 2;
var roundRect:Sprite = new Sprite();
roundRect.graphics.beginFill(0xFFFFFF);
roundRect.graphics.drawRoundRect(maskx,masky,maskw,maskh,rad);
roundRect.graphics.endFill();
menu.mask = roundRect;
}
}
}
}
Может ли кто-нибудь помочь мне с тем, чего мне не хватает ... Я не уверен, нужно ли мне переопределять какие-либо функции классов Меню.
Когда я загружаю свой пример:
addEventListener ("menuShow", onMenuShow);
загорается, но когда я нажимаю PopUpButton, чтобы показать меню, функция onMenuShow не запускается, а обычное меню отображается без закругленных углов.
Любая помощь по этому вопросу приветствуется.
Спасибо