我观察到了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……
发布于 2011-11-14 08:43:07
答: Flex4.5 / Flex4中包含的新主题很糟糕。(不是开玩笑。)
新的Halo/Spark主题导致了这个问题。当我恢复到Flex3 one时,它工作得很好。
https://stackoverflow.com/questions/8050673
复制相似问题