mx MenuBar没有显示菜单项之一。直到几分钟前,它的工作情况都还不错。我没有更改任何代码。当我单击它时,我注意到它显示了阴影。
<mx:MenuBar id="mainMenuBar"
dataProvider="{rootMenu}"
labelField="label"
height="100%"
useHandCursor="true"
buttonMode="true"
showRoot="false"
menuShow="menuItemEventHandler(event)"
menuHide="menuItemEventHandler(event)"
itemClick="menuItemEventHandler(event)"
itemRollOut="menuItemEventHandler(event)"
itemRollOver="menuItemEventHandler(event)"
change="menuItemEventHandler(event)"
>
</mx:MenuBar>
/**
*
* */
private function menuItemEventHandler(event:MenuEvent):void {
if (event.item is MenuItem) {
EventDispatcher(event.item).dispatchEvent(event);
}
else if (event.menu && event.menu.dataProvider &&
event.menu.dataProvider[0] is MenuItem &&
event.menu.dataProvider[0].parent is MenuItem)
{
EventDispatcher(event.menu.dataProvider[0].parent).dispatchEvent(event);
}
}
<model:MenuItem id="rootMenu">
<model:MenuItem label="Edit" >
<model:MenuItem id="undo" label="Undo" />
<model:MenuItem id="redo" label="Redo" />
<model:MenuItem type="separator"/>
<model:MenuItem id="cut" label="Cut" enabled="false"/>
<model:MenuItem id="copy" label="Copy" enabled="false"/>
<model:MenuItem id="paste" label="Paste" name="paste" enabled="false"/>
<model:MenuItem id="undo1" label="Undo" />
<model:MenuItem id="redo1" label="Redo" />
<model:MenuItem type="separator"/>
<model:MenuItem id="cut1" label="Cut" enabled="false"/>
<model:MenuItem id="copy1" label="Copy" enabled="false"/>
<model:MenuItem id="paste1" label="Paste" name="paste" enabled="false"/>
<model:MenuItem id="undo2" label="Undo" />
<model:MenuItem id="redo2" label="Redo" />
<model:MenuItem type="separator"/>
<model:MenuItem id="cut2" label="Cut" enabled="false"/>
<model:MenuItem id="copy2" label="Copy" enabled="false"/>
<model:MenuItem id="paste2" label="Paste" name="paste" enabled="false"/>
<model:MenuItem id="undo3" label="Undo" />
<model:MenuItem id="redo3" label="Redo" />
<model:MenuItem type="separator"/>
<model:MenuItem id="cut3" label="Cut" enabled="false"/>
<model:MenuItem id="copy3" label="Copy" enabled="false"/>
<model:MenuItem id="paste3" label="Paste" name="paste" enabled="false"/>
</model:MenuItem>
问题在于菜单的高度高于应用程序的高度。因此它正在显示,但不在屏幕上。我猜想逻辑是,如果菜单弹出的任何部分不在屏幕上,则菜单栏必须位于应用程序的底部,因此弹出菜单应显示在菜单栏上方,而不是在菜单栏下方。
解决方法是使屏幕更高(我看到了Firebug,所以它不是典型的高度)。我可以检查弹出窗口的高度,并将其与应用程序的高度进行比较,然后手动将弹出垂直位置设置为正确的位置。到目前为止,我还没有尝试解决它,因为用户可能永远不会在这么短的高度上使用该应用程序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句