`
emavaj
  • 浏览: 49278 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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

    博客分类:
  • Flex
阅读更多

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

 

哎~ 悲剧啊~

1
1
分享到:
评论
3 楼 琛哥哥 2012-12-27  
用IconUtility虽然可以达到效果,但是存在内存无法回收的问题,影响很大,不知道有没有什么解决办法?
2 楼 liuhongyu198828 2012-11-07  
getClass的第一个参数应该是什么,图片还是图片外的
1 楼 zengye78 2010-09-15  
我为了偷懒就收下了不客气了哦!

相关推荐

Global site tag (gtag.js) - Google Analytics