I'm trying to create a dynamic item in a context menu, and I'm having
a weird problem. The code:
var node:XML = XML(lastTreeItem.itemRenderer.data);
var hideOrShow:ContextMenuItem;
if ([EMAIL PROTECTED] == null || [EMAIL PROTECTED] == "" || [EMAIL PROTECTED]
== "false")
hideOrShow = new ContextMenuItem("Hide");
else
hideOrShow = new ContextMenuItem("Show");
hideOrShow.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,
hideOrShowSelected);
treeMenu.customItems.push(hideOrShow);
Debug.show(treeMenu);
The item does not show in the menu. However, if I code it explicitly:
var hideOrShow:ContextMenuItem = new ContextMenuItem("Hide");
hideOrShow.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,
hideOrShowSelected);
treeMenu.customItems.push(hideOrShow);
it works.
It actually does seem to be there, according to Debug's output:
(flash.ui::ContextMenu)#0
builtInItems = (flash.ui::ContextMenuBuiltInItems)#1
forwardAndBack = false
loop = false
play = false
print = false
quality = false
rewind = false
save = false
zoom = false
customItems = (Array)#2
[0] (flash.ui::ContextMenuItem)#3
caption = "Show"
enabled = true
separatorBefore = false
visible = true
SDK bug? Or am I missing something? I found some other examples of
dynamic context menus by Googing, but I don't see any differences
between their code and mine.
thanks,
Greg