【发布时间】:2026-01-07 03:20:09
【问题描述】:
我在 flex 中有一个简单的弹出菜单,一个 mx 菜单,我使用 Menu.initMenu 创建依赖于定义为数据提供者的 XML 列表的菜单。
菜单有复选框项,每次我在包含菜单实例的类中调用 load(values:Array) 函数时,我都想检查相关项。
如何动态加载值并更改菜单的选择?
【问题讨论】:
标签: apache-flex actionscript menu
我在 flex 中有一个简单的弹出菜单,一个 mx 菜单,我使用 Menu.initMenu 创建依赖于定义为数据提供者的 XML 列表的菜单。
菜单有复选框项,每次我在包含菜单实例的类中调用 load(values:Array) 函数时,我都想检查相关项。
如何动态加载值并更改菜单的选择?
【问题讨论】:
标签: apache-flex actionscript menu
好的,明白了:
设置菜单,并给每个菜单项一个标签属性:
private var subMenuDataMain:XMLList = new XMLList(
"<menuitem label='Title' icon='' enabled='false'/>" +
"<menuitem label='' type='separator'/>" +
"<menuitem label='SHOW_DEMO' type='check' eventName='SHOW_DEMO' />" +
"<menuitem label='' type='separator'/>");
创建一个辅助函数来打开给定标签的菜单项(如果它是一个 2 级菜单项,还提供 subMenuID,它是第二个项目的标签名称):
function toggleMenuItem(menuID:String, subMenuID:String, toggle:Boolean):void
{
if (subMenuID != "")
subMenuDataSets.(@label == menuID).menuitem.(@label == subMenuID).@toggled = toggle;
else
subMenuDataSets.(@label == menuID).@toggled = toggle;
}
实现一个初始化菜单值的函数:
public function setMenuOptions(obj:SampleObject):void {
toggleMenuItem("SHOW_DEMO", "", (obj.demoISShown());
}
【讨论】: