0
我已经创建了一个菜单,但是当它在菜单上单击以显示时,由于行“myMenu.show(null,null)”,我得到一个错误。请参见下面的功能:Flex 4菜单错误
private function createAndShowmyMenu():void {
myMenu = Menu.createMenu(null, myMenuDataProvider, false);
myMenu.labelField="@label"
myMenu.setStyle("fontSize","10");
//Event Listeners Here
myMenu.show(null,null);
}
的错误是这样:
TypeError: Error #1007: Instantiation attempted on a non-constructor.
at mx.controls.menuClasses::MenuItemRenderer/commitProperties()[E:\dev\4.x\frameworks\projects\framework\src\mx\controls\menuClasses\MenuItemRenderer.as:469]
at mx.core::UIComponent/validateProperties()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:7933]
at mx.managers::LayoutManager/validateClient()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:863]
at mx.controls::List/http://www.adobe.com/2006/flex/mx/internal::setupRendererFromData()[E:\dev\4.x\frameworks\projects\framework\src\mx\controls\List.as:1706]
at mx.controls::Menu/measureWidthOfItems()[E:\dev\4.x\frameworks\projects\framework\src\mx\controls\Menu.as:1322]
at mx.controls::List/commitProperties()[E:\dev\4.x\frameworks\projects\framework\src\mx\controls\List.as:906]
at mx.controls::Menu/commitProperties()[E:\dev\4.x\frameworks\projects\framework\src\mx\controls\Menu.as:1244]
at mx.core::UIComponent/validateProperties()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:7933]
at mx.managers::LayoutManager/validateClient()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:863]
at mx.managers::PopUpManagerImpl/addPopUp()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\PopUpManagerImpl.as:384]
at mx.managers::PopUpManager$/addPopUp()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\PopUpManager.as:193]
at mx.controls::Menu/show()[E:\dev\4.x\frameworks\projects\framework\src\mx\controls\Menu.as:1648]
任何人有这样的想法?
我确实通过了文档,但是您知道我的代码在FLEX 3中创建菜单时没有指定displayObject,但它没有在Flex 4中出现,并且文档没有在任何地方说出区别所在。 但是,感谢您的纠正,它像一个魅力。 – FlexyBoz
该文档说明参数是非可选的(即非空)。我不确定为什么它在Flex 3中不起作用,但如果不应该的话。 –