<?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>zrong&#039;s Blog &#187; Layout</title>
	<atom:link href="http://zengrong.net/post/tag/layout/feed" rel="self" type="application/rss+xml" />
	<link>http://zengrong.net</link>
	<description>Flash、Flex、RIA、web、Linux和我的生活</description>
	<lastBuildDate>Thu, 09 Feb 2012 15:09:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2</generator>
		<item>
		<title>BaseUI中文使用说明和范例</title>
		<link>http://zengrong.net/post/1219.htm</link>
		<comments>http://zengrong.net/post/1219.htm#comments</comments>
		<pubDate>Sun, 19 Dec 2010 11:38:12 +0000</pubDate>
		<dc:creator>zrong</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Layout]]></category>

		<guid isPermaLink="false">http://zengrong.net/?p=1219</guid>
		<description><![CDATA[<a href="http://zengrong.net/post/1219.htm" title="BaseUI中文使用说明和范例"></a>在Flex中，界面中的各个组件可以随着浏览器的大小而重新排列位置，始终在浏览器中保持满屏显示的状态。我们将这种效果称为“布局”。 Flex框架实现了一套自己的布局框架。在Flex3中，可以使用HBox、VBox等进行布局管理；在Flex4中，可以使用spark.layouts包中的布局管理器，这个包的布局功能更加强大和灵活。 那么，在Flash或者纯AS项目中，如何实现布局呢？ 侦听舞台的Resize事件是解决这个问题的常用方法。但是如果布局比较复杂，就需要大量的代码来实现这些布局，使用侦听Resize事件的方法未免显得繁琐。于是，就有人实现了AS下的布局类或者布局框架。例如：senocular Layout class、Yahoo ASTRA Layout Utility等等。本文介绍的是BaseUI。 BaseUI的中文资料较少，这一篇官方说明的译文，通过它大致可以了解BaseUI的工作方式和特点。本文则准备以实例的方式基于一个纯AS项目来介绍BaseUI的基本用法，这样更容易理解。 一、BaseUI基本使用 在下面的这段代码中，建立了一个BaseUI的实例，然后绘制了一个shape并加入到显示列表中，将其置于舞台右下角，与舞台边框间隔10像素。 几个注意点： 必须设定stage的scaleMode为NO_SCALE，以及设定align为TOP_LEFT，否则布局可能会不正常； BaseUI必须基于stage，虽然基于root也能工作，但是可能会导致布局不正常； 将元素加入BaseUI并不等于加入显示列表，因此还需要将元素自行加入显示列表中 效果（在浏览器中查看swf或下载后使用Flash Player播放）： 源码： ?View Code ACTIONSCRIPT&#91;SWF&#40;width=500,height=300,backgroundColor=0xcccccc&#41;&#93; public class BaseUITest extends Sprite &#123; public function BaseUITest&#40;&#41; &#123; //绘制一个背景颜色以便于观察 graphics.beginFill&#40;0xFFFFFF&#41;; graphics.drawRect&#40;0, 0, 500, 300&#41;; graphics.endFill&#40;&#41;; //必须设置scaleMode和align，否则在布局的时候会不正常 &#8230;<p class="read-more"><a href="http://zengrong.net/post/1219.htm">继续阅读 &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://zengrong.net/post/1219.htm" title="BaseUI中文使用说明和范例"></a><p>在Flex中，界面中的各个组件可以随着浏览器的大小而重新排列位置，始终在浏览器中保持满屏显示的状态。我们将这种效果称为“布局”。</p>
<p>Flex框架实现了一套自己的布局框架。在Flex3中，可以使用HBox、VBox等进行布局管理；在Flex4中，可以使用spark.layouts包中的布局管理器，这个包的布局功能<a href="http://insideria.com/2009/05/flex-4-custom-layouts.html" target="_blank">更加强大和灵活</a>。</p>
<p>那么，在Flash或者纯AS项目中，如何实现布局呢？</p>
<p>侦听舞台的Resize事件是解决这个问题的常用方法。但是如果布局比较复杂，就需要大量的代码来实现这些布局，使用侦听Resize事件的方法未免显得繁琐。于是，就有人实现了AS下的布局类或者布局框架。例如：<a href="/post/352.htm">senocular Layout class</a>、<a href="http://developer.yahoo.com/flash/astra-utils/layout/" target="_blank">Yahoo ASTRA Layout Utility</a>等等。本文介绍的是<a href="http://www.soundstep.com/blog/2010/07/05/as3-layout-manager-baseui-v4-finally-released/" target="_blank">BaseUI</a>。</p>
<p>BaseUI的中文资料较少，<a href="http://bbs.9ria.com/viewthread.php?tid=59702" target="_blank">这一篇</a>官方说明的译文，通过它大致可以了解BaseUI的工作方式和特点。本文则准备以实例的方式基于一个纯AS项目来介绍BaseUI的基本用法，这样更容易理解。<span id="more-1219"></span></p>
<h3>一、BaseUI基本使用</h3>
<p>在下面的这段代码中，建立了一个BaseUI的实例，然后绘制了一个shape并加入到显示列表中，将其置于舞台右下角，与舞台边框间隔10像素。</p>
<p><strong>几个注意点：</strong></p>
<ol>
<li>必须设定stage的scaleMode为NO_SCALE，以及设定align为TOP_LEFT，否则布局可能会不正常；</li>
<li>BaseUI必须基于stage，虽然基于root也能工作，但是可能会导致布局不正常；</li>
<li>将元素加入BaseUI并不等于加入显示列表，因此还需要将元素自行加入显示列表中</li>
</ol>
<p><strong>效果（在浏览器中查看swf或下载后使用Flash Player播放）：</strong><br />
Note: There is a file embedded within this post, please visit this post to download the file.</p>
<p><strong>源码：</strong></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('p1219code5'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p12195"><td class="code" id="p1219code5"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&#91;</span>SWF<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">width</span>=<span style="color: #cc66cc;">500</span>,<span style="color: #0066CC;">height</span>=<span style="color: #cc66cc;">300</span>,<span style="color: #0066CC;">backgroundColor</span>=0xcccccc<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>
<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> BaseUITest <span style="color: #0066CC;">extends</span> Sprite
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> BaseUITest<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;">//绘制一个背景颜色以便于观察</span>
		graphics.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0xFFFFFF<span style="color: #66cc66;">&#41;</span>;
		graphics.<span style="color: #006600;">drawRect</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">500</span>, <span style="color: #cc66cc;">300</span><span style="color: #66cc66;">&#41;</span>;
		graphics.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #808080; font-style: italic;">//必须设置scaleMode和align，否则在布局的时候会不正常</span>
		<span style="color: #0066CC;">stage</span>.<span style="color: #0066CC;">scaleMode</span> = StageScaleMode.<span style="color: #006600;">NO_SCALE</span>;
		<span style="color: #0066CC;">stage</span>.<span style="color: #0066CC;">align</span> = StageAlign.<span style="color: #006600;">TOP_LEFT</span>;
&nbsp;
		<span style="color: #808080; font-style: italic;">//绘制一个背景颜色以便于观察</span>
		graphics.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0xFFFFFF<span style="color: #66cc66;">&#41;</span>;
		graphics.<span style="color: #006600;">drawRect</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">500</span>, <span style="color: #cc66cc;">300</span><span style="color: #66cc66;">&#41;</span>;
		graphics.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #808080; font-style: italic;">//必须设置scaleMode和align，否则在布局的时候会不正常</span>
		<span style="color: #0066CC;">stage</span>.<span style="color: #0066CC;">scaleMode</span> = StageScaleMode.<span style="color: #006600;">NO_SCALE</span>;
		<span style="color: #0066CC;">stage</span>.<span style="color: #0066CC;">align</span> = StageAlign.<span style="color: #006600;">TOP_LEFT</span>;
&nbsp;
		<span style="color: #808080; font-style: italic;">//基于stage建立一个布局</span>
		_baseUI = <span style="color: #000000; font-weight: bold;">new</span> BaseUI<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stage</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #808080; font-style: italic;">//为布局添加一个布局元素</span>
		<span style="color: #000000; font-weight: bold;">var</span> __elementRB:ElementUI = _baseUI.<span style="color: #0066CC;">add</span><span style="color: #66cc66;">&#40;</span>createShape<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stage</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #808080; font-style: italic;">//设置该布局元素距右边和下方各10像素，并刷新布局使其生效</span>
		__elementRB.<span style="color: #0066CC;">right</span> = <span style="color: #cc66cc;">10</span>;
		__elementRB.<span style="color: #006600;">bottom</span> = <span style="color: #cc66cc;">10</span>;
		__elementRB.<span style="color: #006600;">refresh</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _baseUI:BaseUI;
&nbsp;
	<span style="color: #808080; font-style: italic;">//快速绘制一个Shape用于测试，如果绘制的时候提供了父显示对象，就将其加入父显示对象的显示列表</span>
	<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> createShape<span style="color: #66cc66;">&#40;</span>$parent:DisplayObjectContainer=<span style="color: #000000; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span>:Shape
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">var</span> __shape:Shape = <span style="color: #000000; font-weight: bold;">new</span> Shape<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		__shape.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">lineStyle</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2</span>, 0xFF0000<span style="color: #66cc66;">&#41;</span>;
		__shape.<span style="color: #006600;">graphics</span>.<span style="color: #006600;">drawRect</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span> , <span style="color: #cc66cc;">30</span>, <span style="color: #cc66cc;">30</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>$parent<span style="color: #66cc66;">&#41;</span>
			$parent.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>__shape<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #b1b100;">return</span> __shape;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<h3>二、可以使用几个BaseUI？</h3>
<p>最开始，我以为BaseUI是可以用于其它的显示容器的，于是就做了个实验，建立一个Sprite并加入到stage中，并基于这个Sprite建立一个BaseUI，再使用这个新的BaseUI来控制Sprite的子显示对象。但发现这样做出来的布局无法正常显示。当然，可能是由于我遗忘了某些东西或者使用方法不正确，但我还是建议对于子容器使用<a href="http://www.soundstep.com/blog/source/baseuiv4/docs/com/soma/ui/layouts/package-detail.html" target="_blank">com.soma.ui.layouts</a>包。</p>
<h3>三、HBoxUI的用法</h3>
<p><a href="http://www.soundstep.com/blog/source/baseuiv4/docs/com/soma/ui/layouts/HBoxUI.html" target="_blank">HBox</a>是一个横向布局容器，它继承自<a href="http://www.soundstep.com/blog/source/baseuiv4/docs/com/soma/ui/layouts/LayoutUI.html" target="_blank">LayoutUI</a>，而LayoutUI则继承自MovieClip（为什么是MovieClip而不是Sprite？这个我也不知道，我在源码中将LayoutUI的超类改为了Sprite，使用也一切正常）。</p>
<p>下面这段代码中建立了一个HBox容器，并为它增加了6个子显示对象，通过对HBox属性的设定，可以控制子显示对象的间隔以及在HBox中的对其方式。</p>
<p><strong>几个注意点：</strong></p>
<ol>
<li>backgroundAlpha属性默认是完全透明，因此如果要显示背景色，就必须将其设定为大于0的值；</li>
<li>因为LayoutUI是显示对象，因此可以直接将HBoxUI的实例加入显示列表，而ElementUI是不能加入显示列表的；</li>
<li>要获取LayoutUI的对应ElementUI，可以使用element属性；</li>
<li>不需要将LayoutUI加入到BaseUI的实例中，但需要为LayouUI传递stage，如果传递其它的容器，则可能会导致布局问题。</li>
</ol>
<p><strong>效果（在浏览器中查看swf或下载后使用Flash Player播放）：</strong><br />
Note: There is a file embedded within this post, please visit this post to download the file.</p>
<p><strong>源码：</strong></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('p1219code6'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p12196"><td class="code" id="p1219code6"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//增加一个HBox容器，设定背景色和透明度</span>
<span style="color: #000000; font-weight: bold;">var</span> __hbox:HBoxUI = <span style="color: #000000; font-weight: bold;">new</span> HBoxUI<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stage</span><span style="color: #66cc66;">&#41;</span>;
__hbox.<span style="color: #0066CC;">backgroundColor</span> = 0x0000FF;
<span style="color: #808080; font-style: italic;">//透明度默认是完全透明，所以必须设定才能让背景色显示出来</span>
__hbox.<span style="color: #006600;">backgroundAlpha</span> = <span style="color: #cc66cc;">0.2</span>;
<span style="color: #808080; font-style: italic;">//让该容器置顶，宽度始终与舞台相同</span>
__hbox.<span style="color: #0066CC;">right</span> = <span style="color: #cc66cc;">0</span>;
__hbox.<span style="color: #0066CC;">left</span> = <span style="color: #cc66cc;">0</span>;
__hbox.<span style="color: #006600;">top</span> = <span style="color: #cc66cc;">0</span>;
<span style="color: #808080; font-style: italic;">//让容器中的子显示对象的横向间隔为10像素</span>
__hbox.<span style="color: #006600;">childrenGap</span> = <span style="color: #000000; font-weight: bold;">new</span> GapUI<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//让容器中的子显示对象基于容器的右下方对齐</span>
__hbox.<span style="color: #006600;">childrenAlign</span> = HBoxUI.<span style="color: #006600;">ALIGN_BOTTOM_RIGHT</span>;
<span style="color: #808080; font-style: italic;">//加入6个shape</span>
<span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> i:<span style="color: #0066CC;">int</span>=<span style="color: #cc66cc;">0</span>; i<span style="color: #66cc66;">&lt;</span><span style="color: #cc66cc;">6</span>; i++<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
	createShape<span style="color: #66cc66;">&#40;</span>__hbox<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #808080; font-style: italic;">//将容器加入显示列表并刷新容器布局</span>
addChild<span style="color: #66cc66;">&#40;</span>__hbox<span style="color: #66cc66;">&#41;</span>;
__hbox.<span style="color: #006600;">refresh</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<h3>四、CanvasUI的用法</h3>
<p>使用HBoxUI和VBoxUI可以实现横向和纵向的布局。但我们有时候需要布局更灵活一些。例如希望3个显示对象分别排列在容器的左、中、右，如何处理呢？</p>
<p>下面这段代码建立了一个CanvasUI容器，在容器中增加了3个shape，并实现左、中、右排列。</p>
<p><strong>效果（在浏览器中查看swf或下载后使用Flash Player播放）：</strong><br />
Note: There is a file embedded within this post, please visit this post to download the file.</p>
<p><strong>源码：</strong></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('p1219code7'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p12197"><td class="code" id="p1219code7"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//增加一个CanvasUI容器</span>
<span style="color: #000000; font-weight: bold;">var</span> __canvas:CanvasUI = <span style="color: #000000; font-weight: bold;">new</span> CanvasUI<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stage</span><span style="color: #66cc66;">&#41;</span>;
__canvas.<span style="color: #0066CC;">backgroundColor</span> = 0xFF0000;
__canvas.<span style="color: #006600;">backgroundAlpha</span> = .5;
<span style="color: #808080; font-style: italic;">//让canvas在舞台中纵向居中，宽度与舞台宽度始终相同</span>
__canvas.<span style="color: #006600;">verticalCenter</span> = <span style="color: #cc66cc;">0</span>;
__canvas.<span style="color: #0066CC;">left</span> = <span style="color: #cc66cc;">0</span>;
__canvas.<span style="color: #0066CC;">right</span> = <span style="color: #cc66cc;">0</span>;
<span style="color: #808080; font-style: italic;">//建立canvas的第1个子显示对象，在canvas中左下对齐</span>
<span style="color: #000000; font-weight: bold;">var</span> __shape1:Shape = createShape<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> __element1:ElementUI = __canvas.<span style="color: #0066CC;">add</span><span style="color: #66cc66;">&#40;</span>__shape1<span style="color: #66cc66;">&#41;</span>;
__element1.<span style="color: #0066CC;">left</span> = <span style="color: #cc66cc;">0</span>;
__element1.<span style="color: #006600;">bottom</span> = <span style="color: #cc66cc;">0</span>;
<span style="color: #808080; font-style: italic;">//建立canvas的第2个子显示对象，在canvas中居中对齐</span>
<span style="color: #000000; font-weight: bold;">var</span> __shape2:Shape = createShape<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> __element2:ElementUI = __canvas.<span style="color: #0066CC;">add</span><span style="color: #66cc66;">&#40;</span>__shape2<span style="color: #66cc66;">&#41;</span>;
__element2.<span style="color: #006600;">horizontalCenter</span> = <span style="color: #cc66cc;">0</span>;
__element2.<span style="color: #006600;">verticalCenter</span> = <span style="color: #cc66cc;">0</span>;
<span style="color: #808080; font-style: italic;">//建立canvas的第3个子显示对象，在canvas中右上对齐</span>
<span style="color: #000000; font-weight: bold;">var</span> __shape3:Shape = createShape<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> __element3:ElementUI = __canvas.<span style="color: #0066CC;">add</span><span style="color: #66cc66;">&#40;</span>__shape3<span style="color: #66cc66;">&#41;</span>;
__element3.<span style="color: #0066CC;">right</span> =<span style="color: #cc66cc;">0</span>;
addChild<span style="color: #66cc66;">&#40;</span>__canvas<span style="color: #66cc66;">&#41;</span>;
__canvas.<span style="color: #006600;">refresh</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<h3>五、全部源代码</h3>

<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('p1219code8'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p12198"><td class="code" id="p1219code8"><pre class="actionscript" style="font-family:monospace;">package
<span style="color: #66cc66;">&#123;</span>
<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">soma</span>.<span style="color: #006600;">ui</span>.<span style="color: #006600;">BaseUI</span>;
<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">soma</span>.<span style="color: #006600;">ui</span>.<span style="color: #006600;">ElementUI</span>;
<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">soma</span>.<span style="color: #006600;">ui</span>.<span style="color: #006600;">layouts</span>.<span style="color: #006600;">CanvasUI</span>;
<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">soma</span>.<span style="color: #006600;">ui</span>.<span style="color: #006600;">layouts</span>.<span style="color: #006600;">HBoxUI</span>;
<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">soma</span>.<span style="color: #006600;">ui</span>.<span style="color: #006600;">vo</span>.<span style="color: #006600;">GapUI</span>;
&nbsp;
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">DisplayObjectContainer</span>;
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Shape</span>;
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">StageAlign</span>;
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">StageScaleMode</span>;
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">Event</span>;
&nbsp;
<span style="color: #66cc66;">&#91;</span>SWF<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">width</span>=<span style="color: #cc66cc;">500</span>,<span style="color: #0066CC;">height</span>=<span style="color: #cc66cc;">300</span>,<span style="color: #0066CC;">backgroundColor</span>=0xcccccc<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>
<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> BaseUITest <span style="color: #0066CC;">extends</span> Sprite
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> BaseUITest<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;">//绘制一个背景颜色以便于观察</span>
		graphics.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0xFFFFFF<span style="color: #66cc66;">&#41;</span>;
		graphics.<span style="color: #006600;">drawRect</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">500</span>, <span style="color: #cc66cc;">300</span><span style="color: #66cc66;">&#41;</span>;
		graphics.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #808080; font-style: italic;">//必须设置scaleMode和align，否则在布局的时候会不正常</span>
		<span style="color: #0066CC;">stage</span>.<span style="color: #0066CC;">scaleMode</span> = StageScaleMode.<span style="color: #006600;">NO_SCALE</span>;
		<span style="color: #0066CC;">stage</span>.<span style="color: #0066CC;">align</span> = StageAlign.<span style="color: #006600;">TOP_LEFT</span>;
&nbsp;
		<span style="color: #808080; font-style: italic;">//基于stage建立一个布局</span>
		_baseUI = <span style="color: #000000; font-weight: bold;">new</span> BaseUI<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stage</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #808080; font-style: italic;">//为布局添加一个布局元素</span>
		<span style="color: #000000; font-weight: bold;">var</span> __elementRB:ElementUI = _baseUI.<span style="color: #0066CC;">add</span><span style="color: #66cc66;">&#40;</span>createShape<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stage</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #808080; font-style: italic;">//设置该布局元素距右边和下方各10像素，并刷新布局使其生效</span>
		__elementRB.<span style="color: #0066CC;">right</span> = <span style="color: #cc66cc;">10</span>;
		__elementRB.<span style="color: #006600;">bottom</span> = <span style="color: #cc66cc;">10</span>;
		__elementRB.<span style="color: #006600;">refresh</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #808080; font-style: italic;">//增加一个HBox容器，设定背景色和透明度</span>
		<span style="color: #000000; font-weight: bold;">var</span> __hbox:HBoxUI = <span style="color: #000000; font-weight: bold;">new</span> HBoxUI<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stage</span><span style="color: #66cc66;">&#41;</span>;
		__hbox.<span style="color: #0066CC;">backgroundColor</span> = 0x0000FF;
		<span style="color: #808080; font-style: italic;">//透明度默认是完全透明，所以必须设定才能让背景色显示出来</span>
		__hbox.<span style="color: #006600;">backgroundAlpha</span> = <span style="color: #cc66cc;">0.2</span>;
		<span style="color: #808080; font-style: italic;">//让该容器置顶，宽度始终与舞台相同</span>
		__hbox.<span style="color: #0066CC;">right</span> = <span style="color: #cc66cc;">0</span>;
		__hbox.<span style="color: #0066CC;">left</span> = <span style="color: #cc66cc;">0</span>;
		__hbox.<span style="color: #006600;">top</span> = <span style="color: #cc66cc;">0</span>;
		<span style="color: #808080; font-style: italic;">//让容器中的子显示对象的横向间隔为10像素</span>
		__hbox.<span style="color: #006600;">childrenGap</span> = <span style="color: #000000; font-weight: bold;">new</span> GapUI<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #808080; font-style: italic;">//让容器中的子显示对象基于容器的右下方对齐</span>
		__hbox.<span style="color: #006600;">childrenAlign</span> = HBoxUI.<span style="color: #006600;">ALIGN_BOTTOM_RIGHT</span>;
		<span style="color: #808080; font-style: italic;">//加入6个shape</span>
		<span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> i:<span style="color: #0066CC;">int</span>=<span style="color: #cc66cc;">0</span>; i<span style="color: #66cc66;">&lt;</span><span style="color: #cc66cc;">6</span>; i++<span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			createShape<span style="color: #66cc66;">&#40;</span>__hbox<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #808080; font-style: italic;">//将容器加入显示列表并刷新容器布局</span>
		addChild<span style="color: #66cc66;">&#40;</span>__hbox<span style="color: #66cc66;">&#41;</span>;
		__hbox.<span style="color: #006600;">refresh</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #808080; font-style: italic;">//增加一个CanvasUI容器</span>
		<span style="color: #000000; font-weight: bold;">var</span> __canvas:CanvasUI = <span style="color: #000000; font-weight: bold;">new</span> CanvasUI<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stage</span><span style="color: #66cc66;">&#41;</span>;
		__canvas.<span style="color: #0066CC;">backgroundColor</span> = 0xFF0000;
		__canvas.<span style="color: #006600;">backgroundAlpha</span> = .5;
		<span style="color: #808080; font-style: italic;">//让canvas在舞台中纵向居中，宽度与舞台宽度始终相同</span>
		__canvas.<span style="color: #006600;">verticalCenter</span> = <span style="color: #cc66cc;">0</span>;
		__canvas.<span style="color: #0066CC;">left</span> = <span style="color: #cc66cc;">0</span>;
		__canvas.<span style="color: #0066CC;">right</span> = <span style="color: #cc66cc;">0</span>;
		<span style="color: #808080; font-style: italic;">//建立canvas的第1个子显示对象，在canvas中左下对齐</span>
		<span style="color: #000000; font-weight: bold;">var</span> __shape1:Shape = createShape<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #000000; font-weight: bold;">var</span> __element1:ElementUI = __canvas.<span style="color: #0066CC;">add</span><span style="color: #66cc66;">&#40;</span>__shape1<span style="color: #66cc66;">&#41;</span>;
		__element1.<span style="color: #0066CC;">left</span> = <span style="color: #cc66cc;">0</span>;
		__element1.<span style="color: #006600;">bottom</span> = <span style="color: #cc66cc;">0</span>;
		<span style="color: #808080; font-style: italic;">//建立canvas的第2个子显示对象，在canvas中居中对齐</span>
		<span style="color: #000000; font-weight: bold;">var</span> __shape2:Shape = createShape<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #000000; font-weight: bold;">var</span> __element2:ElementUI = __canvas.<span style="color: #0066CC;">add</span><span style="color: #66cc66;">&#40;</span>__shape2<span style="color: #66cc66;">&#41;</span>;
		__element2.<span style="color: #006600;">horizontalCenter</span> = <span style="color: #cc66cc;">0</span>;
		__element2.<span style="color: #006600;">verticalCenter</span> = <span style="color: #cc66cc;">0</span>;
		<span style="color: #808080; font-style: italic;">//建立canvas的第3个子显示对象，在canvas中右上对齐</span>
		<span style="color: #000000; font-weight: bold;">var</span> __shape3:Shape = createShape<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #000000; font-weight: bold;">var</span> __element3:ElementUI = __canvas.<span style="color: #0066CC;">add</span><span style="color: #66cc66;">&#40;</span>__shape3<span style="color: #66cc66;">&#41;</span>;
		__element3.<span style="color: #0066CC;">right</span> =<span style="color: #cc66cc;">0</span>;
		addChild<span style="color: #66cc66;">&#40;</span>__canvas<span style="color: #66cc66;">&#41;</span>;
		__canvas.<span style="color: #006600;">refresh</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">RESIZE</span>, handler_resize<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _baseUI:BaseUI;
&nbsp;
	<span style="color: #808080; font-style: italic;">//快速绘制一个Shape用于测试，如果绘制的时候提供了父显示对象，就将其加入父显示对象的显示列表</span>
	<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> createShape<span style="color: #66cc66;">&#40;</span>$parent:DisplayObjectContainer=<span style="color: #000000; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span>:Shape
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">var</span> __shape:Shape = <span style="color: #000000; font-weight: bold;">new</span> Shape<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		__shape.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">lineStyle</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2</span>, 0xFF0000<span style="color: #66cc66;">&#41;</span>;
		__shape.<span style="color: #006600;">graphics</span>.<span style="color: #006600;">drawRect</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span> , <span style="color: #cc66cc;">30</span>, <span style="color: #cc66cc;">30</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>$parent<span style="color: #66cc66;">&#41;</span>
			$parent.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>__shape<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #b1b100;">return</span> __shape;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> handler_resize<span style="color: #66cc66;">&#40;</span>evt:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageWidth</span>, <span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageHeight</span>, <span style="color: #0066CC;">stage</span>.<span style="color: #0066CC;">width</span>, <span style="color: #0066CC;">stage</span>.<span style="color: #0066CC;">height</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://zengrong.net/post/1219.htm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>了解Flex4中新的的Skin、CSS、Layout、NameSpace相关资料</title>
		<link>http://zengrong.net/post/789.htm</link>
		<comments>http://zengrong.net/post/789.htm#comments</comments>
		<pubDate>Wed, 02 Sep 2009 16:42:59 +0000</pubDate>
		<dc:creator>zrong</dc:creator>
				<category><![CDATA[听说]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[FXG]]></category>
		<category><![CDATA[Layout]]></category>
		<category><![CDATA[skin]]></category>

		<guid isPermaLink="false">http://www.zengrong.net/?p=789</guid>
		<description><![CDATA[<a href="http://zengrong.net/post/789.htm" title="了解Flex4中新的的Skin、CSS、Layout、NameSpace相关资料"></a>Differences between Flex 3 and Flex 4 beta（比较Flex3和Flex4的区别，很全面，值得一看） 了解一下Flex 4里的fx、mx以及s命名空间 Introducing skinning in Flex 4 beta（强烈推荐！简单地介绍了Skin part、state、skinClass的编写方法以及FXG语法，有范例） Overview of custom component changes in Adobe Flex 4 beta（自定义组件在Flex4中的改变） Spark layouts with Flex 4 beta（不了解Flex4新的布局机制的，看看这个吧） Enhanced States Syntax &#8211; Functional and Design &#8230;<p class="read-more"><a href="http://zengrong.net/post/789.htm">继续阅读 &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://zengrong.net/post/789.htm" title="了解Flex4中新的的Skin、CSS、Layout、NameSpace相关资料"></a><ol>
<li><a href="http://www.adobe.com/devnet/flex/articles/flex3and4_differences.html" target="_blank">Differences between Flex 3 and Flex 4 beta</a>（比较Flex3和Flex4的区别，很全面，值得一看）</li>
<li><a href="http://www.riahome.cn/?p=921" target="_blank">了解一下Flex 4里的fx、mx以及s命名空间</a></li>
<li><a href="http://www.adobe.com/devnet/flex/articles/flex4_skinning_05.html" target="_blank">Introducing skinning in Flex 4 beta</a>（强烈推荐！简单地介绍了Skin part、state、skinClass的编写方法以及FXG语法，有范例）</li>
<li><a href="http://www.adobe.com/newsletters/edge/august2009/articles/article4/index.html?trackingid=EVHFC" target="_blank">Overview of custom component changes in Adobe Flex 4 beta</a>（自定义组件在Flex4中的改变）</li>
<li><a href="http://www.adobe.com/devnet/flex/articles/spark_layouts.html" target="_blank">Spark layouts with Flex 4 beta</a>（不了解Flex4新的布局机制的，看看这个吧）</li>
<li><a href="http://opensource.adobe.com/wiki/display/flexsdk/Enhanced+States+Syntax" target="_blank">Enhanced States Syntax &#8211; Functional and Design Specification</a>（新的state使用方法详细介绍）	</li>
<li><a href="http://opensource.adobe.com/wiki/display/flexsdk/MXML+2009" target="_blank">MXML 2009 &#8211; Functional and Design Specification</a>（着重介绍了Flex4的Namespace、Declarations、Private、Library标签的用法，以及Flex4与Flex3之间的区别）</li>
<li><a href="http://www.hufkens.net/2009/06/flex-4-datagroup-and-itemrenderers/" target="_blank">Flex4:DataGroup and ItemRenderers</a></li>
<li><a href="http://www.insideria.com/2009/05/flex-4-custom-layouts.html" target="_blank">Flex 4 ＆ Custom Layouts</a>（Flex4与自定义布局，<a href="http://blog.csdn.net/lihe111/archive/2009/07/06/4325571.aspx" target="_blank">中文在这里</a>）</li>
</ol>
<p><span id="more-789"></span></p>
<h3>视频专题</h3>
<ol>
<li><a href="http://labs.adobe.com/technologies/flash/videos/flashcamp/lafferty/" target="_blank">视频：Flex4中的高级CSS</a></li>
<li><a href="http://labs.adobe.com/technologies/flash/videos/flashcamp/subra_ruehle/" target="_blank">视频：在Flex4中为组件和程序换肤</a></li>
<li><a href="http://labs.adobe.com/technologies/flashbuilder4/tutorials/">Learn to Use Flash Builder 4 and Flex 4 SDK</a>（Adobe Labs的教程，比较全面，由浅入深的涉及到Flex4的各个方面，有视频、有文章、有资源）</li>
<li><a href="http://labs.adobe.com/technologies/flash/videos/#flashcamp">Tutorial and Demonstration Videos</a>（视频教程集合，全面涉及Flex4的各个方面）</li>
</ol>
<h3>FXG专题</h3>
<ol>
<li><a href="http://www.adobe.com/newsletters/edge/august2009/articles/article1/index.html?trackingid=EVHEZ" target="_blank">Understanding FXG, a primer on Adobe&#8217;s new graphics file format</a>（了解FXG）</li>
<li><a href="http://opensource.adobe.com/wiki/display/flexsdk/FXG+1.0+Specification" target="_blank">FXG 1.0 &#8211; Functional and Design Specification</a>（FXG语法详细介绍）</li>
<li><a href="http://blog.sban.com.cn/2009/07/05/fxg-1-0-intro-1-basic-shape.html">FXG 1.0 Intro 1: Basic Shape</a></li>
<li><a href="http://blog.sban.com.cn/2009/07/05/fxg-1-0-intro-2-%E4%B8%87%E8%83%BD%E7%9A%84path.html" target="_blank">FXG 1.0 Intro 2: 万能的Path之一</a></li>
<li><a href="http://blog.sban.com.cn/2009/07/05/fxg-1-0-intro-3-%e4%b8%87%e8%83%bd%e7%9a%84path%e4%b9%8b%e4%ba%8c.html" title="FXG 1.0 Intro 3: 万能的Path之二" target="_blank">FXG 1.0 Intro 3: 万能的Path之二</a></li>
<li><a href="http://blog.sban.com.cn/2009/07/05/fxg-1-0-intro-4-stroke-and-fill.html" title="FXG 1.0 Intro 4: stroke and fill" target="_blank">FXG 1.0 Intro 4: stroke and fill</a></li>
<li><a href="http://blog.sban.com.cn/2009/07/05/fxg-1-0-intro-5-color-transform.html" title="FXG 1.0 Intro 5: Color Transform">FXG 1.0 Intro 5: Color Transform</a></li>
<li><a href="http://blog.sban.com.cn/2009/07/05/fxg-1-0-intro-6-bitmapimage-and-transform.html" title="FXG 1.0 Intro 6: BitmapImage and Transform" target="_blank">FXG 1.0 Intro 6: BitmapImage and Transform</a></li>
</ol>
<h3>组件专题</h3>
<ul>
<li><a href="http://blog.flexexamples.com/2009/06/21/creating-a-custom-halo-accordion-header-skin-in-flex-4/" target="_blank">Creating a custom Halo Accordion header skin in Flex 4</a>（如果你垂涎于Flex4提供的新的皮肤功能，但有必须使用老的Halo组件，那么可以看看将这篇文章。看看如何使用FXG来定义Halo组件的皮肤）</li>
</ul>
<h3>Effect专题</h3>
<ul>
<li><a href="http://www.adobe.com/devnet/flex/articles/flex4_effects_pt1.html" target="_blank">Effects in Adobe Flex 4 beta</a></li>
</ul>
<h3>DataGroup和虚拟化</h3>
<ol>
<li><a href="http://help.adobe.com/en_US/Flex/4.0/html/WS486D1976-E12C-4654-B330-3DF3B23614F6.html">Using virtualization with Spark DataGroup and SkinnableDataContainer</a>（在DataGroup和SkinnableDataContainer中使用虚拟化）</li>
<li><a href="http://www.insideria.com/2009/08/using-virtualized-layouts-and.html">Using Virtualized Layouts and DataGroups in Flex 4</a>（在Flex4中使用虚拟化布局）</li>
<li><a href="http://opensource.adobe.com/wiki/display/flexsdk/Spark+Virtualization">Spark Virtualization &#8211; Functional and Design Specification</a>（Spark组件中的虚拟化技术功能和设计说明）</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://zengrong.net/post/789.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex4 中有哪些出色的新特性？</title>
		<link>http://zengrong.net/post/787.htm</link>
		<comments>http://zengrong.net/post/787.htm#comments</comments>
		<pubDate>Wed, 02 Sep 2009 16:22:56 +0000</pubDate>
		<dc:creator>zrong</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[FXG]]></category>
		<category><![CDATA[Layout]]></category>
		<category><![CDATA[spark]]></category>

		<guid isPermaLink="false">http://www.zengrong.net/?p=787</guid>
		<description><![CDATA[<a href="http://zengrong.net/post/787.htm" title="Flex4 中有哪些出色的新特性？"></a>文中介绍了Flex4的命名空间（namespaces）、FXG、布局（layout）、状态（state）和新的mxml标记（如fx:Declarations、fx:Definition、fx:Library等），值得一看。 译文：http://blog.csdn.net/lihe111/archive/2009/08/10/4431579.aspx 原文：http://www.sitepoint.com/article/whats-new-flex-4/]]></description>
			<content:encoded><![CDATA[<a href="http://zengrong.net/post/787.htm" title="Flex4 中有哪些出色的新特性？"></a><p>文中介绍了Flex4的命名空间（namespaces）、FXG、布局（layout）、状态（state）和新的mxml标记（如<a href="http://livedocs.adobe.com/flex/gumbo/langref/mxml-tag-detail.html" target="_blank">fx:Declarations、fx:Definition、fx:Library</a>等），值得一看。<br />
译文：<a href="http://blog.csdn.net/lihe111/archive/2009/08/10/4431579.aspx" target="_blank">http://blog.csdn.net/lihe111/archive/2009/08/10/4431579.aspx</a><br />
原文：<a href="http://www.sitepoint.com/article/whats-new-flex-4/" target="_blank">http://www.sitepoint.com/article/whats-new-flex-4/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://zengrong.net/post/787.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在Flash CS3中进行版面管理</title>
		<link>http://zengrong.net/post/352.htm</link>
		<comments>http://zengrong.net/post/352.htm#comments</comments>
		<pubDate>Mon, 13 Aug 2007 05:30:39 +0000</pubDate>
		<dc:creator>zrong</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Layout]]></category>
		<category><![CDATA[Library]]></category>

		<guid isPermaLink="false">http://www.zengrong.net/?p=352</guid>
		<description><![CDATA[<a href="http://zengrong.net/post/352.htm" title="在Flash CS3中进行版面管理"></a>Flex对版面的自动管理功能相当强大，在网页中，Flex程序会自动适应页面的更改，始终保持最大化显示，如果网页太小不能容纳程序的所有界面，就会自动出现滚动条。这样的效果，在Flash中只能自己手动写代码完成。 现在不必了，不信？下面这个例子是一个senocular.com提供的版面管理类，源码可以在这里下载: Layout.zip 当然，还有一些例子可以看： StageResize ScalingForm DynamicLayout 文档: Layout LayoutManager LayoutConstraint 
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_LayoutWindows_1249712796"
			class="flashmovie"
			width="550"
			height="400">
	<param name="movie" value="http://www.senocular.com/demo/Layout/LayoutWindows.swf" />
	<param name="menu" value="false" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.senocular.com/demo/Layout/LayoutWindows.swf"
			name="fm_LayoutWindows_1249712796"
			width="550"
			height="400">
		<param name="menu" value="false" />
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>]]></description>
			<content:encoded><![CDATA[<a href="http://zengrong.net/post/352.htm" title="在Flash CS3中进行版面管理"></a><p>Flex对版面的自动管理功能相当强大，在网页中，Flex程序会自动适应页面的更改，始终保持最大化显示，如果网页太小不能容纳程序的所有界面，就会自动出现滚动条。这样的效果，在Flash中只能自己手动写代码完成。</p>
<p>现在不必了，不信？下面这个例子是一个<a href="http://www.senocular.com/" target="_blank">senocular.com</a>提供的版面管理类，源码可以在这里下载:</p>
<p><a href="http://www.senocular.com/demo/Layout/Layout.zip" target="_blank">Layout.zip</a></p>
<p><strong>当然，还有一些例子可以看：</strong></p>
<ul>
<li><a href="http://www.senocular.com/demo/Layout/examples/StageResize.html" target="_blank">StageResize</a></li>
<li><a href="http://www.senocular.com/demo/Layout/examples/ScalingForm.html" target="_blank">ScalingForm</a></li>
<li><a href="http://www.senocular.com/demo/Layout/examples/DynamicLayout.html" target="_blank">DynamicLayout</a></li>
</ul>
<p><strong>文档:</strong></p>
<ul>
<li><a href="http://www.senocular.com/demo/Layout/documentation/Layout.html" target="_blank">Layout</a></li>
<li><a href="http://www.senocular.com/demo/Layout/documentation/LayoutManager.html" target="_blank">LayoutManager</a></li>
<li><a href="http://www.senocular.com/demo/Layout/documentation/LayoutConstraint.html" target="_blank">LayoutConstraint</a></li>
</ul>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_LayoutWindows_1582691855"
			class="flashmovie"
			width="550"
			height="400">
	<param name="movie" value="http://www.senocular.com/demo/Layout/LayoutWindows.swf" />
	<param name="menu" value="false" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.senocular.com/demo/Layout/LayoutWindows.swf"
			name="fm_LayoutWindows_1582691855"
			width="550"
			height="400">
		<param name="menu" value="false" />
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
]]></content:encoded>
			<wfw:commentRss>http://zengrong.net/post/352.htm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

