最新更新:

2011-06-02 Swift 1.0.3发布。增加allowDomain属性设置的支持,解决跨域加载的问题。具体用法可参考下面的xml库文件示例。
2011-01-31 Swift 1.0.2发布。增加对输出SWC的支持。只要把输出文件参数后缀改为swc,即可编译为swc文件。增加两个编译font的参数char和charRange,可与unicode搭配使用。
 

Swfit是一个用Java开发的免费工具,它可以帮助你把图片、字体、声音、二进制数据等资源打包成一个swf文件(或swc文件),你可以在运行时动态加载并访问这些资源,实现运行时共享库,减少主应用程序体积和加速下载。

Swift有两种使用方式,一是xml2lib,顾名思义,它可以根据指定的xml文件内容编译成swf/swc库文件。二是dir2lib,它则可以把指定文件夹中的所有有效资源编译成swf库文件。

xml2lib 使用方法:
java -jar Swift.jar xml2lib lib.xml lib.swf
java -jar Swift.jar xml2lib lib.xml lib.swc

    
    
    
    
  1. xml version="1.0" encoding="utf-8"?> 
  2. <lib allowDomain="riaidea.com"> 
  3. <bitmapdata file="p_w_picpath/img1.png" class="PNGBitmapData"/> 
  4. <bitmapdata file="p_w_picpath/img2.jpg" class="JPGBitmapData"/> 
  5. <bitmap file="p_w_picpath/img3.jpg" quality="80" class="JPGBitmap"/> 
  6. <bitmap file="p_w_picpath/img4.png" compression="true" quality="80" class="PNGBitmap"/> 
  7. <sprite file="p_w_picpath/img5.png" class="PNGSprite"/> 
  8. <sprite file="p_w_picpath/img6.jpg" class="JPGSprite"/> 
  9. <flexmovieclip file="p_w_picpath/img7.jpg" class="FlexMC"/> 
  10. <flexcontainer file="p_w_picpath/img8.jpg" class="FlexContainer"/> 
  11. <font file="Arial.ttf" unicode="u+0020-007e,u+00a0-036f" class="ArialFont" /> 
  12. <font file="msyh.ttf" char="微软雅黑" charRange="a-z,A-Z" unicode="u+5fae,u+8f6f,u+96c5,u+9ed1,u+4e00-u+4eff" class="MsyhFont" /> 
  13. <sound file="sound/test.mp3" class="TestSound"/> 
  14. <bytearray file="data/test.xml" class="XMLData"/> 
  15. lib> 

支持资源类型有:

* bitmapdata – 把指定图片文件编译成flash.display.BitmapData类,支持参数有compression,quality。
* bitmap – 把指定图片文件编译成flash.display.Bitmap类,支持参数有compression,quality。
* sprite – 把指定图片文件编译成flash.display.Sprite类,支持参数有compression,quality。
* flexmovieclip – 把指定图片文件编译成mx.flash.UIMovieClip类,支持参数有compression,quality。
* flexcontainer – 把指定图片文件编译成mx.flash.ContainerMovieClip类,支持参数有compression,quality。
* font – 把指定的字体文件编译成flash.text.Font类,支持参数有unicode。
* sound – 把指定声音文件编译成flash.media.Sound类。
* bytearray – 把指定的任何文件编译成flash.utils.ByteArray类。

注意事项:

* 所有资源都有file和class两个参数。file指定资源文件路径,当使用相对路径的时候,要注意这个路径是相对于执行 Swift.jar命令的路径,而不是相对于xml文件的路径。class参数指定资源编译成swf后的as3类定义名,从而能够通过 ApplicationDomain.getDefinition()来获取资源定义。

* 在图片类型资源中,如果是png格式,当参数compression为true时,图片将被编码成带alpha通道DefineBitsJPEG3,默认压缩比率即quality为80,相比原始图片可以得到更高的压缩比率。这也是Flash CS5中的处理方式。

* 在编译font字体资源时,如果不指定unicode参数,Swift将把字体中的所有有效字型都编译到swf中。一般的字体比较小的如英文字体可以完全编译,而像中文字体这种大型字体建议根据需要指定嵌入字型的unicode范围,如\u4e00-\u9fa5等。

* 声音sound资源目前只支持11hz倍率的音频文件,如何11hz,22hz,44hz等。

* allowDomain参数可指定访问域,与Security.allowDomain()方法作用一致。

dir2lib 使用方法:
java -jar Swift.jar dir2lib d:/myLibDir/ d:/myLibDir/lib.swf
java -jar Swift.jar dir2lib d:/myLibDir/ d:/myLibDir/lib.swc

下载地址:http://swift-tool.googlecode.com/files/Swift-1.0.3.zip
详细介绍:http://code.google.com/p/swift-tool/


转载自:http://www.riaidea.com/blog/archives/302.html