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
- <?xml?version="1.0"?encoding="utf-8"?>?
- <lib?allowDomain="riaidea.com">?
- <bitmapdata?file="image/img1.png"?class="PNGBitmapData"/>?
- <bitmapdata?file="image/img2.jpg"?class="JPGBitmapData"/>?
- <bitmap?file="image/img3.jpg"?quality="80"?class="JPGBitmap"/>?
- <bitmap?file="image/img4.png"?compression="true"?quality="80"?class="PNGBitmap"/>?
- <sprite?file="image/img5.png"?class="PNGSprite"/>?
- <sprite?file="image/img6.jpg"?class="JPGSprite"/>?
- <flexmovieclip?file="image/img7.jpg"?class="FlexMC"/>?
- <flexcontainer?file="image/img8.jpg"?class="FlexContainer"/>?
- <font?file="Arial.ttf"?unicode="u+0020-007e,u+00a0-036f"?class="ArialFont"?/>?
- <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"?/>?
- <sound?file="sound/test.mp3"?class="TestSound"/>?
- <bytearray?file="data/test.xml"?class="XMLData"/>?
- </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