9.10.编译主题SWC

9.10.1.问题
你想将你的样式文件打包放进主题SWC,然后编译到程序中。
9.10.2.解决办法
运用命令行工具生成一个主题SWC ,接着利用mxmlc 编译器的主题选项编译程序。
9.10.3.讨论
Shockwave Component (SWC)文件是按照PKZIP 格式打包的档案文件。SWC 文件允许你在众多开发者间交换大量文件的唯一档案而不是那些文件本身。正如你会生成MXML 和ActionScript 文件,并将其打包成SWC 做为用户组件,你同样能将样式的档案文件打包。

若要生成SWC 文件,你可以利用Flex SDK 安装路径下/bin 目录中提供的compc 工具。

将Flex SDK 安装路径下/bin 目录设置在你的系统路径中,下列命令行的输入展示了怎样调用compc 工具生成名为MyTheme.swc 的SWC 文件:
> compc –include-file MyStyles.css C:/mystyles/MyStyles.css –o MyTheme.swc
其中include-file 选项有两个参数:引用样式资源的文件名以及资源的文件系统位置。允许使用多个include-file 选项来打包程序主题所需的所有样式资源。

你能够利用mxmlc 编译器的主题选项在编译程序时应用主题:
> mxmlc MyApplication.mxml –theme MyTheme.swc

为更好地理解如何生成主题SWC 并将文件编入程序,尝试着将Flex SDK 中提供的一个附加主题打包。

在命令提示符下浏览SDK 安装路径的Smoke 主题文件夹: <flex sdk installation>/frameworks/themes/Smoke。由于已经将Flex SDK 安装路径下/bin 目录设置在你的系统路径中, 输入下列命令:
> compc –include-file Smoke.css Smoke.css –include-file smoke_bg.jpg smoke_bg.jpg
–o SmokeTheme.swc


本条命令在原文件夹下生成SmokeTheme.swc 文件。将SWC 文件移至一个新项目文件夹中,输入下列标记:
+展开
-XML
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxmlxmlns:cookbook="oreilly.cookbook.*layout="vertical">
<mx:Script>
<![CDATA[
[Bindable]
private var dp:Array = [{label:"Josh Noble", data:0},{label:"Abey George", data:1},{label:"Todd Anderson", data:2}];
private function clickHandler():void {
messageField.text = "You chose:"+nameCB.selectedLabel;
}

]]>
</mx:Script>
<mx:Panel title="Pick One:width="50%height="50%"
paddingLeft="10paddingTop="10">

<mx:VBox width="100%">
<mx:HBox width="100%">
<mx:Text text="Choose:styleName="windowStyles" />
<mx:ComboBox id="nameCBdataProvider="{dp}" />
<mx:Button label="selectclick="clickHandler();" />
</mx:HBox>
<mx:Text id="messageFieldstyleName="windowStyles" />
</mx:VBox>
</mx:Panel>
</mx:Application>

将该文件保存为MXML 程序。你会注意到MXML 文件既没有内部声明样式,也没有引用任何的外部样式表单。然后两个Text 组件的styleName 属性值均是windowStyles 的选择器值。.windowStyles 类选择器在Smoke.css 样式表单中声明,并在赋值前已经打包放进SmokeTheme.swc 。

当你在编译程序时将theme 选项参数指定为SmokeTheme.swc,样式不仅应用显示项中Text实例,而且应用于程序的所有组件。

打开命令提示行,浏览含有程序MXML 文件及先前生成的主题SWC 的项目路径,并输入下列命令:
> mxmlc MyApplication.mxml –theme SmokeTheme.swc

本命令利用嵌入的主题SWC 为你的程序生成SWF 文件。打开你项目路径中生成的SWF文件,你会看到你的程序应用了Flex SDK 提供的Smoke 主题样式。

能被打包进主题SWC 的文件并不局限于CSS 和图形文件,还包含后面将要提及的皮肤类文件和字体文件。

加支付宝好友偷能量挖...


评论(0)网络
阅读(151)喜欢(0)flash/flex/fcs/AIR