Now it works (not sure if dispathEvent needed though and why):

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml";
verticalScrollPolicy="off" horizontalScrollPolicy="off"
implements="mx.controls.menuClasses.IMenuItemRenderer"
width="100%" height="100%">
    <mx:Script>
        <![CDATA[
            import mx.events.*;
            import mx.controls.*;

            [Bindable]
            private var color:uint;
        
            override public function set data(value:Object):void {
                if(value != null) {
                    super.data = value;
                    lb.text = String(value.label);
                    color = (lb.text.indexOf('♥') != -1 ||
                             lb.text.indexOf('♦') != -1) ? 0xFF0000 : 0x000000;
                }
                dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
            }
        
            // implement IMenuItemRenderer interface
            private var _menu:Menu;
            public function get menu():Menu { return _menu;     }
            public function set menu(value:Menu):void { _menu = value; }
            public function get measuredBranchIconWidth():Number { return 100;}
            public function get measuredTypeIconWidth ():Number { return 100;}
            public function get measuredIconWidth ():Number { return 100;}

        ]]>
    </mx:Script>
    <mx:Label id="lb" color="{color}" />
</mx:Canvas>

Reply via email to