Try setting mouseEnabled and/or mouseChildren=false on the label and
other children.

________________________________

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of Marvin Froeder
Sent: Wednesday, December 05, 2007 10:55 AM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Menubar Render



Hi folks,

I had create a MenuBar (copy from LiveDoc's exemple) and set a custom
menuBarItemRenderer.

But when I tried to run I got a runtime error, every time I put the
cursor over the render.

Error:


        TypeError: Error #1034: Type Coercion failed: cannot convert
mx.core::[EMAIL PROTECTED] to
mx.controls.menuClasses.IMenuBarItemRenderer. 

              at
mx.controls::MenuBar/mouseOverHandler()[E:\dev\flex_201_borneo\sdk\frame
works\mx\controls\MenuBar.as:1670]


Menubar (MenuBarLiveDocsExample.mxml):

        <?xml version="1.0" encoding="utf-8"?>
        <!-- Simple example to demonstrate the MenuBar control. -->
        <mx:Application xmlns:mx=" http://www.adobe.com/2006/mxml
<http://www.adobe.com/2006/mxml> " creationComplete="initCollections();"
>
        
            <mx:Script>
                <![CDATA[
        
                    import mx.events.MenuEvent;
                    import mx.controls.Alert;
                    import mx.collections.*;
        
                    [Bindable]
                    public var menuBarCollection:XMLListCollection;
            
                    private var menubarXML:XMLList =
                        <>
                            <menuitem label="Menu1" data="top">
                                <menuitem label="MenuItem 1-A"
data="1A"/>
                                <menuitem label="MenuItem 1-B"
data="1B"/> 
                            </menuitem>
                            <menuitem label="Menu2" data="top">
                                <menuitem label="MenuItem 2-A"
type="check"  data="2A"/> 
                                <menuitem type="separator"/>
                                <menuitem label="MenuItem 2-B" >
                                    <menuitem label="SubMenuItem 3-A"
type="radio"
                                        groupName="one" data="3A"/> 
                                    <menuitem label="SubMenuItem 3-B"
type="radio" 
                                        groupName="one" data="3B"/>
                                </menuitem>
                            </menuitem> 
                        </>;
        
                    // Event handler to initialize the MenuBar control.
                    private function initCollections():void {
                        menuBarCollection = new
XMLListCollection(menubarXML); 
                    }
        
                    // Event handler for the MenuBar control's itemClick
event.
                    private function menuHandler(event:MenuEvent):void
{
                        // Don't open the Alert for a menu bar item that

                        // opens a popup submenu. 
                        if ([EMAIL PROTECTED] != "top") {
                            Alert.show("Label: " + [EMAIL PROTECTED] +
"\n" + 
                                "Data: " + [EMAIL PROTECTED], "Clicked
menu item");
                        }        
                    }
                 ]]>
            </mx:Script>
        
            <mx:Panel title="MenuBar Control Example" height="75%"
width="75%" 
                paddingTop="10" paddingLeft="10">
        
                <mx:Label width="100%" color="blue"
                   text="Select a menu item."/> 
        
                <mx:MenuBar labelField="@label"
itemClick="menuHandler(event);" 
                    dataProvider="{menuBarCollection}"
menuBarItemRenderer="MyCustomRender"/> 
                    
            </mx:Panel>
        </mx:Application>
        




Item Render (MyCustomRender.mxml) :

        <?xml version="1.0" encoding="utf-8"?>
        <mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml
<http://www.adobe.com/2006/mxml> "
            implements="mx.controls.menuClasses.IMenuBarItemRenderer "
            >
            
            <mx:Script>
                <![CDATA[
        
                    import mx.controls.MenuBar;
        
                    private var _menuBar:MenuBar;
                    private var _menuBarIndex:int;
                    private var _menuBarItemState:String;
                    
                    public function get menuBar():MenuBar {
                        return _menuBar;
                    }
        
                    public function set menuBar(value:MenuBar):void { 
                        _menuBar = value;
                    }
        
                    public function get menuBarItemIndex():int {
                        return _menuBarIndex;
                    }
        
                    public function set menuBarItemIndex(value:int):void
{ 
                        _menuBarIndex = value;
                    }
        
                    public function get menuBarItemState():String {
                        return _menuBarItemState;
                    }
        
                    public function set
menuBarItemState(value:String):void { 
                        _menuBarItemState = value;
                    }
                    
                ]]>
            </mx:Script>
            
            <mx:Label text="[EMAIL PROTECTED]" /> 
            <mx:Spacer width="100%" /> 
            <mx:Image source="/anything.png" height="100%" width="30" />

        
        </mx:HBox>





Any one knows how to solve this?


VELO


 

Reply via email to