欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-19 17:54:20
...

哎,其实对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