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>