【转载】http://www.actionscript3.cn/magicianzrh/archives/2008/11/flexflash_library.html
先把代码包放上来
其实flex加载外部图片有很多办法,比较爽的就是Embed标签嵌入,不过数量多了也是相当麻烦
这阵子做点东西,因为资源太多,特别有规则的如果利用BitmapData切图的办法会浪费很多运算,只好在Java中把图片切好,还好,虽然 Java有段时间没有去写过,前阵子在用Python,本来也想Python搞定--多爽,哎,历史遗留问题,Java实在太臃肿了
我 的一般流程都是:photoshop大图搞定,之后Python按规则分图转格式(ActionScript3的ByteArray实在虽然也可以,但无 奈效率),之后可以用JSFL工具在flash中整理资源(可惜JSFL也太弱了点),之后就是这次要做的把flash中的资源弄出来了
搞这个真是郁闷,一项流程都不能用一种语言方便的搞定,不然哪里要这么多步骤
demo包中fla中有这次的flash资源文件,flash文件已经运行过ResourceLib.jsfl,如果你想尝试,只要重新建立一个 fla,把as3_logo.gif导入到flash库中,之后运行ResourceLib.jsfl(这个在Command->Run Command中,选择ResourceLib.jsfl),你可以看到库面板中的as3_logo.gif已经相应的设置好了,关于JSFL,以前写过 一个让JSFL帮你做些苦力活,对了,记得设置文档类为ResourceLib.as,之后编译下就是src中的ResourceLib.swf了
@author:magicianzrh http://www.actionscript3.cn/magicianzrh
load the resource in fla file library demo
-->
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
creationComplete="myInit();">
<mx:Script>
<![CDATA[
private var myLoader:Loader;
private var resClass:Class;
private function myInit():void {
myLoader = new Loader();
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadedHandler);
myLoader.load(new URLRequest("ResourceLib.swf"));
}
private function loadedHandler(event:Event):void {
resClass = myLoader.contentLoaderInfo.applicationDomain.getDefinition("ResourceLib") as Class;
var imageClass:Class = new resClass().getImage("as3_logo") as Class;
base.source = new Bitmap(new imageClass(287,101));
}
]]>
</mx:Script>
<mx:Image x="0" y="0" id="base" scaleContent="true"/>
</mx:Application>
就搞定啦
记得类imageClass参数要设置宽度和高度,这是因为在flash库中图片设置为Export for ActionScript时候,图片的基类是BitmapData
其他就没啥啦
太久没有更新blog了,这段时间,边写java边写ActionScript3,脑子都有点乱,不过已经过去啦,O(∩_∩)O哈哈~欢呼
Good Luck & Have Fun!








