在flex中更改组件的Icon有两种方式,

一种是直接在用嵌入的方式实现

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical">

<mx:Script>
     <![CDATA[
          [Bindable]
          [Embed(source="assets/append.png")]
          private var Icon:Class;
     ]]>
</mx:Script> 

     <mx:Button id="b1" label="Button1"  icon="{Icon}" />
     <mx:Button id="b2" label="Button2"  icon="@Embed('assets/bug.png')" />
</mx:Application>

另一种是用setStyle 的方式实现
      b1.setStyle("icon",Icon);

但是如何动态加载图标而不是以编译进去的方式实现呢,找了好久终于在一个英文网站上找到了解决方案。
这片文章的作者是 Ben Stucki 他自己写了类来实现动态加载Icon图标,操作起 来非常简单,实例如下:

 

  <mx:Button id="button1" icon="{IconUtility.getClass(button1, 'http://onair.adobe.com/images/lynch.jpg', 32, 32)}" />

这个需要在script代码块中导入这个类
import com.benstucki.utilities.IconUtility;
大 家可以试一下。

文章查考来源于 Ben Stucki 的博客,大家可以到 他的网站上下载 IconUtility的swc包,地址如下:
http://blog.benstucki.net/?p=42

posted on 2010-08-28 11:41  漓石  阅读(569)  评论(0编辑  收藏  举报