在做公司的播放器时候,开始为了减少swf的大小,并没有把资源在编译时候打包到swf中,而是采用运行时候通过外部加载方式。但是,这种方式虽然可以减少swf的大小,但是,在实际运行时候,由于用户大多数使用IE6(早该淘汰了),在并发请求的数目是有限制的(2个),所以,这样往往会资源加载失败的情况。因此,打算采用Embed方式把资源打包到swf中。不过,在这个播放器中,有不少的资源是,需要根据不同状态进行切换的。所以,建立一个Resourse类来管理这些资源。具体代码如下:
下面的例子使用[Embed]原标签经image嵌入应用程序,并且采用绑定ActionScript类的形式。这就可以绑定Image控件的source属性到Logo类。可以绑定Logo类到任何可以使用image的组件属性上,比如Button控件的icon属性。
- public final class Resource
- {
- [Embed(source="/../assets/toolbar_play.png")]
- public static var TOOLBAR_PLAY:Class;
- [Embed(source="/../assets/toolbar_pause.png")]
- public static var TOOLBAR_PAUSE:Class;
- [Embed(source="../assets/toolbar_ff.png")]
- public static var TOOLBAR_FF:Class;
- [Embed(source="../assets/toolbar_rew.png")]
- public static var TOOLBAR_REW:Class;
- [Embed(source="../assets/loading_video.swf")]
- public static var LOADING_SWF:Class;
- }
这样通过这个Resource类进行管理。
使用方法是:
如果在运行时候需要更改testImg的source,只需要重新给source赋其他的资源对象就可以了。