Flex 动态加载 Image 和 Icon 解决方案

哎,其实对Flex爱之恨之啊...

 

加载图标和图片,网上的例子到处都是...

非常可惜的是,都是“写死的”...

 

很容易看到,都是

/**背景图片.*/
[Embed("com/emavaj/myfriend/assets/pic/bg.swf")]
[Bindable]
public var bg:Class;

 用“绑定”,然后再赋值给需要的控件

那么如果用户需要上传图片,把路径存入数据库了

读取的时候,怎么用以上的方式读取图片呢?

 

1) 读取图片

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,afterLoad);
loader.load(new URLRequest(...));

 就是创建个Loader,然后监听完成事件,然后加载URLRequest指向的资源即可

需要注意的是,loader监听的时候,是

loader.contentLoaderInfo.addEventListener(Event.COMPLETE,afterLoad);

 

 不是

loader.addEventListener(Event.COMPLETE,afterLoad);

 

2个的效果不一样的...

 

函数部分:

public function afterLoad(event:Event):void {
	_image.source = event.currentTarget.content
}

 (大概是这样...我有点记不清了...)

 

2) 加载图标 Icon

 

这2个有什么不同呢?

Image接收的是 Bitmap对象

而Icon接收的是 Class对象

(Image也能接收Class,但是Icon不能接收Bitmap)

 

我找了好久也不知道怎么加载Class

后来发现一个工具包

IconUtility

 

其实也就是一个.as文件而已

然后使用里面的方法

IconUtility.getClass(uiComponent,iconUrl)

 就能返回加载好的Class对象

函数原型为:

public static function getClass( target:UIComponent, source:String, width:Number = NaN, height:Number = NaN ):Class

 在附件中有这个as文件

 

哎~ 悲剧啊~

你可能感兴趣的:(Flex)