【发布时间】:2009-09-10 23:48:43
【问题描述】:
所以我有一个 PopupButton,当我单击该按钮时,我希望弹出的菜单具有圆角。我该怎么做呢?
更新: 我发现了一个类似于我想做的更新,可以在以下页面找到:
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 函数不会被触发,并且常规菜单正在显示而没有圆角。
对此的任何帮助表示赞赏。
谢谢
【问题讨论】:
标签: apache-flex flex3