<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Flex the world &#187; Flex 主题</title>
	<atom:link href="http://www.flextheworld.com/tag/flex-%e4%b8%bb%e9%a2%98/feed" rel="self" type="application/rss+xml" />
	<link>http://www.flextheworld.com</link>
	<description>Flex, AIR, FMS, P2P and Things......</description>
	<lastBuildDate>Fri, 10 Sep 2010 08:08:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Flex 迷你教程 &#8212; Flex SDK 4新特性：主题</title>
		<link>http://www.flextheworld.com/2009/06/flex4-heme.html</link>
		<comments>http://www.flextheworld.com/2009/06/flex4-heme.html#comments</comments>
		<pubDate>Tue, 16 Jun 2009 07:04:47 +0000</pubDate>
		<dc:creator>Kevin Luo</dc:creator>
				<category><![CDATA[Flex 迷你教程]]></category>
		<category><![CDATA[Flash Builder 4]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Flex gumbo]]></category>
		<category><![CDATA[Flex 主题]]></category>

		<guid isPermaLink="false">http://www.flextheworld.com/?p=511</guid>
		<description><![CDATA[这次的教程主要针对Flex SDK 4的新特性，一共有12篇。会全部收录在airia.cn出品的《Flash Builder 4 入门教学》中，这本电子教程现正在编辑阶段，里面包含了所有Flash Builder 4新增加内容的介绍，使用教程等，希望在它发布之后大家能够喜欢。现在我将部分的内容提前放出，也算是预告片  
简介
学习Flex SDK 4的新特性 &#8212; 主题
学习目标

切换Flash Builder 4自带的多款主题。
知道主题的存放位置。
知道主题应用的原理。

准备工作
下载并安装Flash Builder 4
实现步骤
在Flash Builder 4以前，Adobe默认的主题是Halo, 而从Flash Builder 4开始，默认的主题变成了Spark, Spark主题中使用了很多图片作为控件的皮肤，因此Spark只支持部分的色彩样式, 它们是baseColor, color, contentBackgroundColor, focusColor, symbolColor, selectionColor, and rollOverColor,如果同学们想改变一些控件的背景，比如Button的背景样式，我们需要重新定义背景的skin图片才可以做到。当然我们也 可以使用原来的Halo主题。现在我们就来看看如何使用主题。
Flash Builder 4中包含了9款默认主题，其中两款Spark主题，七款Halo主题。这里有必要提一提它们的区别，在Flash Builder 4中，由于出现了新的library://ns.adobe.com/flex/spark (xmlns:s)名称空间,代表新的spark.*包中的控件，所以Flash Builder 4 中同时存在了原来的mx.*以及spark.*中的两组控件。因此在Flash Builder 4中css style也加入了名称空间的支持，比如

?View Code CSS@namespace s &#34;library://ns.adobe.com/flex/spark&#34;;
@namespace mx &#34;library://ns.adobe.com/flex/halo&#34;;
&#160;
s&#124;Button &#123;
color: #FF0000;
&#125;
&#160;
mx&#124;DateChooser &#123;
color: #FF0000;
&#125;

其中S&#124;Button 代表了Spark包中Button的样式，mx&#124;DateChooser则代表mx包中DateChooser的样式。
回到我们的主题选择，首先创建一个名为HelloWorld的Flex项目。接下来
1. [...]]]></description>
			<content:encoded><![CDATA[<p>这次的教程主要针对Flex SDK 4的新特性，一共有12篇。会全部收录在airia.cn出品的《Flash Builder 4 入门教学》中，这本电子教程现正在编辑阶段，里面包含了所有Flash Builder 4新增加内容的介绍，使用教程等，希望在它发布之后大家能够喜欢。现在我将部分的内容提前放出，也算是预告片 <img src='http://www.flextheworld.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>简介</h2>
<p>学习Flex SDK 4的新特性 &#8212; 主题</p>
<h2><strong>学习目标</strong></h2>
<ol>
<li>切换Flash Builder 4自带的多款主题。</li>
<li>知道主题的存放位置。</li>
<li>知道主题应用的原理。<span id="more-511"></span></li>
</ol>
<h2>准备工作</h2>
<p>下载并安装<a href="http://www.adobe.com/go/flashbuilder4_download&quot; rel=&quot;nofollow&quot; href=&quot;http://www.adobe.com/go/flashbuilder4_downloadflashbuilder4_download" target="_blank">Flash Builder 4</a></p>
<h2>实现步骤</h2>
<p>在Flash Builder 4以前，Adobe默认的主题是Halo, 而从Flash Builder 4开始，默认的主题变成了Spark, Spark主题中使用了很多图片作为控件的皮肤，因此Spark只支持部分的色彩样式, 它们是baseColor, color, contentBackgroundColor, focusColor, symbolColor, selectionColor, and rollOverColor,如果同学们想改变一些控件的背景，比如Button的背景样式，我们需要重新定义背景的skin图片才可以做到。当然我们也 可以使用原来的Halo主题。现在我们就来看看如何使用主题。</p>
<p>Flash Builder 4中包含了9款默认主题，其中两款Spark主题，七款Halo主题。这里有必要提一提它们的区别，在Flash Builder 4中，由于出现了新的library://ns.adobe.com/flex/spark (xmlns:s)名称空间,代表新的spark.*包中的控件，所以Flash Builder 4 中同时存在了原来的mx.*以及spark.*中的两组控件。因此在Flash Builder 4中css style也加入了名称空间的支持，比如</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p511code3'); return false;">View Code</a> CSS</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5113"><td class="code" id="p511code3"><pre class="css" style="font-family:monospace;"><span style="color: #a1a100;">@namespace s &quot;library://ns.adobe.com/flex/spark&quot;;</span>
<span style="color: #a1a100;">@namespace mx &quot;library://ns.adobe.com/flex/halo&quot;;</span>
&nbsp;
s|Button <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#FF0000</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
mx|DateChooser <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#FF0000</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>其中S|Button 代表了Spark包中Button的样式，mx|DateChooser则代表mx包中DateChooser的样式。</p>
<p>回到我们的主题选择，首先创建一个名为HelloWorld的Flex项目。接下来</p>
<p><strong>1. 右键点击项目，选择属性</strong></p>
<p><img class="alignnone size-full wp-image-516" title="theme_1" src="http://www.flextheworld.com/wp-content/uploads/2009/06/theme_1.jpg" alt="theme_1" width="357" height="494" /></p>
<p><strong>2. 选择Flex主题。</strong></p>
<p>同学们可以看到右边显示了8款主题，其中第九款，也就是Halo.swc是没有显示在这里的，我们需要用导入主题的方式将其加入，我们在这里双击WireFrame主题。</p>
<p><img class="alignnone size-full wp-image-517" title="theme_2" src="http://www.flextheworld.com/wp-content/uploads/2009/06/theme_2.jpg" alt="theme_2" width="779" height="429" /></p>
<p>在HelloWorld.mxml中插入下面代码并编译运行 (代码中的布局方式也改变了，详情请查看布局章节)</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p511code4'); return false;">View Code</a> XML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5114"><td class="code" id="p511code4"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;s:Application</span> <span style="color: #000066;">xmlns:fx</span>=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span> </span>
<span style="color: #009900;">	<span style="color: #000066;">xmlns:s</span>=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span> </span>
<span style="color: #009900;">	<span style="color: #000066;">xmlns:mx</span>=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/halo&quot;</span> </span>
<span style="color: #009900;">	<span style="color: #000066;">minWidth</span>=<span style="color: #ff0000;">&quot;1024&quot;</span> <span style="color: #000066;">minHeight</span>=<span style="color: #ff0000;">&quot;768&quot;</span> <span style="color: #000066;">preloader</span>=<span style="color: #ff0000;">&quot;mx.preloaders.DownloadProgressBar&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;s:HGroup</span>  <span style="color: #000066;">gap</span>=<span style="color: #ff0000;">&quot;50&quot;</span> <span style="color: #000066;">horizontalCenter</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">top</span>=<span style="color: #ff0000;">&quot;10&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;s:Panel</span> <span style="color: #000066;">width</span>=<span style="color: #ff0000;">&quot;200&quot;</span> <span style="color: #000066;">height</span>=<span style="color: #ff0000;">&quot;200&quot;</span> <span style="color: #000066;">title</span>=<span style="color: #ff0000;">&quot;Spark Panel&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;s:layout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;s:HorizontalLayout</span> <span style="color: #000066;">paddingLeft</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000066;">paddingTop</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/s:layout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>	
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;s:Button</span> <span style="color: #000066;">label</span>=<span style="color: #ff0000;">&quot;Spark 按钮&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/s:Panel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> 		
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/s:HGroup<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>  
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/s:Application<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>左图是默认的spark样式，右图是切换wireframe样式后运行的结果<br />
<img class="alignnone size-full wp-image-523" title="theme_4" src="http://www.flextheworld.com/wp-content/uploads/2009/06/theme_4.jpg" alt="theme_4" width="222" height="229" /><br />
<span style="color: #ff0000;"><strong>注: 如果同学们选择的是Halo系列的主题，那么这里运行后仍然看到的会是Spark主题，这是因为Halo主题只对mx.controls里的控件有效，稍后会为同学们演示。</strong></span></p>
<p><strong>3. 我们已经知道了如何切换主题，现在来看看主题的存放位置以及主题是如何被应用的</strong></p>
<p>主题的默认存放位置在<br />
<span style="color: #ff0000;"><strong>Flash Builder 4安装目录/sdks/4.0.0/frameworks/themes/</strong></span></p>
<p>打开后会看见9个文件夹，分别对应一个主题。我们在HelloWorld项目文件夹中打开配置文件.actionScriptProperties。<br />
下图中红色框部分表示了主题的配置。</p>
<p><img class="alignnone size-full wp-image-524" title="theme_5" src="http://www.flextheworld.com/wp-content/uploads/2009/06/theme_5.jpg" alt="theme_5" width="530" height="494" /></p>
<p>我们继续来看看主题包里都用什么，将wireframe.swc改名为wireframe.zip，解压。解压后可见下面这些文件。</p>
<p><img class="alignnone size-full wp-image-525" title="theme_6" src="http://www.flextheworld.com/wp-content/uploads/2009/06/theme_6.jpg" alt="theme_6" width="265" height="113" /></p>
<p>很明显default.css是主题的样式设置，我们可以对其修改以改变主题的配置。注意default.css中的名称空间 @namespace &#8220;library://ns.adobe.com/flex/spark&#8221;; 表示了他对spark系列的控件有效。</p>
<p>好了，以上就是Flash Builder 4中对主题的选择。现在我们来继续扩展一些内容。刚才我提到spark以及wireframe主题只对spark包中的控件有效，也就是对Flex Builder 3中的控件是没有效果的，我们来做个实验。将下面的代码放入HelloWorld.mxml，我在其中加入了mx:Panel以及mx: Button。现在同样选择wireframe主题，运行。我们可以看到下图的效果。</p>
<p><img class="alignnone size-full wp-image-526" title="theme_7" src="http://www.flextheworld.com/wp-content/uploads/2009/06/theme_7.jpg" alt="theme_7" width="520" height="379" /></p>
<p>右边的mx Panel以及Button显示了默认的Spark样式，说明了wireframe的设置对其无效。那么是否可以继续使用flex builder 3中的样式呢？当然可以，在themes文件夹中的Halo就代表了Flex 3中的默认样式，我们再次打开样式选择面板，点击“导入样式”，选择Halo文件夹中的halo.swc导入。之后我们在Other 一栏里会看见它，见下图</p>
<p><img class="alignnone size-full wp-image-527" title="flash_builder_4_5z_1j_3d_theme_8" src="http://www.flextheworld.com/wp-content/uploads/2009/06/flash_builder_4_5z_1j_3d_theme_8.jpg" alt="flash_builder_4_5z_1j_3d_theme_8" width="524" height="350" /></p>
<p>双击导入，再次运行刚才的代码</p>
<p><img class="alignnone size-full wp-image-528" title="flash_builder_4_5z_1j_3d_theme_9" src="http://www.flextheworld.com/wp-content/uploads/2009/06/flash_builder_4_5z_1j_3d_theme_9.jpg" alt="flash_builder_4_5z_1j_3d_theme_9" width="519" height="310" /><br />
同学们可以看到右侧已经显示了我们熟悉的Flex 3中的默认样式，而左侧的Spark控件仍然显示了Spark的默认样式。</p>
<h3>本节源码</h3>
<a class="downloadlink" href="http://www.flextheworld.com/wp-content/plugins/download-monitor/download.php?id=13" title=" downloaded 278 times" >Flex4 Theme Demo (278)</a>
<h2>总结</h2>
<p>本节中介绍了Flash Builder 4中主题的使用方法，现在的方式让主题的开发与使用更加的规范化，相信以后会出现越来越多更加实用，漂亮的主题</p>
<h2>思考</h2>
<p>如何让Spark与mx控件同时应用一款主题?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flextheworld.com/2009/06/flex4-heme.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
