2011-08-15 45 views
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] 

任何人有这样的想法?

回答

0
myMenu = Menu.createMenu(SOME_DISPLAYOBJECT_HERE, myMenuDataProvider, false); 
myMenu.labelField="@label" 
myMenu.setStyle("fontSize","10"); 
myMenu.show(); 

你真的应该尝试读取文档,调试代码,甚至看SDK代码发布提问之前。

+0

我确实通过了文档,但是您知道我的代码在FLEX 3中创建菜单时没有指定displayObject,但它没有在Flex 4中出现,并且文档没有在任何地方说出区别所在。 但是,感谢您的纠正,它像一个魅力。 – FlexyBoz

+0

该文档说明参数是非可选的(即非空)。我不确定为什么它在Flex 3中不起作用,但如果不应该的话。 –