<?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; 布局</title>
	<atom:link href="http://www.flextheworld.com/tag/%e5%b8%83%e5%b1%80/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-layout.html</link>
		<comments>http://www.flextheworld.com/2009/06/flex4-layout.html#comments</comments>
		<pubDate>Thu, 18 Jun 2009 01:59:36 +0000</pubDate>
		<dc:creator>Kevin Luo</dc:creator>
				<category><![CDATA[Flex 迷你教程]]></category>
		<category><![CDATA[Flash Builder 4]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[布局]]></category>

		<guid isPermaLink="false">http://www.flextheworld.com/?p=536</guid>
		<description><![CDATA[继续第二章，布局  
简介
这篇教程中我们将通过一些简单的例子初步的学习Flex SDK 4中新的布局方式。
学习目标

初步了解SDK4中布局有哪些变化。
学会使用新的布局方式。

准备工作
下载并安装Flash Builder 4
实现步骤
在之前的Flex SDK中，布局是在控件或者容器中单独定义的，因此我们的控件，比如List, TileList, and HorizontalList，他们全都有完全相同的方法，只是布局方式不同。在Flex 4中，布局已经从控件中剥离出来。这样我们可以更加灵活的对控件进行布局，比如在运行时将容器的布局方式由横向改为纵向。这在Flex 3中是很难实现的， 因为我们很难在运行时把List改为TileList 或者将Hbox改为Vbox。
在Flex 4的spark包中已经没有了原来的Hbox, Vbox, Box以及Canvas容器，取而代之的是Group，另一个新的容器是SkinnableContainer，它与Group的区别是我们可以为它定义皮肤。Group不能定义皮肤但有更高的执行效率以及使应用程序的体积更小。
我们现在来看一组例子，在Flex 4中定义List, TileList以及 HorizontalList
1. List
&#60;s:List /&#62;
2. HorizontalList
&#60;s:List&#62;
    &#60;s:layout&#62;
        &#60;s:HorizontalLayout /&#62;
    &#60;/s:layout&#62;
&#60;/s:List&#62;
3. Tiled List
&#60;s:List&#62;
    &#60;s:layout&#62;
        &#60;s:TileLayout [...]]]></description>
			<content:encoded><![CDATA[<p>继续第二章，布局 <img src='http://www.flextheworld.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>简介</h2>
<p>这篇教程中我们将通过一些简单的例子初步的学习Flex SDK 4中新的布局方式。</p>
<h2>学习目标</h2>
<ol>
<li>初步了解SDK4中布局有哪些变化。</li>
<li>学会使用新的布局方式。</li>
</ol>
<h2>准备工作</h2>
<p>下载并安装<a href="http://www.adobe.com/go/flashbuilder4_download%22%20rel=%22nofollow%22%20href=%22http://www.adobe.com/go/flashbuilder4_downloadflashbuilder4_download" target="_blank">Flash Builder 4</a></p>
<h2>实现步骤</h2>
<p>在之前的Flex SDK中，布局是在控件或者容器中单独定义的，因此我们的控件，比如List, TileList, and HorizontalList，他们全都有完全相同的方法，只是布局方式不同。在Flex 4中，布局已经从控件中剥离出来。这样我们可以更加灵活的对控件进行布局，比如在运行时将容器的布局方式由横向改为纵向。这在Flex 3中是很难实现的， 因为我们很难在运行时把List改为TileList 或者将Hbox改为Vbox。<span id="more-536"></span></p>
<p>在Flex 4的spark包中已经没有了原来的Hbox, Vbox, Box以及Canvas容器，取而代之的是Group，另一个新的容器是SkinnableContainer，它与Group的区别是我们可以为它定义皮肤。Group不能定义皮肤但有更高的执行效率以及使应用程序的体积更小。</p>
<p>我们现在来看一组例子，在Flex 4中定义List, TileList以及 HorizontalList</p>
<p>1. List</p>
<pre style="font-family: monospace;"><span style="color: #339933;">&lt;</span>s<span style="color: #339933;">:</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Alist+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">List</span></a> <span style="color: #339933;">/&gt;</span></pre>
<p>2. HorizontalList</p>
<pre style="font-family: monospace;"><span style="color: #339933;">&lt;</span>s<span style="color: #339933;">:</span>List<span style="color: #339933;">&gt;</span>
    <span style="color: #339933;">&lt;</span>s<span style="color: #339933;">:</span>layout<span style="color: #339933;">&gt;</span>
        <span style="color: #339933;">&lt;</span>s<span style="color: #339933;">:</span>HorizontalLayout <span style="color: #339933;">/&gt;</span>
    <span style="color: #339933;">&lt;/</span>s<span style="color: #339933;">:</span>layout<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>s<span style="color: #339933;">:</span>List<span style="color: #339933;">&gt;</span></pre>
<p>3. Tiled List</p>
<pre style="font-family: monospace;"><span style="color: #339933;">&lt;</span>s<span style="color: #339933;">:</span>List<span style="color: #339933;">&gt;</span>
    <span style="color: #339933;">&lt;</span>s<span style="color: #339933;">:</span>layout<span style="color: #339933;">&gt;</span>
        <span style="color: #339933;">&lt;</span>s<span style="color: #339933;">:</span>TileLayout <span style="color: #339933;">/&gt;</span>
    <span style="color: #339933;">&lt;/</span>s<span style="color: #339933;">:</span>layout<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>s<span style="color: #339933;">:</span>List<span style="color: #339933;">&gt;

</span>上面的例子中我们通过设置layout标签中的HorizontalLayou与TileLayout实现了3种不同List的布局，可以看到虽然从形式上样式的定义变得
更“复杂”了，但是布局的解耦让我们对控件的使用变得更加灵活。

除了控件的布局方式改变外，Flex 4中的滚动条也从控件中剥离了出来，默认的容器是没有滚动条以及virtualization的，我们来看下面显示滚
动条的例子。
<pre style="font-family: monospace;"><span style="color: #339933;">&lt;?</span>xml version<span style="color: #339933;">=</span><span style="color: #0000ff;">"1.0"</span> encoding<span style="color: #339933;">=</span><span style="color: #0000ff;">"utf-8"</span><span style="color: #339933;">?&gt;</span>
<span style="color: #339933;">&lt;</span>s<span style="color: #339933;">:</span>Application xmlns<span style="color: #339933;">:</span>fx<span style="color: #339933;">=</span><span style="color: #0000ff;">"http://ns.adobe.com/mxml/2009"</span> xmlns<span style="color: #339933;">:</span>s<span style="color: #339933;">=</span><span style="color: #0000ff;">"library://ns.adobe.com/flex/spark"</span> xmlns<span style="color: #339933;">:</span>mx<span style="color: #339933;">=</span><span style="color: #0000ff;">"library://ns.adobe.com/flex/halo"</span><span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>s<span style="color: #339933;">:</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Apanel+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Panel</span></a> title<span style="color: #339933;">=</span><span style="color: #0000ff;">"Horizontal Panel"</span> width<span style="color: #339933;">=</span><span style="color: #0000ff;">"300"</span> height<span style="color: #339933;">=</span><span style="color: #0000ff;">"220"</span> left<span style="color: #339933;">=</span><span style="color: #0000ff;">"20"</span> top<span style="color: #339933;">=</span><span style="color: #0000ff;">"20"</span><span style="color: #339933;">&gt;</span>
    <span style="color: #339933;">&lt;</span>s<span style="color: #339933;">:</span>Scroller width<span style="color: #339933;">=</span><span style="color: #0000ff;">"100%"</span> height<span style="color: #339933;">=</span><span style="color: #0000ff;">"100%"</span><span style="color: #339933;">&gt;</span>
        <span style="color: #339933;">&lt;</span>s<span style="color: #339933;">:</span>Group<span style="color: #339933;">&gt;</span>
           <span style="color: #339933;">&lt;</span>s<span style="color: #339933;">:</span>layout<span style="color: #339933;">&gt;</span>
               <span style="color: #339933;">&lt;</span>s<span style="color: #339933;">:</span>HorizontalLayout useVirtualLayout<span style="color: #339933;">=</span><span style="color: #0000ff;">"true"</span> <span style="color: #339933;">/&gt;</span>
           <span style="color: #339933;">&lt;/</span>s<span style="color: #339933;">:</span>layout<span style="color: #339933;">&gt;</span>
           <span style="color: #339933;">&lt;</span>s<span style="color: #339933;">:</span>TextInput <span style="color: #339933;">/&gt;</span>
           <span style="color: #339933;">&lt;</span>s<span style="color: #339933;">:</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Abutton+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Button</span></a> label<span style="color: #339933;">=</span><span style="color: #0000ff;">"clear"</span> <span style="color: #339933;">/&gt;</span>
           <span style="color: #339933;">&lt;</span>mx<span style="color: #339933;">:</span>DateChooser <span style="color: #339933;">/&gt;</span>
           <span style="color: #339933;">&lt;</span>s<span style="color: #339933;">:</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Abutton+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Button</span></a> label<span style="color: #339933;">=</span><span style="color: #0000ff;">"submit"</span> <span style="color: #339933;">/&gt;</span>
        <span style="color: #339933;">&lt;/</span>s<span style="color: #339933;">:</span>Group<span style="color: #339933;">&gt;</span>
    <span style="color: #339933;">&lt;/</span>s<span style="color: #339933;">:</span>Scroller<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>s<span style="color: #339933;">:</span>Panel<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>s<span style="color: #339933;">:</span>Application<span style="color: #339933;">&gt;

</span>上面的代码中我们通过使用Scroller控件给Group容器加上了滚动条，如果把Scroll放在Panel的外面则滚动条出现在Panel的外部。
<pre style="font-family: monospace;">
<pre style="font-family: monospace;">编译运行上面的代码
<img class="alignnone size-full wp-image-537" title="Flash_Builder_4_5Z_1J_layout_1" src="http://www.flextheworld.com/wp-content/uploads/2009/06/Flash_Builder_4_5Z_1J_layout_1.jpg" alt="Flash_Builder_4_5Z_1J_layout_1" width="349" height="387" /></pre>
</pre>
<p>对布局的基本介绍就到这里，同学们可以到<a title="http://livedocs.adobe.com/flex/gumbo/html/WSD42D542D-CEFF-47e2-AFD5-C11F3E9B5AE2.html" rel="nofollow" href="http://livedocs.adobe.com/flex/gumbo/html/WSD42D542D-CEFF-47e2-AFD5-C11F3E9B5AE2.html">Spark Layout Specification</a> 查看更详细的内容。</p>
<h2>本节源码</h2>
<p><a class="downloadlink" href="http://www.flextheworld.com/wp-content/plugins/download-monitor/download.php?id=14" title=" downloaded 309 times" >Layout Demo (309)</a></pre>
</pre>
<h2>总结</h2>
<p>布局在Flex 4中有了很大的变化，就像我刚才提到的，布局的解耦让我们对容器，控件的界面操作变得更加灵活与合理。不过Flex 3中的布局方式仍然在mx控件中有效，所以我们也不必担心Flex 3程序向Flex 4移植的问题。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flextheworld.com/2009/06/flex4-layout.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
