<?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>潔靜精微 &#187; flex</title>
	<atom:link href="http://julabs.me/blog/tags/flex/feed/" rel="self" type="application/rss+xml" />
	<link>http://julabs.me/blog</link>
	<description>想努力创造完美的东西，必须具备心灵的纯洁，同时富于宗教精神。</description>
	<lastBuildDate>Wed, 18 Jan 2012 06:34:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Flex4下的CSS规则</title>
		<link>http://julabs.me/blog/css-rule-flex4/</link>
		<comments>http://julabs.me/blog/css-rule-flex4/#comments</comments>
		<pubDate>Sun, 19 Dec 2010 13:48:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[flex4]]></category>

		<guid isPermaLink="false">http://julabs.me/blog/?p=345</guid>
		<description><![CDATA[在Flex4中提供了两套样式，一个是经典的Halo，另外就是新加的Spark。新的Spark组件比Halo更容易自定义样式，这对设计者来说是非常有益的，他们不必再为实现一个样式而写大量的代码了。下面来看一个实例，如有以下代码的一个mxml文件： &#60;?xml version=&#34;1.0&#34; encoding=&#34;utf-8&#34;?&#62; &#60;s:Application xmlns:fx=&#34;http://ns.adobe.com/mxml/2009&#34; xmlns:s=&#34;library://ns.adobe.com/flex/spark&#34; xmlns:mx=&#34;library://ns.adobe.com/flex/mx&#34;&#62; &#60;fx:Style&#62; @namespace s &#34;library://ns.adobe.com/flex/spark&#34;; @namespace mx &#34;library://ns.adobe.com/flex/mx&#34;; s&#124;Button { color: #0000FF; } mx&#124;Button { color: #FF0000; } .myStyle{ font-style: italic; } #myId{ font-size: 18; } &#60;/fx:Style&#62; &#60;s:Panel title=&#34;JuLabs.me Flex4 CSS Demo&#34; styleName=&#34;myStyle&#34; &#8230; <a href="http://julabs.me/blog/css-rule-flex4/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>在<a href="http://www.adobe.com/products/flashbuilder/" target="_blank">Flex4</a>中提供了两套样式，一个是经典的<strong>Halo</strong>，另外就是新加的<strong>Spark</strong>。新的<strong>Spark</strong>组件比<strong>Halo</strong>更容易自定义样式，这对设计者来说是非常有益的，他们不必再为实现一个样式而写大量的代码了。下面来看一个实例，如有以下代码的一个<strong>mxml</strong>文件：</p>
<pre><code class="xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;s:Application
 xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot;
 xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot;
 xmlns:mx=&quot;library://ns.adobe.com/flex/mx&quot;&gt;

	&lt;fx:Style&gt;
		@namespace s &quot;library://ns.adobe.com/flex/spark&quot;;
		@namespace mx &quot;library://ns.adobe.com/flex/mx&quot;;

		s|Button {
			color: #0000FF;
		}

		mx|Button {
			color: #FF0000;
		}

		.myStyle{
			font-style: italic;
		}
		#myId{
			font-size: 18;
		}
	&lt;/fx:Style&gt;

	&lt;s:Panel title=&quot;JuLabs.me Flex4 CSS Demo&quot; styleName=&quot;myStyle&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;

		&lt;s:layout&gt;
			&lt;s:VerticalLayout /&gt;
		&lt;/s:layout&gt;

		&lt;s:Button label=&quot;蓝色 spark 18号&quot; id=&quot;myId&quot; /&gt;

		&lt;mx:Button label=&quot;红色 halo 斜体&quot; styleName=&quot;myStyle&quot; /&gt;

	&lt;/s:Panel&gt;

&lt;/s:Application&gt;
</code></pre>
<p>在此例中<abbr title="Cascading Style Sheets">CSS</abbr>代码写在<strong>fx:Style</strong>标签里，<abbr title="Cascading Style Sheets">CSS</abbr>代码首先要申明命名空间，如下：</p>
<pre><code class="css">
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";
</code></pre>
<p>上面的代码把<strong>s</strong>指向了<strong>Spark</strong>，把<strong>mx</strong>指向了<strong>Halo</strong>。然后就可以写相应的<abbr title="Cascading Style Sheets">CSS</abbr>代码了，但在每个样式前面也要加上命名空间名称，子选择符也要加上。如：</p>
<p><span id="more-345"></span></p>
<pre><code class="css">
s|Button {
	color: #0000FF;
}
mx|Button {
	color: #FF0000;
}
</code></pre>
<p>上面的代码一个定义了<strong>Spark</strong>样式的蓝色<code>Button</code>，第二个定义了<strong>Halo</strong>样式的红色<code>Button</code>。如果在项目中只使用一种样式，那么也可以将这个样式定为默认样式。比如要将<strong>Spark</strong>定为默认样式，可以用下面的语句：</p>
<pre><code class="css">
@namespace "library://ns.adobe.com/flex/spark";
</code></pre>
<p>这样，在写<abbr title="Cascading Style Sheets">CSS</abbr>样式时就不用在每个选择符前面加<strong>s|</strong>了。
</p>
<p>如果是自定义的组件，可以用下面的语句：</p>
<pre><code class="css">
@namespace theme “me.julabs.theme.*”;
theme|Button {
	padding-left: 20;
}
</code></pre>
<p>上面的代码把<strong>theme</strong>指向自己定义的组件，这样就可以用<strong>theme|</strong>引用自定义的组件了。</p>
<p>也完全可以使用组件的<strong>styleName</strong>和<strong>id</strong>属性来设置它们的样式，这样也不需要在选择符前面加<strong>s|</strong>之类的命名空间名称。如下：</p>
<pre><code class="css">
.myStyle{
	font-style: italic;
}
#myId{
	font-size: 18;
}
</code></pre>
<p>这个例子里的<abbr title="Cascading Style Sheets">CSS</abbr>代码都是直接写在<strong>mxml</strong>文件中的<strong>fx:Style</strong>标签里的，这其实不符合大项目应用的。可以直接把<abbr title="Cascading Style Sheets">CSS</abbr>代码单独保存为一个文件，比如：<strong>style.css</strong>，用<strong>fx:Style</strong>的<strong>source</strong>属性来指向这个文件，这样就可以实现结构和样式分离的原则。如：</p>
<pre><code class="xml">&lt;fx:Style source="style.css" /&gt;</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://julabs.me/blog/css-rule-flex4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>两个学习Flash的网站</title>
		<link>http://julabs.me/blog/website-for-lean-flash/</link>
		<comments>http://julabs.me/blog/website-for-lean-flash/#comments</comments>
		<pubDate>Sat, 19 Jun 2010 23:17:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[学习]]></category>

		<guid isPermaLink="false">http://julabs.me/blog/?p=219</guid>
		<description><![CDATA[wonderfl 这是日本人建的一个网站，与众不同的是它直接展示源代码，旁边就显示效果，非常直观。这里有大量的人员发布他们的代码，有很多非常有创意的想法与技巧。 gotoAndLearn 这个网站不仅提供源文件下载，还会以视频的形式教授整个制做过程，是个难得可贵的教学网站。所教内容包括Flash，Flex以及AIR。]]></description>
			<content:encoded><![CDATA[<h4><a href="http://wonderfl.net/" target="_blank">wonderfl</a></h4>
<p class="img"><a href="http://wonderfl.net/" target="_blank"><img width="500" height="298" alt="wonderfl" src="/blog/img/10/wonderfl.jpg" /></a></p>
<p>这是日本人建的一个网站，与众不同的是它直接展示源代码，旁边就显示效果，非常直观。这里有大量的人员发布他们的代码，有很多非常有创意的想法与技巧。</p>
<h4><a href="http://www.gotoandlearn.com/" target="_blank">gotoAndLearn</a></h4>
<p class="img"><a href="http://www.gotoandlearn.com/" target="_blank"><img width="475" height="242" alt="gotoAndLearn" src="/blog/img/10/gotoandlearn.jpg" /></a></p>
<p>这个网站不仅提供源文件下载，还会以视频的形式教授整个制做过程，是个难得可贵的教学网站。所教内容包括<a href="http://www.adobe.com/products/flash/" target="_blank">Flash</a>，<a href="http://www.adobe.com/products/flex/" target="_blank">Flex</a>以及<a href="http://www.adobe.com/products/air/" target="_blank">AIR</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://julabs.me/blog/website-for-lean-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用Flashbug调试Flash</title>
		<link>http://julabs.me/blog/debug-flash-with-flashbug/</link>
		<comments>http://julabs.me/blog/debug-flash-with-flashbug/#comments</comments>
		<pubDate>Sat, 19 Jun 2010 00:52:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://julabs.me/blog/?p=217</guid>
		<description><![CDATA[Flashbug是一款基于FireBug的火狐插件，这给利用Flex SDK开发程序的人带来了便利。以前只能用FDB命令行来调试，现在有了Flashbug就更直观了。 安装Flashbug也非常方便,不过要先给火狐安装FireBug插件，还得给火狐安装Debug版本的Flash播放器。 在实际操作中还要注意两点： 一、在编译生成swf文件时，要输出成debug版本的文件，如下命令： D:\flex4\bin\mxmlc.exe -debug=true --strict=true main.mxml 注意里面-debug=true，加了这一段就能输出debug版本的swf文件。 二、要把生成的swf文件嵌入到HTML文件中，不能用浏览器直接打开swf文件，否则Flashbug会失效。 Flashbug的使用很简单，打开FireBug，切换到Flash Console标签，在Trace Log里就能看到在Flash文件中通过trace方法输出的信息，还能查看Shared Objects的信息。 但Flashbug只能输出字符串信息，当要输出类型为Object对象的信息时，它只会输出[object Object]。如果仍然想查看Object对象的信息，就要用到ActionScript中的ExternalInterface方法，通过这个方法来调用FireBug的console.log命令，输出对象的信息，这和调试JavaScript的方式是一样的。下面为实例代码： var newObj:Object = new Object(); newObj.url = 'julabs.me'; flash.external.ExternalInterface.call("console.log",newObj); flash.external.ExternalInterface.call("console.log",['aa','bbb','ccc']); Flashbug一个非常有用的功能就是能够查看AMF信息，查看方法和AJAX的方法一样，在FireBug中切换到网络标签，在所有栏中查找Flash请求的地址。点击这个地址，你会发现下面多出了一个AMF标签，点击它就能查看AMF信息了。如下图所示： 另外还有一个基于FireBug的插件——FlashFirebug，功能更强大，但使用比较复杂。]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.coursevector.com/flashbug" target="_blank">Flashbug</a>是一款基于<a href="http://getfirebug.com/" target="_blank">FireBug</a>的<a href="http://www.mozillaonline.com/" target="_blank">火狐</a>插件，这给利用<a href="http://www.adobe.com/products/flex/" target="_blank">Flex SDK</a>开发程序的人带来了便利。以前只能用<strong>FDB</strong>命令行来调试，现在有了<strong>Flashbug</strong>就更直观了。</p>
<p>安装<a href="http://blog.coursevector.com/flashbug" target="_blank">Flashbug</a>也非常方便,不过要先给<a href="http://www.mozillaonline.com/" target="_blank">火狐</a>安装<a href="http://getfirebug.com/" target="_blank">FireBug</a>插件，还得给<a href="http://www.mozillaonline.com/" target="_blank">火狐</a>安装<a href="http://www.adobe.com/support/flashplayer/downloads.html" target="_blank">Debug版本的Flash播放器</a>。</p>
<p>在实际操作中还要注意两点：</p>
<p>一、在编译生成<strong>swf</strong>文件时，要输出成<strong>debug</strong>版本的文件，如下命令：</p>
<pre><code class="dos">D:\flex4\bin\mxmlc.exe -debug=true --strict=true main.mxml</code></pre>
<p>注意里面<strong>-debug=true</strong>，加了这一段就能输出<strong>debug</strong>版本的<strong>swf</strong>文件。</p>
<p>二、要把生成的<strong>swf</strong>文件嵌入到HTML文件中，不能用浏览器直接打开<strong>swf</strong>文件，否则<a href="http://blog.coursevector.com/flashbug" target="_blank">Flashbug</a>会失效。</p>
<p><a href="http://blog.coursevector.com/flashbug" target="_blank">Flashbug</a>的使用很简单，打开<a href="http://getfirebug.com/" target="_blank">FireBug</a>，切换到<strong>Flash Console</strong>标签，在<strong>Trace Log</strong>里就能看到在Flash文件中通过<code>trace</code>方法输出的信息，还能查看<strong>Shared Objects</strong>的信息。</p>
<p class="img"><img width="486" height="116" alt="Flashbug" src="/blog/img/10/flashbug01.jpg" /></p>
<p><span id="more-217"></span></p>
<p>但<a href="http://blog.coursevector.com/flashbug" target="_blank">Flashbug</a>只能输出字符串信息，当要输出类型为<strong>Object</strong>对象的信息时，它只会输出<strong>[object Object]</strong>。如果仍然想查看<strong>Object</strong>对象的信息，就要用到<strong>ActionScript</strong>中的<strong>ExternalInterface</strong>方法，通过这个方法来调用<a href="http://getfirebug.com/" target="_blank">FireBug</a>的<strong>console.log</strong>命令，输出对象的信息，这和调试<strong>JavaScript</strong>的方式是一样的。下面为实例代码：</p>
<pre><code class="java">var newObj:Object = new Object();
newObj.url = 'julabs.me';
flash.external.ExternalInterface.call("console.log",newObj);
flash.external.ExternalInterface.call("console.log",['aa','bbb','ccc']);
</code></pre>
<p class="img"><img width="433" height="102" alt="debug flash with firebug" src="/blog/img/10/flashbug02.jpg" /></p>
<p><a href="http://blog.coursevector.com/flashbug" target="_blank">Flashbug</a>一个非常有用的功能就是能够查看<acronym title="Action Message Format">AMF</acronym>信息，查看方法和<acronym title="Asynchronous JavaScript and XML">AJAX</acronym>的方法一样，在<a href="http://getfirebug.com/" target="_blank">FireBug</a>中切换到<strong>网络</strong>标签，在<strong>所有</strong>栏中查找Flash请求的地址。点击这个地址，你会发现下面多出了一个<strong>AMF</strong>标签，点击它就能查看<strong>AMF</strong>信息了。如下图所示：</p>
<p class="img"><img width="500" height="323" alt="flashbug" src="/blog/img/10/flashbug03.jpg" /></p>
<p>另外还有一个基于FireBug的插件——<a href="http://www.o-minds.com/products/flashfirebug" target="_blank">FlashFirebug</a>，功能更强大，但使用比较复杂。</p>
]]></content:encoded>
			<wfw:commentRss>http://julabs.me/blog/debug-flash-with-flashbug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex获得使用内存数</title>
		<link>http://julabs.me/blog/get-memory-in-flex/</link>
		<comments>http://julabs.me/blog/get-memory-in-flex/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 14:20:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[内存]]></category>

		<guid isPermaLink="false">http://julabs.me/blog/?p=147</guid>
		<description><![CDATA[《AdvancED Flex 3》中有一段讲述获得Flex运行时所占用的内存数，里面使用了一个系统属性： flash.system.System.totalMemory 这个属性能够获得系统分给Flash Player的内存总数量，而不仅仅是此应用（application）所占用的内存数量。所以通过flash.system.System.totalMemory获得的数值会大于应用（application）所占用的内存数量。这里给出书中所举的例子： &#60;?xml version=&#34;1.0&#34; encoding=&#34;utf-8&#34;?&#62; &#60;mx:Application xmlns:mx=&#34;http://www.adobe.com/2006/mxml&#34; initialize=&#34;initTimer()&#34;&#62; &#60;mx:Script&#62; &#60;![CDATA[ import flash.utils.Timer; import flash.events.TimerEvent; [Bindable] public var time:Number=0; [Bindable] public var totmem:Number=0; public function initTimer():void{ var myTimer:Timer=new Timer(1000,0); myTimer.addEventListener(&#34;timer&#34;,timerHandler); myTimer.start(); } public function timerHandler(event:TimerEvent):void{ time=getTimer(); totmem=flash.system.System.totalMemory; &#8230; <a href="http://julabs.me/blog/get-memory-in-flex/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.friendsofed.com/book.html?isbn=9781430210276" target="_blank">《AdvancED Flex 3》</a>中有一段讲述获得Flex运行时所占用的内存数，里面使用了一个系统属性：</p>
<pre><code class="java">flash.system.System.totalMemory</code></pre>
<p>这个属性能够获得系统分给Flash Player的内存总数量，而不仅仅是此应用（application）所占用的内存数量。所以通过<code>flash.system.System.totalMemory</code>获得的数值会大于应用（application）所占用的内存数量。这里给出书中所举的例子：</p>
<pre><code class="xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;mx:Application xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; initialize=&quot;initTimer()&quot;&gt;
	&lt;mx:Script&gt;
	&lt;![CDATA[
		import flash.utils.Timer;
		import flash.events.TimerEvent;

		[Bindable]
		public var time:Number=0;

		[Bindable]
		public var totmem:Number=0;

		public function initTimer():void{

		var myTimer:Timer=new Timer(1000,0);
		myTimer.addEventListener(&quot;timer&quot;,timerHandler);
		myTimer.start();

		}

		public function timerHandler(event:TimerEvent):void{

		time=getTimer();
		totmem=flash.system.System.totalMemory;

		}

	]]&gt;
	&lt;/mx:Script&gt;

	&lt;mx:Form&gt;

	&lt;mx:FormItem label=&quot;Time:&quot;&gt;
		&lt;mx:Label text=&quot;{time}&quot; /&gt;
	&lt;/mx:FormItem&gt;

	&lt;mx:FormItem label=&quot;Total Memory:&quot;&gt;
		&lt;mx:Label text=&quot;{totmem} bytes&quot; /&gt;
	&lt;/mx:FormItem&gt;

	&lt;/mx:Form&gt;
&lt;/mx:Application&gt;
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://julabs.me/blog/get-memory-in-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Flex 2: Training from the Source</title>
		<link>http://julabs.me/blog/adobe-flex-2-training-from-the-source/</link>
		<comments>http://julabs.me/blog/adobe-flex-2-training-from-the-source/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 09:32:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[source]]></category>

		<guid isPermaLink="false">http://julabs.me/blog/?p=91</guid>
		<description><![CDATA[《Adobe Flex 2: Training from the Source》是一本Adobe Flex的入门书，内容循序渐进，从基本控件到与后台交互，都有详细的讲述，是本很不错的教程。它的源文件可以从Adobe官网上下载，点这里到源文件下载页面。虽然只有11、16、20、21四章的源文件下载，但全书所需要的相关图片，类文件基本上都有了。 下载页面还提供样章试读，不过觉得没多大用，它的完整电子版可以从网上下载，搜下就可以了。]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.adobe.com/devnet/flex/articles/tfs_excerpts.html" target="_blank">《Adobe Flex 2: Training from the Source》</a>是一本<strong>Adobe Flex</strong>的入门书，内容循序渐进，从基本控件到与后台交互，都有详细的讲述，是本很不错的教程。它的源文件可以从<a href="http://www.adobe.com/" target="_blank">Adobe</a>官网上下载，点<a href="http://www.adobe.com/devnet/flex/articles/tfs_excerpts.html" target="_blank">这里</a>到源文件下载页面。虽然只有11、16、20、21四章的源文件下载，但全书所需要的相关图片，类文件基本上都有了。</p>
<p><a href="http://www.adobe.com/devnet/flex/articles/tfs_excerpts.html" target="_blank">下载页面</a>还提供样章试读，不过觉得没多大用，它的完整电子版可以从网上下载，搜下就可以了。</p>
]]></content:encoded>
			<wfw:commentRss>http://julabs.me/blog/adobe-flex-2-training-from-the-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex皮肤样式网站</title>
		<link>http://julabs.me/blog/flex-theme-scalenine/</link>
		<comments>http://julabs.me/blog/flex-theme-scalenine/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 08:24:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[样式]]></category>
		<category><![CDATA[皮肤]]></category>

		<guid isPermaLink="false">http://julabs.me/blog/?p=50</guid>
		<description><![CDATA[scalenine网站可能几乎所有的Flexer都知道，她是Flex皮肤样式的一个资源站，里面有很多精美的实例供人下载研究学习，参考价值非常大，从他们的的作品中就可以看到。 单个界面设计上就可以感受到设计人员对待作品的感情，界面设计地非常精细到位，细节把握地很好，没有敷衍之感。国人不应该仅仅学习他们的的设计技术，更应该学习他们的这种设计精神。]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.scalenine.com/" target="_blank">scalenine</a>网站可能几乎所有的Flexer都知道，她是<a href="http://www.adobe.com/products/flex/" target="_blank">Flex</a>皮肤样式的一个资源站，里面有很多精美的实例供人下载研究学习，参考价值非常大，从他们的的作品中就可以看到。</p>
<p>单个界面设计上就可以感受到设计人员对待作品的感情，界面设计地非常精细到位，细节把握地很好，没有敷衍之感。国人不应该仅仅学习他们的的设计技术，更应该学习他们的这种设计精神。</p>
<p class="img"><a href="http://www.scalenine.com/" target="_blank"><img src="/blog/img/09/scalenine_list.png" alt="scalenine gallery" width="478" height="390" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://julabs.me/blog/flex-theme-scalenine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>flex接收flashvars参数值</title>
		<link>http://julabs.me/blog/flex-get-flashvars/</link>
		<comments>http://julabs.me/blog/flex-get-flashvars/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 08:18:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[flashvars]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://julabs.me/blog/?p=44</guid>
		<description><![CDATA[flex接收flashvars的方法和flash不一样,在flash中是用“root.loaderInfo.parameters”或“stage.loaderInfo.parameters”来取得传递的参数，而在flex中则要用“Application.application.parameters”来取得。看下面的代码，我们将利用“Application.application.parameters”的方法来取得flashvars传递过来的两个参数：myName和myHometown。 &#60;?xml version=&#34;1.0&#34; encoding=&#34;utf-8&#34;?&#62; &#60;mx:Application xmlns:mx=&#34;http://www.adobe.com/2006/mxml&#34; creationComplete=&#34;initVars()&#34;&#62; &#60;mx:Script&#62; &#60;![CDATA[ // Declare bindable properties in Application scope. [Bindable] public var myName:String; [Bindable] public var myHometown:String; // Assign values to new properties. private function initVars():void { myName = Application.application.parameters.myName; myHometown = Application.application.parameters.myHometown; &#8230; <a href="http://julabs.me/blog/flex-get-flashvars/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>flex接收flashvars的方法和flash不一样,在flash中是用“root.loaderInfo.parameters”或“stage.loaderInfo.parameters”来取得传递的参数，而在flex中则要用“Application.application.parameters”来取得。看下面的代码，我们将利用“Application.application.parameters”的方法来取得flashvars传递过来的两个参数：myName和myHometown。</p>
<pre><code class="xml">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;mx:Application xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; creationComplete=&quot;initVars()&quot;&gt;
&lt;mx:Script&gt;
&lt;![CDATA[
	// Declare bindable properties in Application scope.
	[Bindable]
	public var myName:String;
	[Bindable]
	public var myHometown:String;

	// Assign values to new properties.
	private function initVars():void {
	myName = Application.application.parameters.myName;
	myHometown = Application.application.parameters.myHometown;
	}
]]&gt;
&lt;/mx:Script&gt;
&lt;mx:VBox&gt;
	&lt;mx:HBox&gt;
		&lt;mx:Label text=&quot;Name: &quot;/&gt;
		&lt;mx:Label text=&quot;{myName}&quot; fontWeight=&quot;bold&quot;/&gt;
	&lt;/mx:HBox&gt;
	&lt;mx:HBox&gt;
		&lt;mx:Label text=&quot;Hometown: &quot;/&gt;
		&lt;mx:Label text=&quot;{myHometown}&quot; fontWeight=&quot;bold&quot;/&gt;
	&lt;/mx:HBox&gt;
&lt;/mx:VBox&gt;
&lt;/mx:Application&gt;
</code></pre>
<p>下面是网页代码，可以看下效果：</p>
<p><span id="more-44"></span></p>
<pre><code class="html">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; style=&quot;width:100%;height:100%;margin:0;padding:0;&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=gb2312&quot; /&gt;
&lt;title&gt;julabs flex接收flashvar参数值&lt;/title&gt;
&lt;/head&gt;
&lt;body style=&quot;width:100%;height:100%;margin:0;padding:0;&quot;&gt;
&lt;div style=&quot;width:100%;height:100%;margin:0;padding:0;&quot;&gt;
&lt;object classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot;
codebase=&quot;http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,79,0&quot;
width=&quot;100%&quot;
height=&quot;100%&quot;
id=&quot;FlashMovie&quot;
align=&quot;middle&quot;&gt;
&lt;param name=&quot;allowScriptAccess&quot; value=&quot;sameDomain&quot; /&gt;
&lt;param name=&quot;FlashVars&quot; value=&quot;myName=julabs&amp;amp;myHometown=china&quot; /&gt;
&lt;param name=&quot;movie&quot; value=&quot;/blog/demo/getflashvarsinflex.swf&quot; /&gt;
&lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
&lt;param name=&quot;bgcolor&quot; value=&quot;#ffffff&quot; /&gt;
&lt;embed src=&quot;/blog/demo/getflashvarsinflex.swf&quot; FlashVars=&quot;myName=julabs&amp;amp;myHometown=china&quot; quality=&quot;high&quot; bgcolor=&quot;#ffffff&quot; width=&quot;100%&quot; height=&quot;100%&quot; NAME=&quot;FlashMovie&quot; align=&quot;middle&quot; allowScriptAccess=&quot;sameDomain&quot; type=&quot;application/x-shockwave-flash&quot; swLiveConnect=&quot;true&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot; /&gt;
&lt;/object&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<p>其中需要注意的是如果你想在火狐和Opera中也能正常使用这项功能的话一定要在网页中的flash代码中使用“embed”标签，并且一定要在“embed”标签加入“FlashVars”参数的值，否则在火狐和Opera中就取得不到“FlashVars”所传递的值。当然用<a href="http://code.google.com/p/swfobject/" class="_blank" title="swfobject">swfobject</a>向Flash中写入“FlashVars”值是最简单的方法了，详细请查看<a href="http://farthinker.cn/2007/12/27/swfobject-2_0-doc-translation/" class="_blank">《翻译：SWFOBJECT 2.0官方文档》</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://julabs.me/blog/flex-get-flashvars/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JS与Flex交互的几点注意事项</title>
		<link>http://julabs.me/blog/flex-addcallback-notice/</link>
		<comments>http://julabs.me/blog/flex-addcallback-notice/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 08:05:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[addcallback]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://julabs.me/blog/?p=38</guid>
		<description><![CDATA[这段时间要做一个需要JS与Flex交互的页面，但在制做过程中不停地出现错误，查了很多资料，自己也在不断地摸索尝试各种方法，得出了一些需要注意的问题。 一，在Flex中，addCallack所输出供给JS调用的函数名称不能与JS中己有的函数名称相重复，如下所示: ExternalInterface.addCallback("play",callThis); 上面这一句在IE中就发生错误，因为“play”这个函数名称已经被分配给DOM元素了，改一个名字就可以了，如下就正确了。 ExternalInterface.addCallback("MyPlay",callThis); 二，在向页面中嵌入swf文件时，要用Adobe的官方JS文件或者版本为2.+的SWFOBJECT。 Adobe的官方JS文件就是AC_OETags.js文件,如果你用的是Flex SDK，可以在Flex SDK安装目录下的templates文件夹中找。在用AC_OETags.js文件时,请把下面这段代码加入到页面中: function getMovie(movieName){ if (navigator.appName.indexOf("Microsoft")!=-1){ return window[movieName]; }else{ return document[movieName]; } } 用下面的代码调用Flex中的命令: getMovie('MyFlex').MyPlay(); 如果使用的是SWFOBJECT，请使用2.0或2.0以上的版本，使用方法可以查看《翻译：SWFOBJECT 2.0官方文档》，然后使用如下语句调用Flex中的命令： swfobject.getObjectById("MyFlex").MyPlay(); 查看演示请点击这里。mxml文件代码如下 ： &#60;?xml version="1.0" encoding="utf-8"?&#62; &#60;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" applicationComplete="init();" layout="vertical" verticalAlign="middle" horizontalAlign="center"&#62; &#60;mx:Script&#62; &#60;![CDATA[ import flash.events.MouseEvent; &#8230; <a href="http://julabs.me/blog/flex-addcallback-notice/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>这段时间要做一个需要JS与Flex交互的页面，但在制做过程中不停地出现错误，查了很多资料，自己也在不断地摸索尝试各种方法，得出了一些需要注意的问题。</p>
<h4>一，在Flex中，addCallack所输出供给JS调用的函数名称不能与JS中己有的函数名称相重复，如下所示:</h4>
<pre><code class="java">ExternalInterface.addCallback("play",callThis);</code></pre>
<p>上面这一句在IE中就发生错误，因为“play”这个函数名称已经被分配给DOM元素了，改一个名字就可以了，如下就正确了。</p>
<pre><code class="java">ExternalInterface.addCallback("MyPlay",callThis);</code></pre>
<h4>二，在向页面中嵌入swf文件时，要用Adobe的官方JS文件或者版本为2.+的SWFOBJECT。</h4>
<p>Adobe的官方JS文件就是<strong>AC_OETags.js文件</strong>,如果你用的是Flex SDK，可以在Flex SDK安装目录下的templates文件夹中找。在用<strong>AC_OETags.js文件</strong>时,请把下面这段代码加入到页面中:</p>
<pre><code class="java">
function getMovie(movieName){
	if (navigator.appName.indexOf("Microsoft")!=-1){
		return window[movieName];
	}else{
		return document[movieName];
	}
}
</code></pre>
<p>用下面的代码调用Flex中的命令:</p>
<pre><code class="java">
getMovie('MyFlex').MyPlay();
</code></pre>
<p>如果使用的是SWFOBJECT，请使用2.0或2.0以上的版本，使用方法可以查看<a href="http://farthinker.cn/2007/12/27/swfobject-2_0-doc-translation/" target="_blank">《翻译：SWFOBJECT 2.0官方文档》</a>，然后使用如下语句调用Flex中的命令：</p>
<pre><code class="java">
swfobject.getObjectById("MyFlex").MyPlay();
</code></pre>
<p>查看<a href="/blog/demo/addCallBack.html" target="_blank">演示请点击这里</a>。mxml文件代码如下 ：</p>
<pre><code class="xml">
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" applicationComplete="init();" layout="vertical" verticalAlign="middle" horizontalAlign="center"&gt;
&lt;mx:Script&gt;
&lt;![CDATA[
import flash.events.MouseEvent;
import flash.external.ExternalInterface;

public function init():void{
	btn.addEventListener(MouseEvent.CLICK, btnClick);
	ExternalInterface.addCallback("jsCallFlex",callThis);
}

public function btnClick(evt:MouseEvent):void{
	ExternalInterface.call("alert","Flex调用JS方法!");
}

public function callThis():void{
	mx.controls.Alert.show('JS调用Flex内部方法!');
}
]]&gt;
&lt;/mx:Script&gt;
&lt;mx:Button label="点击这里" id="btn" /&gt;
&lt;/mx:Application&gt;</code></pre>
<p>html文件代码如下：</p>
<p><span id="more-38"></span></p>
<pre><code class="html">
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;head&gt;
&lt;title&gt;AddCallBack几个bug的解决方法&lt;/title&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;
&lt;meta http-equiv="Content-Language" content="zh-CN" /&gt;
&lt;script type="text/javascript" src="swfobject.js"&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div style="text-align:center;"&gt;
&lt;div&gt;
&lt;object id="flexApp" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="500" height="320"&gt;
	&lt;param name="movie" value="addCallBack.swf" /&gt;
	&lt;!--[if !IE]&gt;--&gt;
	&lt;object type="application/x-shockwave-flash" data="addCallBack.swf" width="500" height="320"&gt;
	&lt;!--&lt;![endif]--&gt;
	&lt;div&gt;
	&lt;h1&gt;Alternative content&lt;/h1&gt;
	&lt;p&gt;&lt;a href="http://www.adobe.com/go/getflashplayer"&gt;&lt;img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /&gt;&lt;/a&gt;&lt;/p&gt;
	&lt;/div&gt;
	&lt;!--[if !IE]&gt;--&gt;
	&lt;/object&gt;
	&lt;!--&lt;![endif]--&gt;
	&lt;/object&gt;
	&lt;/div&gt;
&lt;p&gt;&lt;input type="button" value="点击这里" id="myBtn" /&gt;&lt;/p&gt;&lt;/div&gt;
&lt;script type="text/javascript"&gt;
//&lt;![CDATA[
swfobject.registerObject("flexApp", "9.0.0", "expressInstall.swf");

document.getElementById('myBtn').onclick=function(){
	var obj = swfobject.getObjectById("flexApp");
	if(obj){
	obj.jsCallFlex();
	}
};
//]]&gt;
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;
</code></pre>
<h4>三，Flex中调用“init()”语句的命令最好放在“applicationComplete”中。</h4>
<p>即mxml文件代码中的第二行:</p>
<pre><code class="xml">
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" applicationComplete="init();" layout="vertical" verticalAlign="middle" horizontalAlign="center"&gt;
</code></pre>
<p>因为有时JS调用Flex的命令中需要用到Flex的组件做出反应，如果用<strong>creationComplete</strong> 调用“init()”有可能会发错，所以最好是用<strong>applicationComplete</strong>。<strong>creationComplete</strong>是在组件定义完成并已经在显示列表时触发，而<strong>applicationComplete</strong>是在所有的组件初始化完成并显示时触发。关于此方面的更多详情请查看<a href="http://space.actionscript3.cn/html/33/2333-147.html" target="_blank">Flex Application 初始化顺序</a>。</p>
<h4>四，注意页面文件编码格式</h4>
<p>即文件的encoding类型，这个本来不算问题的,但却让我碰到了，文件编码格式不对称有时在IE中显示不了内容。</p>
]]></content:encoded>
			<wfw:commentRss>http://julabs.me/blog/flex-addcallback-notice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex获得url传递的参数值</title>
		<link>http://julabs.me/blog/flex-get-url/</link>
		<comments>http://julabs.me/blog/flex-get-url/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 07:54:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[url]]></category>

		<guid isPermaLink="false">http://julabs.me/blog/?p=27</guid>
		<description><![CDATA[在Flex中要获得url传递的参数值时，分两种情况： 第一种，如果是在浏览器直接打开swf文件，如下所示: http://www.example.com/example.swf?name=value 上面这种情况下可以直接使用this.parameters.name这种方式在flex里面取url参数。 第二种，如果是要在一个包含swf文件的html页面中获得参数值，如下所示: 这时取得url参数就相对要麻烦点，在网上找了些方法，觉得还是jexchen的方法最方便，详细请看:《Flex程序如何获取html容器传递的URL参数值》。 我把他的代码稍微改了点,可以用表格的方式直接看url参数。 &#60;?xml version="1.0" encoding="utf-8"?&#62; &#60;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init();" verticalAlign="middle" horizontalAlign="center"&#62; &#60;mx:Script&#62; &#60;![CDATA[ import mx.collections.ArrayCollection; [Bindable] public var dp:ArrayCollection = new ArrayCollection(); private function init():void{ var myStr:String=ExternalInterface.call("window.location.search.substring",1); if(myStr){ var pairs:Array = myStr.split("&#38;"); for(var i:uint=0;i&#60; pairs.length;i++){ &#8230; <a href="http://julabs.me/blog/flex-get-url/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>在Flex中要获得url传递的参数值时，分两种情况：</p>
<h4>第一种，如果是在浏览器直接打开swf文件，如下所示:</h4>
<p><a href="#">http://www.example.com/example.swf?name=value</a></p>
<p>上面这种情况下可以直接使用this.parameters.name这种方式在flex里面取url参数。</p>
<h4>第二种，如果是要在一个包含swf文件的html页面中获得参数值，如下所示:</h4>
<p>这时取得url参数就相对要麻烦点，在网上找了些方法，觉得还是<a href="http://www.jexchen.com" target="_blank">jexchen</a>的方法最方便，详细请看:<a href="http://www.jexchen.com/?p=18" target="_blank">《Flex程序如何获取html容器传递的URL参数值》</a>。</p>
<p>我把他的代码稍微改了点,可以用表格的方式直接看url参数。</p>
<pre><code class="xml">
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init();" verticalAlign="middle" horizontalAlign="center"&gt;
	&lt;mx:Script&gt;
	&lt;![CDATA[
		import mx.collections.ArrayCollection;
		[Bindable]
		public var dp:ArrayCollection = new ArrayCollection();

		private function init():void{
			var myStr:String=ExternalInterface.call("window.location.search.substring",1);
			if(myStr){
				var pairs:Array = myStr.split("&amp;");
				for(var i:uint=0;i&lt; pairs.length;i++){
					var pos:int = pairs[i].indexOf("=");
					if(pos != -1){
						var argname:String = pairs[i].substring(0, pos);
						var value:String = pairs[i].substring(pos+1);
						var myObj:Object=new Object();
						myObj['name']=pairs[i].substring(0, pos);
						myObj['value']=pairs[i].substring(pos+1);
						dp.addItem(myObj);
					}
				}
			}
		}
	]]&gt;
	&lt;/mx:Script&gt;

	&lt;mx:DataGrid dataProvider="{dp}"&gt;
	&lt;mx:columns&gt;
		&lt;mx:DataGridColumn dataField="name" headerText="Name" /&gt;
		&lt;mx:DataGridColumn dataField="value" headerText="Value" /&gt;
	&lt;/mx:columns&gt;

	&lt;/mx:DataGrid&gt;
&lt;/mx:Application&gt;
</code></pre>
<p>演示:<a href="/blog/demo/flexgeturl.html?web=julabs&amp;name=resun&amp;message=welcome" target="_blank">请点击这里</a>。<a href="http://www.jexchen.com" target="_blank">jexchen</a>现在又找到一个用<a href="http://blog.deconcept.com/swfobject/" target="_blank">SWFObject</a>的新方法来获得url参数值，可以参看<a href="http://www.jexchen.com/?p=27" target="_blank">《再谈：Flex程序如何获取html容器传递的URL参数值》</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://julabs.me/blog/flex-get-url/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu下配置Flex环境</title>
		<link>http://julabs.me/blog/ubuntu-flex-setting/</link>
		<comments>http://julabs.me/blog/ubuntu-flex-setting/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 07:46:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://julabs.me/blog/?p=19</guid>
		<description><![CDATA[Flex已经开源，而更高兴的是它现在也可以跨平台开发了。现在我已经逐渐转入到ubuntu了，于是想在ubuntu中开发Flex。虽然在配置开发环境的过程中遇到了很多困难，但在成功时的那份喜悦却是无法形容的。 配置Flex环境首先要配置Java环境，Java的版本要是1.6的，你可以用下面的命令查看系统中Java的版本。 java -version 如果已经是1.6的版本了，你就可以进行下面的步驟了，如果不是，就查看《Java安装配置》，安装最新版本的Java。 到Flex SDK下载页面下载最新的Flex SDK。最好选择最新的Adobe Flex SDK，我刚开始用的是Open Source Flex SDK，出现了很多错误，后来选择Adobe Flex SDK就正常了，我选的是118M的Adobe Flex SDK，如图： 下载文件为flex_sdk_3.zip，我把它放到了桌面上，打算把它放在目录/media/tools/flexsdk/中，当然你可以把它解压到任何目录中。用命令行操作的话键入如下命令： sudo mkdir /media/tools/flexsdk cd 桌面 sudo unzip flex_sdk_3 -d /media/tools/flexsdk 这时基本上就可以用了，但为了保险我还做了些操作。到你存放Flex SDK的目录下，找到bin文件夹，里面有个mxmlc文件，注意：后面不带任何后缀名。首先你一定要有修改这个文件属性的权限，右键这个文件，在弹出的菜单中选择属性，在属性窗口中选择权限一栏，勾选允许以程序执行文件选项，如图： 好了，现在就可以使用了。建立一个mxml文件，比如叫hello.mxml，写入相应的代码。在终端中进入到mxml文件所在的目录下，输入如下命令，注意下面的/media/tools/flexsdk/要改成你自己的Flex SDK所在的目录： /media/tools/flexsdk/bin/mxmlc hello.mxml 如果没有问题的话就能生成一个hello.swf的文件。]]></description>
			<content:encoded><![CDATA[<p><a href="http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK" target="_blank" title="Flex">Flex</a>已经开源，而更高兴的是它现在也可以跨平台开发了。现在我已经逐渐转入到<a href="http://www.ubuntu.org.cn/" target="_blank" title="ubuntu">ubuntu</a>了，于是想在<a href="http://www.ubuntu.org.cn/" target="_blank" title="ubuntu">ubuntu</a>中开发<a href="http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK" target="_blank" title="Flex">Flex</a>。虽然在配置开发环境的过程中遇到了很多困难，但在成功时的那份喜悦却是无法形容的。</p>
<p>配置Flex环境首先要配置Java环境，Java的版本要是1.6的，你可以用下面的命令查看系统中Java的版本。</p>
<pre><code class="dos">java -version
</code></pre>
<p>如果已经是1.6的版本了，你就可以进行下面的步驟了，如果不是，就查看<a href="http://wiki.ubuntu.org.cn/Java%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE" target="_blank" title="Java安装配置">《Java安装配置》</a>，安装最新版本的Java。</p>
<p>到<a href="http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+3" target="_blank" title="Flex SDK下载页面">Flex SDK下载页面</a>下载最新的Flex SDK。最好选择最新的<strong>Adobe Flex SDK</strong>，我刚开始用的是<strong>Open Source Flex SDK</strong>，出现了很多错误，后来选择<strong>Adobe Flex SDK</strong>就正常了，我选的是118M的<strong>Adobe Flex SDK</strong>，如图：</p>
<p class="img"><a href="http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+3" target="_blank" title="Flex SDK下载页面"><img src="/blog/img/09/flex.png" alt="Flex SDK下载" width="661" height="148" /></a></p>
<p>下载文件为<strong>flex_sdk_3.zip</strong>，我把它放到了桌面上，打算把它放在目录<strong>/media/tools/flexsdk/</strong>中，当然你可以把它解压到任何目录中。用命令行操作的话键入如下命令：</p>
<p><span id="more-19"></span></p>
<pre><code class="dos">sudo mkdir /media/tools/flexsdk
cd 桌面
sudo unzip flex_sdk_3 -d /media/tools/flexsdk
</code></pre>
<p>这时基本上就可以用了，但为了保险我还做了些操作。到你存放<strong>Flex SDK</strong>的目录下，找到<strong>bin</strong>文件夹，里面有个<strong>mxmlc</strong>文件，<strong>注意：后面不带任何后缀名</strong>。首先你一定要有修改这个文件属性的权限，右键这个文件，在弹出的菜单中选择<strong>属性</strong>，在属性窗口中选择<strong>权限</strong>一栏，勾选<strong>允许以程序执行文件</strong>选项，如图：</p>
<p class="img"><img src="/blog/img/09/flex_set02.png" alt="允许以程序执行文件" width="637" height="502" /></p>
<p>好了，现在就可以使用了。建立一个mxml文件，比如叫hello.mxml，写入相应的代码。在<strong>终端</strong>中进入到mxml文件所在的目录下，输入如下命令，注意下面的<strong>/media/tools/flexsdk/</strong>要改成你自己的Flex SDK所在的目录：</p>
<pre><code class="dos">/media/tools/flexsdk/bin/mxmlc hello.mxml
</code></pre>
<p>如果没有问题的话就能生成一个hello.swf的文件。</p>
]]></content:encoded>
			<wfw:commentRss>http://julabs.me/blog/ubuntu-flex-setting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

