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文件
哎~ 悲剧啊~