Flex运行时加载ICON

import com.benstucki.utilities.IconUtility;   
import mx.controls.Button;   
import mx.controls.ButtonBar;   
import mx.events.ChildExistenceChangedEvent;   
  
public function childAddedHandler(event:ChildExistenceChangedEvent):void  
{   
var buttonBar:ButtonBar = event.target as ButtonBar;   
var button:Button = event.relatedObject as Button;   
var data:Object = buttonBar.dataProvider;   
var key:String = "icon";   
  
var iconSource:String = data[buttonBar.getChildIndex(button)][key];   
button.setStyle("icon", IconUtility.getClass(button, iconSource));   
}  

import com.benstucki.utilities.IconUtility;
import mx.controls.Button;
import mx.controls.ButtonBar;
import mx.events.ChildExistenceChangedEvent;

public function childAddedHandler(event:ChildExistenceChangedEvent):void
{
var buttonBar:ButtonBar = event.target as ButtonBar;
var button:Button = event.relatedObject as Button;
var data:Object = buttonBar.dataProvider;
var key:String = "icon";

var iconSource:String = data[buttonBar.getChildIndex(button)][key];
button.setStyle("icon", IconUtility.getClass(button, iconSource));
}
  
<mx:Array id="testData">  
    <mx:Object id="button1"  
        label="Red Button"  
        icon="assets/redIcon.jpg" />  
    <mx:Object id="button2"  
        label="Green Button"  
        icon="assets/greenIcon.jpg" />  
    <mx:Object id="button3"  
        label="Blue Button"  
        icon="assets/blueIcon.jpg" />  
</mx:Array>  
  
<mx:ButtonBar id="buttonBar"  
    dataProvider="{testData}"  
    childAdd="childAddedHandler(event);">  
</mx:ButtonBar>

注意:依赖于附件里提供的IconUtility组件。

你可能感兴趣的:(Flex)