我观察到flex的<mx:menubar>
组件有异常行为,我从Adobe文档中的示例中创建了一个;并且在点击或鼠标悬停在调试Flash播放器内的任何菜单项时收到错误。
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" preloader="pre.CLoader"
xmlns:s="library://ns.adobe.com/flex/spark" width="720"
xmlns:mx="library://ns.adobe.com/flex/mx" height="540">
<fx:Script source="main.as"/>
<mx:MenuBar id="topMenu" labelField="@label" width="100%">
<fx:XMLList>
<menuitem label="Kommunicate">
<menuitem label="Connect"/>
<menuitem type="separator"/>
<menuitem label="Login" enabled="false"/>
<menuitem label="Register" enabled="false"/>
</menuitem>
// ...
</fx:XMLList>
</mx:MenuBar>
</s:Application>
单击“Kommunicate”时出现错误消息:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at mx.controls::Menu/updateDisplayList()[E:\dev\4.5.1\frameworks\projects\mx\src\mx\controls\Menu.as:1393]
at mx.controls.listClasses::ListBase/validateDisplayList()[E:\dev\4.5.1\frameworks\projects\mx\src\mx\controls\listClasses\ListBase.as:3963]
at mx.managers::LayoutManager/validateDisplayList()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\managers\LayoutManager.as:736]
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\managers\LayoutManager.as:819]
at mx.managers::LayoutManager/validateNow()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\managers\LayoutManager.as:878]
at mx.controls::Menu/show()[E:\dev\4.5.1\frameworks\projects\mx\src\mx\controls\Menu.as:1706]
at mx.controls::MenuBar/showMenu()[E:\dev\4.5.1\frameworks\projects\mx\src\mx\controls\MenuBar.as:1832]
at mx.controls::MenuBar/mouseDownHandler()[E:\dev\4.5.1\frameworks\projects\mx\src\mx\controls\MenuBar.as:2025]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\core\UIComponent.as:13128]
at mx.managers::SystemManager/mouseEventHandler()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\managers\SystemManager.as:2924]
Adobe无法创建可用的框架吗?在尝试开发和使用flex的应用程序时,这不是我第一次发现自己的代码有异常的错误。之前它使用的是Graphite CSS中的一个主题,其中textareas的硬编码最大宽度和高度为20px ......
答案 0 :(得分:0)
答案:Flex4.5 / Flex4中包含的新主题很糟糕。 (甚至不开玩笑。)
新的Halo / Spark主题导致了这个问题。当我恢复到Flex3时,它工作正常。