1. 官方文档
1.1. Swfmill概述
1.1.1. Swfmill是什么
Swfmill是一个使用SWFML实现的从xml到swf或者swf到xml转换的命令行工具。SWFML是一个在SWF文件格式制定后制定的XML方言。Swfmill是一个具有xslt能力的生成swf的工具,当然,它比SWFML的语法好懂多了。另外,它也是FAMES生成SWF的密不可分的一部分。
1.1.2. 我可以使用"simple"命令做什么?
你能够生成swf文件。最简单的情况就是为使用Mtasc编译器而生成的带有库资源的swf文件。目前,它能导入图片(jpg,png)、字体(ttf)以及其他swf文件。也可以用它来在舞台上放置某些资源、生成带有多帧的电影剪辑、或者生成文本框等等。
1.1.3. 我可以使用"basic"命令做什么?
(貌似在我使用的swf 0.2.7中,basic已经被xml2swf和swf2xml取代了。但是对于命令的解释是差不多的,只是一个命令拆成了2个而已。)
你能够使用它来读取或者写入swf文件、看看swf表面之下的结构、或者做一些其他有意思的用途。你也许会遇到一些不知道的tag,而且注意,swfmill并不进行完整性检查,比如他并不检查你画的图形是不是封闭的。所以呢,要注意仔细检查用它生成的swf文件。
和"simple"方言不同,"basic"使用twip作为单位,而不是使用pixel.(1pixel=20twip)
1.1.4. 我可以使用xslt命令做什么?
如果你不喜欢simple命令,或者你有一些特殊的需求,你可以使用xslt命令来将你自己的xml文件转化成SWFML并输出成swf文件。从技术上来讲,simple只是这个过程的一个默认的封装。另外还有一些swf扩展可以管理id以及导入其他swf。
1.1.5. Swfmill有哪些平台上的版本?
你可以从 http://iterative.org/swfmill/releases/ 下载Windows和Mac
OS的安装文件以及Linux下的源码包。从0.2.3版本开始支持64位处理器(目前最新版本是0.2.11)。
1.1.6. 在哪里获得更多信息?
请访问文本末尾的链接来获得一些例子和文档,以及访问项目主页:http://iterative.org/swfmill/来获得您想要的信息
1.1.7. 其他
Swfmill的作者是Daniel Fischer,在GPL协议下发布。
1.2. 使用“simple”命令的例子
1.2.1. 最基础的SWF
这是一个最简单的swf文件。它长320像素,宽240像素,每秒12帧,白色背景。注意<frame/>标签,除了<movie/>和<background/>标签之外,其余所有标签都应该位于一个<frame/>标签之内。
<?xml version="1.0" encoding="iso-8859-1" ?>
<movie width="320" height="240" framerate="12">
<background color="#ffffff"/>
<frame/>
</movie>
如果你把这段xml代码存成sample.swfml(也可以是sample.xml,其实什么名字没有关系),按后使用下面的命令生成swf文件:
swfmill simple sample.swfml sample.swf
1.2.2. 导入外部资源
l 导入图形和swf文件
使用<clip/>标签来导入JPG、PNG图片和SWF文件。他们将在生成的swf文件中作为电影剪辑。下面的例子将导入library/foo.jpg 并赋给它名为foo的ID。swfmill也可以导入TrueType字体,不过语法稍微有些不同。
<frame>
<clip id="foo" import="library/foo.jpg"/>
</frame>
l 一个简单的库
<library/>标签,和其他标签一样,也位于<frame/>标签内。你可以通过使用多帧并将资源放入那一帧来将资源放入你想要的帧内。你可以不把资源放入库(library)内,但是那样他们就无法被actionscript使用了。有时候你并不需要把某个资源导入库内,因为你将把它作为你定义的其他电影剪辑的一部分使用,或者你仅仅想把它通过<place/>标签直接放到舞台上。当然,你可以在<library/>标签中包含多个<clip/>和<font/>标签。下面的例子导入和上例一样的图片,不过这次把它导入库中。如果使用actionscript的话,ID业作为链接名称。
<frame>
<library>
<clip id="foo" import="library/foo.jpg"/>
</library>
</frame>
l 导入字体
导入TTF字体和导入图片及swf文件的过程一样。不过这次使用<font/>标签,而且你可以定义你想包含在字体属性中的字符。下面的例子导入了vera.ttf中的数字字符。
<font id="vera" import="library/vera.ttf" glyphs="0123456789"/>
l 导入共享库
你也可以使用共享的库。使用swfmill创建的swf文件都可以在运行时共享。要导入另外的swf作为保持一个本地拷贝的库可以按照如下代码进行:
<import file="library/library.swf" url="http://foo.com/library.
swf"/>
l 将一个类赋给一个电影剪辑