<?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>AS3前端</title>
	<atom:link href="http://as3.aa-a.net/feed" rel="self" type="application/rss+xml" />
	<link>http://as3.aa-a.net</link>
	<description>注重AS3前端开发与AS3前端程序设计,Flash前端视觉设计,Flash actionscript3.0前端</description>
	<lastBuildDate>Tue, 01 Mar 2011 11:27:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>AS3与JS之间的简单自定义参数通讯</title>
		<link>http://as3.aa-a.net/as3-js-parameters-transfer.html</link>
		<comments>http://as3.aa-a.net/as3-js-parameters-transfer.html#comments</comments>
		<pubDate>Thu, 30 Dec 2010 01:33:19 +0000</pubDate>
		<dc:creator>Linkjun</dc:creator>
				<category><![CDATA[AS3前端技术]]></category>
		<category><![CDATA[AS3前端杂谈]]></category>
		<category><![CDATA[actionscript3.0]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[AS3代码]]></category>
		<category><![CDATA[AS3前端]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[WEB]]></category>

		<guid isPermaLink="false">http://as3.aa-a.net/?p=1019</guid>
		<description><![CDATA[as3与页面实时通讯我想各位童鞋也都很常用，方法也有几种，下面也给大家整理下。 一直没去深入研究下AS3与JS的交互开发也就是SWF在html中的通信,最近出于项目要求被迫投入了,也在这里做个... ]]></description>
			<content:encoded><![CDATA[<p><strong><span class='wp_keywordlink'><a href="http://as3.aa-a.net/" title="AS3代码,AS3类,AS3实例" target="_blank">as3</a></span>与页面实时通讯我想各位童鞋也都很常用，方法也有几种，下面也给大家整理下。</strong><br />
<span id="more-1019"></span><br />
一直没去深入研究下<span class='wp_keywordlink'><a href="http://as3.aa-a.net/" title="AS3代码,AS3类,AS3实例" target="_blank">as3</a></span>与JS的交互开发也就是SWF在html中的通信,最近出于项目要求被迫投入了,也在这里做个汇总<br />
一:HTML中最快速的传值方式<br />
在HTML中插SWF时,可以跟个参数,比如:<br />
files/home.swf?id=”21″<br />
在AS3里可以这样去接收<br />
<code>var id:String=stage.loaderInfo.parameters["id"]; </code>这种传值方式其实AS2的时候也是这样做的,到AS3时使用parameters 属性替换了AS1.0 和2.0 提供SWF文件参数作为主时间轴的技术,所以我们改用一下AS3的取值方式就行了.<br />
这种方式只能是单边一次性传值,有时候会用得到,但需要与JS相互通信就不行了,还有,只能接收字符串.<br />
二:使用外部通信接口ExternalInterface<br />
这也是AS2时代进化来的,目前公认的最靠谱的通信方式.<br />
使用方法:<br />
1.JS调用AS3的函数<br />
确定JS调用AS3之前,要在AS3中绑定调用函数,也就是说,只有AS3答应给的方法JS才能调用.<br />
使用:<code>ExternalInterface.addCallback(functionName:String, closure:Function):void</code>有两个参数:<br />
functionName:String — 容器可用于调用函数的名称。<br />
closure:Function — 要调用的 closure 函数。 这可能是一个独立的函数，或者可能是引用对象实例方法的 closure 方法。通过传递 closure 方法，回调实际上可以定向到特定对象实例的方法。 </p>
<p><code>ExternalInterface.addCallback("getASVars",getASFun);<br />
  private function getASFun(value:String):void {<br />
   //得到JS传来的值:value<br />
  }</code></p>
<p>好了,可以在JS中去调用这个方法了,调用前还要先取得插进HTML的SWF的ID,我们在HTML中不管用什么方式插都可以设置ID<br />
例如先通过id为”mov”来获取对象,再调用上面绑定的方法:</p>
<p><code>function thisMovie(movieName) {<br />
   if (navigator.appName.indexOf("Microsoft") != -1) {<br />
    return window[movieName];<br />
   } else {<br />
    return document[movieName];<br />
   }<br />
  }<br />
  thisMovie("mov").getASVars(value);</code> 2.AS3调用JS的函数<br />
AS3调JS直接使用call就行了<br />
使用:ExternalInterface.call(functionName:String, … arguments):*<br />
这个方法有两个参数：<br />
functionName:String — 要在容器中调用的函数的名称。<br />
… arguments — 传递到容器中的函数的参数。 您可以指定零个或多个参数，参数之间用逗号分隔。 这些参数可以是任何 ActionScript 数据类型。 当调用 JavaScript 函数时，ActionScript 类型自动封装到 JavaScript 类型中；当调用其它某个 ActiveX 容器时，将在请求消息中对参数进行编码。<br />
例如:</p>
<p><code>ExternalInterface.call("setToJS","paramTest");</code><br />
在JS中编写这个setToJS的函数<br />
<code>function senToJS(value){<br />
   alert(value)//输出:paramTest<br />
  }</code>看起来很爽,但也不是完全靠谱,这个接口还是会挑食的,只有在以下浏览器中才支持:</p>
<p>浏览器 操作系统 操作系统<br />
Internet Explorer 5.0 及更高版本 Windows<br />
Netscape 8.0 及更高版本 Windows Macintosh<br />
Mozilla 1.7.5 及更高版本 Windows Macintosh<br />
Firefox 1.0 及更高版本 Windows Macintosh<br />
Safari 1.3 及更高版本   Macintosh </p>
<p>还有个安全沙箱的问题,如果出现安全沙箱警报,可以使用以下两种修正方法:<br />
1.在包含 HTML 页中的 SWF 文件的 <code>object</code> 标签中，设置以下参数：<br />
<code>
<param name=”allowScriptAccess” value=”always” /></code><br />
2.在 SWF 文件中，添加以下 ActionScript：<br />
<code><span class='wp_keywordlink'><a href="http://as3.aa-a.net/" title="Flash" target="_blank">Flash</a></span>.system.Security.allowDomain(sourceDomain)</code></p>
<div  class="related_post_title">相关日志</div><ul class="related_post"><li><a href="http://as3.aa-a.net/as3-displacement-computational-performance.html" title="AS3位移与位计算性能优化比较">AS3位移与位计算性能优化比较</a></li><li><a href="http://as3.aa-a.net/as3-photos-jpg-pictures.html" title="AS3利用摄像头拍照生成JPG图片">AS3利用摄像头拍照生成JPG图片</a></li><li><a href="http://as3.aa-a.net/as3-finger-chart.html" title="AS3 finger chart轻量级制图表,统计图,饼图,柱形图类">AS3 finger chart轻量级制图表,统计图,饼图,柱形图类</a></li><li><a href="http://as3.aa-a.net/10-flash-as3-developers-practical-details.html" title="10条Flash AS3开发人员实用的简单细节事情">10条Flash AS3开发人员实用的简单细节事情</a></li><li><a href="http://as3.aa-a.net/flex-java-difference-getter-and-setter.html" title="Flex和Java中Getter,Setter比较与了解">Flex和Java中Getter,Setter比较与了解</a></li><li><a href="http://as3.aa-a.net/as3-class-diagram-air.html" title="AS3 AS3ClassDiagram.air官方类包结构图查看工具">AS3 AS3ClassDiagram.air官方类包结构图查看工具</a></li><li><a href="http://as3.aa-a.net/as3-child-index.html" title="AS3 中的Child Index了解">AS3 中的Child Index了解</a></li><li><a href="http://as3.aa-a.net/actionscript-as3-event-mechanism.html" title="actionscript AS3的Event事件机制探讨">actionscript AS3的Event事件机制探讨</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://as3.aa-a.net/as3-js-parameters-transfer.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>AS3分享:FLEX开发者必备的十多个工具Tour de Flex..Component Explorer..Efflex Effects Explorer</title>
		<link>http://as3.aa-a.net/as3-flex-power-tools-explorers.html</link>
		<comments>http://as3.aa-a.net/as3-flex-power-tools-explorers.html#comments</comments>
		<pubDate>Tue, 21 Dec 2010 01:25:56 +0000</pubDate>
		<dc:creator>Linkjun</dc:creator>
				<category><![CDATA[AS3类库工具]]></category>

		<guid isPermaLink="false">http://as3.aa-a.net/?p=1010</guid>
		<description><![CDATA[Tour de Flex (TourdeFlex在线版) Component Explorer Style Explorer Charts Explorer Regular Expression Explorer Efflex Effects Explorer Filter Explorer Primitive Objects Explorer Data Visualization Explorer Button Skin Explorer Distortion Effects Explor... ]]></description>
			<content:encoded><![CDATA[<div>
<p><a href="http://as3.aa-a.net/index.php/as3-flex-power-tools-explorers.html"><img src="http://flex4jiaocheng.com/sites/rhythmtechnology.com/files/imagecache/515px/diagrams/flex01.jpg" alt="AS3,Actionscript3,AS3前端,FLEX工具" /></a><span id="more-1010"></span> </p>
<p>Tour de Flex </p>
<p><a title="tourdeflex-web-online" href="http://as3.aa-a.net/index.php/as3-tool/tourdeflex-web-online" target="_blank" mce_href="http://as3.aa-a.net/index.php/as3-tool/tourdeflex-web-online">(TourdeFlex在线版)<br />
</a><a href="http://www.adobe.com/devnet/flex/tourdeflex/web/" target="_blank"><img src="http://flex4jiaocheng.com/sites/rhythmtechnology.com/files/imagecache/515px/diagrams/flex01.jpg" alt="AS3,Actionscript3,AS3前端" /></a> </p>
<p>Component Explorer </p>
<p><a href="http://examples.adobe.com/flex3/componentexplorer/explorer.html" target="_blank"><img src="http://flex4jiaocheng.com/sites/rhythmtechnology.com/files/imagecache/515px/diagrams/Flex_2.png" alt="AS3,Actionscript3,AS3前端" /></a> </p>
<p> Style Explorer </p>
<p><a href="http://examples.adobe.com/flex3/consulting/styleexplorer/Flex3StyleExplorer.html#" target="_blank"><img src="http://flex4jiaocheng.com/sites/rhythmtechnology.com/files/imagecache/515px/diagrams/Flex_3.png" alt="AS3,Actionscript3,AS3前端" /></a> </p>
<p> Charts Explorer </p>
<p><a href="http://examples.adobe.com/flex3/labs/dashboard/main.html#" target="_blank"><img src="http://flex4jiaocheng.com/sites/rhythmtechnology.com/files/imagecache/515px/diagrams/Flex_4.png" alt="AS3,Actionscript3,AS3前端" /></a> </p>
<p>Regular Expression Explorer </p>
<p><a href="http://ryanswanson.com/regexp/#start" target="_blank"><img src="http://flex4jiaocheng.com/sites/rhythmtechnology.com/files/imagecache/515px/diagrams/Flex_5.png" alt="AS3,Actionscript3,AS3前端" /></a> </p>
<p>Efflex Effects Explorer </p>
<div><a href="http://flex.org/tour"><img src="http://flex4jiaocheng.com/sites/rhythmtechnology.com/files/imagecache/515px/diagrams/Flex_6.png" alt="AS3,Actionscript3,AS3前端" /></a></div>
<div><a href="http://flex.org/tour"> </a></div>
<div><a href="http://flex.org/tour">Filter Explorer</a></div>
<p><a href="http://flex.org/tour"></a> </p>
<p><a href="http://flex.org/tour"></a></p>
<p><a href="http://www.merhl.com/flex2_samples/filterExplorer/" target="_blank"><img src="http://flex4jiaocheng.com/sites/rhythmtechnology.com/files/imagecache/515px/diagrams/Flex_7.png" alt="AS3,Actionscript3,AS3前端" /></a> </p>
<p>Primitive Objects Explorer </p>
<p><a href="http://www.flexibleexperiments.com/Flex/PrimitiveExplorer/Flex2PrimitiveExplorer.html" target="_blank"><img src="http://flex4jiaocheng.com/sites/rhythmtechnology.com/files/imagecache/515px/diagrams/Flex_8.png" alt="AS3,Actionscript3,AS3前端" /></a> </p>
<p>Data Visualization Explorer </p>
<p><a href="http://birdeye.googlecode.com/svn/trunk/qavis/examples/bin/QaVisExplorer.html#" target="_blank"><img src="http://flex4jiaocheng.com/sites/rhythmtechnology.com/files/imagecache/515px/diagrams/Flex_9.png" alt="AS3,Actionscript3,AS3前端" /></a> </p>
<p>Button Skin Explorer </p>
<p><a href="http://www.wabysabi.com/flex/enhancedbuttonskin/" target="_blank"><img src="http://flex4jiaocheng.com/sites/rhythmtechnology.com/files/imagecache/515px/diagrams/Flex_10.png" alt="AS3,Actionscript3,AS3前端" /></a> </p>
<p>Distortion Effects Explorer </p>
<p><a href="http://www.alex-uhlmann.de/flash/adobe/blog/distortionEffects/effectCube/" target="_blank"><img src="http://flex4jiaocheng.com/sites/rhythmtechnology.com/files/imagecache/515px/diagrams/Flex_11.jpg" alt="AS3,Actionscript3,AS3前端" /></a> </p>
<p>Theme Explorers </p>
<p><img src="http://flex4jiaocheng.com/sites/rhythmtechnology.com/files/imagecache/515px/diagrams/Flex_12.gif" alt="AS3,Actionscript3,AS3前端" /> </p>
<div><em> </em></div>
<div><em> </em></div>
<p><em> </em><em>Easing Functions Explorer</em> </p>
<p><a href="http://www.jamesward.com/easingFunctionFun/easingFunctionFun.html" target="_blank"><img src="http://flex4jiaocheng.com/sites/rhythmtechnology.com/files/imagecache/515px/diagrams/Flex_13.gif" alt="AS3,Actionscript3,AS3前端" /></a> </p>
<p>Custom Easing Explorer </p>
<p><a href="http://www.madeinflex.com/img/entries/2007/05/customeasingexplorer.html" target="_blank"><img src="http://flex4jiaocheng.com/sites/rhythmtechnology.com/files/imagecache/515px/diagrams/Flex_14.gif" alt="AS3,Actionscript3,AS3前端" /></a> </p>
<p>Audio Visualization Explorer </p>
<p><a title="http://lab.benstucki.net/archives/visualizationexplorer/" href="http://lab.benstucki.net/archives/visualizationexplorer/">http://lab.benstucki.net/archives/visualizationexplorer/</a> </p>
<p>另一款正则表达式工具: (<a title="AS3正则工具or在线as3正则调试" href="http://as3.aa-a.net/index.php/as3-tool/as3-regular-tools" jQuery1292896427140="182">AS3正则工具or在线as3正则调试</a><br />
)</p>
<div><a href="http://gskinner.com/RegExr/" target="_blank"><img src="http://flex4jiaocheng.com/sites/rhythmtechnology.com/files/imagecache/515px/diagrams/Regexp%20Expression.png" alt="AS3,Actionscript3,AS3前端" /></a></div>
<div><a href="http://gskinner.com/RegExr/" target="_blank"> </a></div>
<div><a href="http://gskinner.com/RegExr/" target="_blank"> </a></div>
<p><a href="http://gskinner.com/RegExr/" target="_blank"></a> </p>
<p><a href="http://gskinner.com/RegExr/" target="_blank"> </p>
<p></a></p>
<h2>总结</h2>
<p>下面是一些Explorers的分类列表： </p>
<p><strong>Component Explorers:</strong> </p>
<ul>
<li><a href="http://examples.adobe.com/flex2/inproduct/sdk/explorer/explorer.html" target="_blank">Flex 2 Component Explorer</a></li>
<li><a href="http://examples.adobe.com/flex3/componentexplorer/explorer.html" target="_blank">Flex 3 Component Explorer</a></li>
<li><a href="http://examples.adobe.com/flex2/inproduct/sdk/dashboard/dashboard.html" target="_blank">Flex 2 Charting Components Explorer</a></li>
<li><a href="http://examples.adobe.com/flex3/labs/dashboard/main.html" target="_blank">Flex 3 Charting Components Explorer</a></li>
<li><a href="http://demo.quietlyscheming.com/ChartSampler/app.html" target="_blank">Ely Greenfield&#8217;s Charting Sampler</a> (<a href="http://www.quietlyscheming.com/blog/charts/chart-sampler/" target="_blank">blog</a>)</li>
</ul>
<p><strong>Style Explorers:</strong> </p>
<ul>
<li><a href="http://www.adobe.com/go/flex_styles_explorer_app/" target="_blank">Flex 2 Style Explorer</a> (<a href="http://weblogs.macromedia.com/mc/archives/2007/04/designing_flex.cfm" target="_blank">using this in Fireworks</a>)</li>
<li><a href="http://examples.adobe.com/flex3/consulting/styleexplorer/Flex3StyleExplorer.html" target="_blank">Flex 3 Style Explorer</a></li>
<li><a href="http://livedocs.adobe.com/labs/flex3/html/working_comps_07.html" target="_blank">Flex Builder 3 CSS Explorer</a></li>
<li><a href="http://learn.adobe.com/wiki/display/Flex/Getting+Started" target="_blank">Getting Started With Flex 3</a></li>
<li>Theme portals: <a href="http://scalenine.com/" target="_blank">ScaleNine</a>, <a href="http://www.fillcolors.com/" target="_blank">FillColors</a>, <a href="http://www.fleksray.org/" target="_blank">Fleksray</a></li>
<li><a href="http://kuler.adobe.com/" target="_blank">Adobe Kuler</a> (CMX articles <a href="http://www.communitymx.com/content/article.cfm?cid=3A527">part 1</a> <a href="http://www.communitymx.com/content/article.cfm?cid=B8343">part 2</a>)</li>
</ul>
<p><strong>Effects Explorers:</strong> </p>
<ul>
<li><a href="http://www.merhl.com/flex2_samples/filterExplorer/" target="_blank">Flex 2 Filter Explorer</a></li>
<li><a href="http://www.flexibleexperiments.com/Flex/PrimitiveExplorer/Flex2PrimitiveExplorer.html" target="_blank">Flex 2 Primitive Explorer</a></li>
<li><a href="http://www.alex-uhlmann.de/flash/adobe/blog/distortionEffects/effectCube/" target="_blank">Distortion Effects Explorer</a></li>
<li><a href="http://www.jamesward.org/easingFunctionFun/easingFunctionFun.html">James Ward&#8217;s Easing Function Fun</a> (<a href="http://www.jamesward.org/wordpress/2007/02/16/fun-with-easing-functions-in-flex/" target="_blank">blog</a>)</li>
<li><a href="http://www.madeinflex.com/img/entries/2007/05/customeasingexplorer.html">Custom Easing Function Explorer</a> (<a href="http://www.madeinflex.com/2007/06/03/custom-easing-function-explorer/" target="_blank">blog</a> <a href="http://translate.google.com/translate?hl=en&amp;sl=es&amp;u=http://www.madeinflex.com/2007/06/03/custom-easing-function-explorer/" target="_blank">english</a>)</li>
<li><a href="http://lab.benstucki.net/archives/visualizationexplorer/" target="_blank">Ben Stucki&#8217;s Audio Visualization Explorer</a> (<a href="http://blog.benstucki.net/?id=18" target="_blank">blog</a>)</li>
</ul>
<p><strong>Benchmark Explorers </strong> </p>
<ul>
<li>James Ward&#8217;s <a href="http://www.jamesward.org/census/" target="_blank">Census Benchmark Explorer</a> (<a href="http://www.jamesward.org/wordpress/2007/04/30/ajax-and-flex-data-loading-benchmarks/" target="_blank">blog</a>)</li>
<li>James Ward&#8217;s <a href="http://www.jamesward.org/blazebench/" target="_blank">BlazeBench</a> (<a href="http://www.jamesward.org/wordpress/2007/12/12/blazebench-why-you-want-amf-and-blazeds/" target="_blank">blog</a>)</li>
</ul>
<p><strong>Application Explorers</strong></p>
<ul>
<li>Adobe Developer Center <a href="http://www.adobe.com/devnet/flex/?navID=samples" target="_blank">Flex 3 Sample Applications</a></li>
<li>Adobe Labs <a href="http://examples.adobe.com/flex3/labs/networkmonitor/main.html" target="_blank">Flex 3 Network Monitor</a> (<a href="http://labs.adobe.com/wiki/index.php/Flex_3:Demo_Network_Monitor">docs</a>)</li>
</ul>
<p>原文来自：<br />
<a href="http://www.communitymx.com/content/article.cfm?cid=0A055&amp;print=true">http://www.communitymx.com/content/article.cfm?cid=0A055&amp;print=true</a></p>
</div>
<div  class="related_post_title">随机日志</div><ul class="related_post"><li><a href="http://as3.aa-a.net/as3-rubbish-recycling-explanation.html" title="AS3垃圾回收站机制详解">AS3垃圾回收站机制详解</a></li><li><a href="http://as3.aa-a.net/loadermax.html" title="LoaderMax AS3加载类库小却很强大">LoaderMax AS3加载类库小却很强大</a></li><li><a href="http://as3.aa-a.net/practical-as3-class-library.html" title="一个非常实用的AS3类库含AS3数组,字符等11常用功能">一个非常实用的AS3类库含AS3数组,字符等11常用功能</a></li><li><a href="http://as3.aa-a.net/as3-localconnection-sharedobject.html" title="AS3本地运行库LocalConnection,SharedObject详解">AS3本地运行库LocalConnection,SharedObject详解</a></li><li><a href="http://as3.aa-a.net/as3-as2-interaction-flashpaper-load.html" title="又一篇AS3和as2交互的文章《初始化载入FlashPaper》">又一篇AS3和as2交互的文章《初始化载入FlashPaper》</a></li><li><a href="http://as3.aa-a.net/as3-object-assignment-references.html" title="as3(ActionScript3)关于对象(Object)的赋值与引用的一些整理">as3(ActionScript3)关于对象(Object)的赋值与引用的一些整理</a></li><li><a href="http://as3.aa-a.net/as3-shift-actionscript3-0-shift-examples.html" title="AS3移位-actionscript3.0移位-例子重谈">AS3移位-actionscript3.0移位-例子重谈</a></li><li><a href="http://as3.aa-a.net/as3-and-php-interactive-examples.html" title="AS3与PHP的交互实例">AS3与PHP的交互实例</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://as3.aa-a.net/as3-flex-power-tools-explorers.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3本地运行库LocalConnection,SharedObject详解</title>
		<link>http://as3.aa-a.net/as3-localconnection-sharedobject.html</link>
		<comments>http://as3.aa-a.net/as3-localconnection-sharedobject.html#comments</comments>
		<pubDate>Thu, 16 Dec 2010 03:15:24 +0000</pubDate>
		<dc:creator>Linkjun</dc:creator>
				<category><![CDATA[AS3前端技术]]></category>
		<category><![CDATA[actionscript3.0]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[Loader]]></category>

		<guid isPermaLink="false">http://as3.aa-a.net/?p=1004</guid>
		<description><![CDATA[as3在本地客户端提供了两个对象:LocalConnection和SharedObject本地共享对象。利用这两个对象可以弥补客户端浏览器Js的很多不足.而本地共享对象更具独有的性质,对每一个独立域的SWF来说默认都拥有... ]]></description>
			<content:encoded><![CDATA[<p><span class='wp_keywordlink'><a href="http://as3.aa-a.net/" title="AS3代码,AS3类,AS3实例" target="_blank">as3</a></span>在本地客户端提供了两个对象:LocalConnection和SharedObject本地共享对象。利用这两个对象可以弥补客户端浏览器Js的很多不足.而本地共享对象更具独有的性质,对每一个独立域的SWF来说默认都拥有100K的本地共享存储空 间.虽然只有100K但是可以做很多的事情了,例如可以用作跨域Cookie,或是用户参数设置的保存等.当看到这里的时候,不知道有没有人想到,可以将 这100K做成一个在本地加载的运行库? 在这里我们探索一下.<span id="more-1004"></span></p>
<p>先解释一下什么叫本地运行库, 如果学过C的人都知道,C有一些库文件,后缀名为.lib,这些库文件里面存储的是已编译好的程序,包抱数据结构和功能函数,它是一个静态的库,当C编译 的时候加载这些库里面已编译好的二进制数据结构或函数放到目标的程序中,这样就可以实现代码重用,加快编译速度. 在C++时代,也有类似的库,但更多使用的是后缀名为.dll的库文件,.dll的库文件跟.lib的有根本性的区别. .dll的库文件叫动态库文件, 它是指程序在执行的时候加载这个.dll文件进内存再调用里面的函数,实例它里面的类. 现在我们讨论的就是在AS3中实现类似的.dll这种文件的功能. 在用户客户端浏览器中缓存一些可动态加载并运行的库类. 当然,你也可以将Js字符串放在里面,加载运行. 呵呵,听起来是不是不可思议? 你可千万不要下载一个病毒放在这里面哦,不然我想杀毒 软件都清不了. 呵呵,说笑啦,<span class='wp_keywordlink'><a href="http://as3.aa-a.net/" title="Flash" target="_blank">Flash</a></span>Player的安全沙箱不允许你缓存的这个库跨域读取或执行,所以不用担心这个.</p>
<p>要实现本地运行库的第一个条件成熟了,就是有地方缓存,有100K供我们使用,如果有的用户设置达1M的空间,那么,你可以缓存更多的东西,不过一般的用户不会设置这么高的. 第二个条件就是如何存取一个库到这个本地共享对象中去, 我们可以采用将swf从服务器端读取出来,然后用二进制的形式写进去, 还好AS3的URLRequest提供了一个读取二进制数据的功能,而Loader也提供了一个将二进制转化为SWF的功能. 这样,本地运行库实现起来就比较简单了.</p>
<p><strong>下面讲一下我的思路:<br />
</strong>本地运行库的目的是,将一些常用的工具类,或是一些不变的资源文件打包成一个SWF文件,带一个版本号,通过URLRequest加载成功后,缓存在本地,作为一个运行支持的库,里面的类,或是图片资源等,你要的时候就去这个库取出来就可以了.示例代码如下:</p>
<div><strong>ActionScript代码</strong></div>
<blockquote>
<div class="source" style="background-color: 222222; font-family: '[object HTMLOptionElement]', 'Consolas', 'Lucida Console', 'Courier New'; color: #dcdccc;"><span style="color: #efefaf; font-weight: bold;">package</span> <span style="color: #dcdccc;">{</span> </p>
<p>    <span style="color: #e3ceab;">import</span> <span style="color: #dcdccc;"><span class='wp_keywordlink'><a href="http://as3.aa-a.net/" title="Flash" target="_blank">Flash</a></span>.display.Loader</span>; </p>
<p>    <span style="color: #e3ceab;">import</span> <span style="color: #dcdccc;">flash.display.Sprite</span>; </p>
<p>    <span style="color: #e3ceab;">import</span> <span style="color: #dcdccc;">flash.events.Event</span>; </p>
<p>    <span style="color: #e3ceab;">import</span> <span style="color: #dcdccc;">flash.net.SharedObject</span>; </p>
<p>    <span style="color: #e3ceab;">import</span> <span style="color: #dcdccc;">flash.utils.ByteArray</span>; </p>
<p>    <span style="color: #e3ceab;">import</span> <span style="color: #dcdccc;">load.LoadEvent</span>; </p>
<p>    <span style="color: #e3ceab;">import</span> <span style="color: #dcdccc;">load.LoadFileBase</span>; </p>
<p>    <span style="color: #e3ceab;">import</span> <span style="color: #dcdccc;">load.LoadFileData</span>; </p>
<p>    <span style="color: #7f9f7f;">/** </span></p>
<p><span style="color: #7f9f7f;">     * 完成本地共享对象的读取,版本比较,加载,替换等操作. </span></p>
<p><span style="color: #7f9f7f;">     */</span> </p>
<p>    <span style="color: #efefaf; font-weight: bold;">public</span> <span style="color: #efefaf; font-weight: bold;">class</span> <span style="color: #dcdccc;">LocalRunLib</span> <span style="color: #efefaf; font-weight: bold;">extends</span> <span style="color: #dcdccc;">Sprite</span><span style="color: #dcdccc;">{</span> </p>
<p>        <span style="color: #efefaf; font-weight: bold;">public</span> <span style="color: #efefaf; font-weight: bold;">const</span> <span style="color: #dcdccc;">LOADFAILED</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">String</span><span style="color: #dcdccc;">=</span><span style="color: #dcdccc;">”</span><span style="color: #dcdccc;">load_local_Lib_failed</span><span style="color: #dcdccc;">”</span>; </p>
<p>        <span style="color: #efefaf; font-weight: bold;">public</span> <span style="color: #efefaf; font-weight: bold;">const</span> <span style="color: #dcdccc;">LOADSUCCESS</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">String</span><span style="color: #dcdccc;">=</span><span style="color: #dcdccc;">”</span><span style="color: #dcdccc;">load_local_Lib_success</span><span style="color: #dcdccc;">”</span>; </p>
<p>        <span style="color: #efefaf; font-weight: bold;">private</span> <span style="color: #efefaf; font-weight: bold;">var</span> <span style="color: #dcdccc;">ver</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">String</span>; </p>
<p>        <span style="color: #efefaf; font-weight: bold;">public</span> <span style="color: #dcdccc;">var</span> <span style="color: #dcdccc;">Lib</span><span style="color: #dcdccc;">:*;</span> </p>
<p>        <span style="color: #efefaf; font-weight: bold;">public</span> <span style="color: #efefaf; font-weight: bold;">function </span><span style="color: #efef8f;">LocalRunLib</span><span style="color: #dcdccc;">():</span><span style="color: #dfdfbf; font-weight: bold;">void</span><span style="color: #dcdccc;">{</span> </p>
<p>            <span style="color: #dcdccc;">getLib</span>(<span style="color: #dcdccc;">“</span><span style="color: #dcdccc;">Lib</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">swf</span><span style="color: #dcdccc;">”</span><span style="color: #dcdccc;">,</span><span style="color: #dcdccc;">”</span><span style="color: #8cd0d3;">0708</span><span style="color: #dcdccc;">a01</span><span style="color: #dcdccc;">″</span>); </p>
<p>            <span style="color: #dcdccc;">addEventListener</span>(<span style="color: #dcdccc;">LOADSUCCESS</span><span style="color: #dcdccc;">,</span><span style="color: #dcdccc;">testSuccess</span>); </p>
<p>            <span style="color: #dcdccc;">addEventListener</span>(<span style="color: #dcdccc;">LOADFAILED</span><span style="color: #dcdccc;">,</span><span style="color: #dcdccc;">testFailed</span>); </p>
<p>        <span style="color: #dcdccc;">}</span> </p>
<p>        <span style="color: #efefaf; font-weight: bold;">private</span> <span style="color: #efefaf; font-weight: bold;">function </span><span style="color: #efef8f;">testSuccess</span>(<span style="color: #dcdccc;">event</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">Event</span><span style="color: #dcdccc;">):</span><span style="color: #dfdfbf; font-weight: bold;">void</span><span style="color: #dcdccc;">{</span> </p>
<p>            <span style="color: #efef8f;">trace</span>(<span style="color: #dcdccc;">event</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">target</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">Lib</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">applicationDomain</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">getDefinition</span>(<span style="color: #dcdccc;">“</span><span style="color: #dcdccc;">Tt</span><span style="color: #dcdccc;">”</span>)); </p>
<p>        <span style="color: #dcdccc;">}</span> </p>
<p>        <span style="color: #efefaf; font-weight: bold;">private</span> <span style="color: #efefaf; font-weight: bold;">function </span><span style="color: #efef8f;">testFailed</span>(<span style="color: #dcdccc;">event</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">Event</span><span style="color: #dcdccc;">):</span><span style="color: #dfdfbf; font-weight: bold;">void</span><span style="color: #dcdccc;">{</span> </p>
<p>            <span style="color: #efef8f;">trace</span>(<span style="color: #dcdccc;">event</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">target</span>); </p>
<p>        <span style="color: #dcdccc;">}</span> </p>
<p>        <span style="color: #7f9f7f;">/** </span></p>
<p><span style="color: #7f9f7f;">         * 获取运行库. </span></p>
<p><span style="color: #7f9f7f;">         * @param _url  获取本地失败后,向远程加载. </span></p>
<p><span style="color: #7f9f7f;">         * @param ver   当前需要的版本. </span></p>
<p><span style="color: #7f9f7f;">         */</span> </p>
<p>        <span style="color: #efefaf; font-weight: bold;">private</span> <span style="color: #efefaf; font-weight: bold;">function </span><span style="color: #efef8f;">getLib</span>(<span style="color: #dcdccc;">_url</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">String</span><span style="color: #dcdccc;">,</span><span style="color: #dcdccc;">ver</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">String</span><span style="color: #dcdccc;">):</span><span style="color: #dfdfbf; font-weight: bold;">void</span><span style="color: #dcdccc;">{</span>            </p>
<p>            <span style="color: #efefaf; font-weight: bold;">var</span> <span style="color: #dcdccc;">flag</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">Boolean</span><span style="color: #dcdccc;">=</span><span style="color: #e3ceab;">false</span>; </p>
<p>            <span style="color: #efefaf; font-weight: bold;">var</span> <span style="color: #dcdccc;">share</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">SharedObject</span><span style="color: #dcdccc;">=</span><span style="color: #dcdccc;">SharedObject</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">getLocal</span>(<span style="color: #dcdccc;">“</span><span style="color: #dcdccc;">resources</span><span style="color: #dcdccc;">”</span>); </p>
<p>            <span style="color: #efefaf; font-weight: bold;">var</span> <span style="color: #dcdccc;">Obj</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">Object</span><span style="color: #dcdccc;">=</span><span style="color: #dcdccc;">share</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">data</span>; </p>
<p>            <span style="color: #e3ceab;">this</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">ver</span><span style="color: #dcdccc;">=</span><span style="color: #dcdccc;">ver</span>;        </p>
<p>            <span style="color: #e3ceab;">if</span>(<span style="color: #dcdccc;">Obj</span><span style="color: #dcdccc;">!=</span><span style="color: #e3ceab;">null</span>) </p>
<p>                <span style="color: #e3ceab;">if</span>(<span style="color: #dcdccc;">Obj</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">version</span><span style="color: #dcdccc;">==</span><span style="color: #dcdccc;">ver</span><span style="color: #dcdccc;">){</span> </p>
<p>                    <span style="color: #dcdccc;">converToLib</span>(<span style="color: #dcdccc;">Obj</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">lib</span>);                </p>
<p>                    <span style="color: #dcdccc;">flag</span><span style="color: #dcdccc;">=</span><span style="color: #e3ceab;">true</span>;           </p>
<p>                <span style="color: #dcdccc;">}</span> </p>
<p>            <span style="color: #dcdccc;">share</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">close</span>(); </p>
<p>            <span style="color: #dcdccc;">share</span><span style="color: #dcdccc;">=</span><span style="color: #e3ceab;">null</span>;          </p>
<p>            <span style="color: #e3ceab;">if</span><span style="color: #dcdccc;">(!</span><span style="color: #dcdccc;">flag</span><span style="color: #dcdccc;">){</span> </p>
<p>                <span style="color: #efefaf; font-weight: bold;">var</span> <span style="color: #dcdccc;">loadFile</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">LoadFileBase</span><span style="color: #dcdccc;">=</span><span style="color: #e3ceab;">new</span> <span style="color: #dfdfbf; font-weight: bold;">LoadFileBase</span>(<span style="color: #e3ceab;">new</span> <span style="color: #dfdfbf; font-weight: bold;">LoadFileData</span>(<span style="color: #dcdccc;">_url</span><span style="color: #dcdccc;">,</span><span style="color: #dcdccc;">LoadFileBase</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">_SWF</span>)); </p>
<p>                <span style="color: #dcdccc;">loadFile</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">addEventListener</span>(<span style="color: #dcdccc;">LoadFileBase</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">SUCCESS</span><span style="color: #dcdccc;">,</span><span style="color: #dcdccc;">success</span>); </p>
<p>                <span style="color: #dcdccc;">loadFile</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">addEventListener</span>(<span style="color: #dcdccc;">LoadFileBase</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">FAILED</span><span style="color: #dcdccc;">,</span><span style="color: #dcdccc;">failed</span>); </p>
<p>            <span style="color: #dcdccc;">}</span> </p>
<p>        <span style="color: #dcdccc;">}</span> </p>
<p>        <span style="color: #7f9f7f;">/** </span></p>
<p><span style="color: #7f9f7f;">         * 将共享对象变成可运行的库. </span></p>
<p><span style="color: #7f9f7f;">         */</span> </p>
<p>        <span style="color: #efefaf; font-weight: bold;">private</span> <span style="color: #efefaf; font-weight: bold;">function </span><span style="color: #efef8f;">_onLoaderComplete</span>(<span style="color: #dcdccc;">event</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">Event</span><span style="color: #dcdccc;">):</span><span style="color: #dfdfbf; font-weight: bold;">void</span><span style="color: #dcdccc;">{</span> </p>
<p>            <span style="color: #7f9f7f;">// 下面的Lib大伙可以测试一下,是否是Loader对象了.</span></p>
<p>            <span style="color: #dcdccc;">Lib</span><span style="color: #dcdccc;">=</span><span style="color: #dcdccc;">event</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">currentTarget</span>; </p>
<p>            <span style="color: #dcdccc;">event</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">target</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">removeEventListener</span>(<span style="color: #dcdccc;">Event</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">COMPLETE</span><span style="color: #dcdccc;">,</span> <span style="color: #dcdccc;">_onLoaderComplete</span>);             </p>
<p>            <span style="color: #dcdccc;">dispatchEvent</span>(<span style="color: #e3ceab;">new</span> <span style="color: #dfdfbf; font-weight: bold;">Event</span>(<span style="color: #dcdccc;">LOADSUCCESS</span>)); </p>
<p>        <span style="color: #dcdccc;">}</span> </p>
<p>        <span style="color: #7f9f7f;">/** </span></p>
<p><span style="color: #7f9f7f;">         * 写入到库. </span></p>
<p><span style="color: #7f9f7f;">         */</span> </p>
<p>        <span style="color: #efefaf; font-weight: bold;">private</span> <span style="color: #efefaf; font-weight: bold;">function </span><span style="color: #efef8f;">writeLocalLib</span>(<span style="color: #dcdccc;">swf</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">*</span><span style="color: #dcdccc;">,</span><span style="color: #dcdccc;">ver</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">String</span><span style="color: #dcdccc;">):</span><span style="color: #dfdfbf; font-weight: bold;">*</span><span style="color: #dcdccc;">{</span> </p>
<p>            <span style="color: #efefaf; font-weight: bold;">var</span> <span style="color: #dcdccc;">share</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">SharedObject</span><span style="color: #dcdccc;">=</span><span style="color: #dcdccc;">SharedObject</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">getLocal</span>(<span style="color: #dcdccc;">“</span><span style="color: #dcdccc;">resources</span><span style="color: #dcdccc;">”</span>); </p>
<p>            <span style="color: #dcdccc;">share</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">data</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">version</span><span style="color: #dcdccc;">=</span><span style="color: #dcdccc;">ver</span>; </p>
<p>            <span style="color: #dcdccc;">share</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">data</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">lib</span><span style="color: #dcdccc;">=</span><span style="color: #dcdccc;">swf</span>; </p>
<p>            <span style="color: #dcdccc;">share</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">flush</span>(); </p>
<p>            <span style="color: #dcdccc;">share</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">close</span>(); </p>
<p>            <span style="color: #dcdccc;">share</span><span style="color: #dcdccc;">=</span><span style="color: #e3ceab;">null</span>; </p>
<p>        <span style="color: #dcdccc;">}</span> </p>
<p>        <span style="color: #7f9f7f;">/*** </span></p>
<p><span style="color: #7f9f7f;">         * 将二进制内容转化为可运行库. </span></p>
<p><span style="color: #7f9f7f;">         */</span> </p>
<p>        <span style="color: #efefaf; font-weight: bold;">private</span> <span style="color: #efefaf; font-weight: bold;">function </span><span style="color: #efef8f;">converToLib</span>(<span style="color: #dcdccc;">data</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">ByteArray</span><span style="color: #dcdccc;">):</span><span style="color: #dfdfbf; font-weight: bold;">void</span><span style="color: #dcdccc;">{</span> </p>
<p>            <span style="color: #efefaf; font-weight: bold;">var</span> <span style="color: #dcdccc;">loader</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">Loader</span> <span style="color: #dcdccc;">=</span> <span style="color: #e3ceab;">new</span> <span style="color: #dfdfbf; font-weight: bold;">Loader</span>(); </p>
<p>            <span style="color: #dcdccc;">loader</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">contentLoaderInfo</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">addEventListener</span>(<span style="color: #dcdccc;">Event</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">COMPLETE</span><span style="color: #dcdccc;">,</span> <span style="color: #dcdccc;">_onLoaderComplete</span>); </p>
<p>            <span style="color: #dcdccc;">loader</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">loadBytes</span>(<span style="color: #dcdccc;">data</span>); </p>
<p>        <span style="color: #dcdccc;">}</span> </p>
<p>        <span style="color: #7f9f7f;">/** </span></p>
<p><span style="color: #7f9f7f;">         * 加载指定url的运行库成功. </span></p>
<p><span style="color: #7f9f7f;">         */</span> </p>
<p>        <span style="color: #efefaf; font-weight: bold;">private</span> <span style="color: #efefaf; font-weight: bold;">function </span><span style="color: #efef8f;">success</span>(<span style="color: #dcdccc;">event</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">LoadEvent</span><span style="color: #dcdccc;">):</span><span style="color: #dfdfbf; font-weight: bold;">void</span><span style="color: #dcdccc;">{</span>          </p>
<p>            <span style="color: #dcdccc;">converToLib</span>(<span style="color: #dcdccc;">event</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">loadData</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">data</span> <span style="color: #e3ceab;">as</span> <span style="color: #dcdccc;">ByteArray</span>); </p>
<p>            <span style="color: #dcdccc;">writeLocalLib</span>(<span style="color: #dcdccc;">event</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">loadData</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">data</span><span style="color: #dcdccc;">,</span><span style="color: #dcdccc;">ver</span>); </p>
<p>            <span style="color: #dcdccc;">removeEvent</span>(<span style="color: #dcdccc;">event</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">target</span> <span style="color: #e3ceab;">as</span> <span style="color: #dcdccc;">LoadFileBase</span>); </p>
<p>        <span style="color: #dcdccc;">}</span>        </p>
<p>        <span style="color: #7f9f7f;">/** </span></p>
<p><span style="color: #7f9f7f;">         * 加载指定url的运行库失败. </span></p>
<p><span style="color: #7f9f7f;">         */</span> </p>
<p>        <span style="color: #efefaf; font-weight: bold;">private</span> <span style="color: #efefaf; font-weight: bold;">function </span><span style="color: #efef8f;">failed</span>(<span style="color: #dcdccc;">event</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">LoadEvent</span><span style="color: #dcdccc;">):</span><span style="color: #dfdfbf; font-weight: bold;">void</span><span style="color: #dcdccc;">{</span>           </p>
<p>            <span style="color: #dcdccc;">removeEvent</span>(<span style="color: #dcdccc;">event</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">target</span> <span style="color: #e3ceab;">as</span> <span style="color: #dcdccc;">LoadFileBase</span>); </p>
<p>            <span style="color: #dcdccc;">dispatchEvent</span>(<span style="color: #e3ceab;">new</span> <span style="color: #dfdfbf; font-weight: bold;">Event</span>(<span style="color: #dcdccc;">LOADFAILED</span>)); </p>
<p>        <span style="color: #dcdccc;">}</span> </p>
<p>        <span style="color: #7f9f7f;">/** </span></p>
<p><span style="color: #7f9f7f;">         * 删除事件. </span></p>
<p><span style="color: #7f9f7f;">         */</span> </p>
<p>        <span style="color: #efefaf; font-weight: bold;">private</span> <span style="color: #efefaf; font-weight: bold;">function </span><span style="color: #efef8f;">removeEvent</span>(<span style="color: #dcdccc;">loadFile</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">LoadFileBase</span><span style="color: #dcdccc;">):</span><span style="color: #dfdfbf; font-weight: bold;">void</span><span style="color: #dcdccc;">{</span> </p>
<p>            <span style="color: #dcdccc;">loadFile</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">removeEventListener</span>(<span style="color: #dcdccc;">LoadFileBase</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">SUCCESS</span><span style="color: #dcdccc;">,</span><span style="color: #dcdccc;">success</span>); </p>
<p>            <span style="color: #dcdccc;">loadFile</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">removeEventListener</span>(<span style="color: #dcdccc;">LoadFileBase</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">FAILED</span><span style="color: #dcdccc;">,</span><span style="color: #dcdccc;">failed</span>); </p>
<p>        <span style="color: #dcdccc;">}</span> </p>
<p>    <span style="color: #dcdccc;">}</span> </p>
<p><span style="color: #dcdccc;">}</span></div>
</blockquote>
<div  class="related_post_title">相关日志</div><ul class="related_post"><li><a href="http://as3.aa-a.net/as3-displacement-computational-performance.html" title="AS3位移与位计算性能优化比较">AS3位移与位计算性能优化比较</a></li><li><a href="http://as3.aa-a.net/as3-volume-control-example-code.html" title="AS3音量简单控制实例代码">AS3音量简单控制实例代码</a></li><li><a href="http://as3.aa-a.net/as3-js-parameters-transfer.html" title="AS3与JS之间的简单自定义参数通讯">AS3与JS之间的简单自定义参数通讯</a></li><li><a href="http://as3.aa-a.net/as3-object-assignment-references.html" title="as3(ActionScript3)关于对象(Object)的赋值与引用的一些整理">as3(ActionScript3)关于对象(Object)的赋值与引用的一些整理</a></li><li><a href="http://as3.aa-a.net/as3-finger-chart.html" title="AS3 finger chart轻量级制图表,统计图,饼图,柱形图类">AS3 finger chart轻量级制图表,统计图,饼图,柱形图类</a></li><li><a href="http://as3.aa-a.net/as3-flex-bezier-curve.html" title="AS3 Flex的一个贝塞尔(Bezier)曲线图形实例">AS3 Flex的一个贝塞尔(Bezier)曲线图形实例</a></li><li><a href="http://as3.aa-a.net/10-flash-as3-developers-practical-details.html" title="10条Flash AS3开发人员实用的简单细节事情">10条Flash AS3开发人员实用的简单细节事情</a></li><li><a href="http://as3.aa-a.net/10-flex-developers-practical-details.html" title="10条Flex开发人员实用的简单细节事情">10条Flex开发人员实用的简单细节事情</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://as3.aa-a.net/as3-localconnection-sharedobject.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3(ActionScript3)关于对象(Object)的赋值与引用的一些整理</title>
		<link>http://as3.aa-a.net/as3-object-assignment-references.html</link>
		<comments>http://as3.aa-a.net/as3-object-assignment-references.html#comments</comments>
		<pubDate>Thu, 16 Dec 2010 03:01:09 +0000</pubDate>
		<dc:creator>Linkjun</dc:creator>
				<category><![CDATA[AS3前端技术]]></category>
		<category><![CDATA[actionscript3.0]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[Object]]></category>

		<guid isPermaLink="false">http://as3.aa-a.net/?p=997</guid>
		<description><![CDATA[as3 的值和引用在此整理一下： as3 的值和引用这两者比较有关系的是“赋值”和“函数传参”两个行为，期间又需要分“基元类型”和“对象”来讨论。 我们知道Flash as语言中所有的数据类型... ]]></description>
			<content:encoded><![CDATA[<p><span class='wp_keywordlink'><a href="http://as3.aa-a.net/" title="AS3代码,AS3类,AS3实例" target="_blank">as3</a></span> 的值和引用在此整理一下：</p>
<p>as3 的值和引用这两者比较有关系的是“赋值”和“函数传参”两个行为，期间又需要分“基元类型”和“对象”来讨论。</p>
<p>我们知道<span class='wp_keywordlink'><a href="http://as3.aa-a.net/" title="Flash" target="_blank">Flash</a></span> as语言中所有的数据类型都继承自Object，包括基元数据类型，但是在值和引用操作时它们的确需要区别对待。</p>
<p>我们将基元数据类型称为“非结构对象”，与之对应的其他Object称为“结构对象”。</p>
<p>下面将进行几种实验，结论大概就是<span id="more-997"></span></p>
<p>1、 基元数据类型按照值操作，代表基元数据的非结构对象也是按照值操作的。</p>
<p>2、 结构对象一般按照“引用”操作，但需要注意交换赋值的情况</p>
<p>3、 As3中的“引用”操作其实不是真正意义上的引用，只是类似于“指针”传递的一种伪“引用”。As3中所有操作底层意义都是值操作，只不过针对结构对象时是“指针”值的值操作。</p>
<p>4、 As3中的函数传参，对基元类型相当于新副本的值操作。对结构对象，相当于“指针”值新副本的值操作。</p>
<p>5、 必要的时候使用深层次拷贝操作，特别是在多层次框架结构中。</p>
<p>=================</p>
<p>基元类型（包括 Boolean、Number、int、uint 和 String）</p>
<p>赋值：按照值操作。</p>
<p>var a:int=3;</p>
<p>var b:int=a;</p>
<p>b=6;</p>
<p>trace(a,b);// 3 6 即 b的改变不会带来a的改变</p>
<p>函数传参：按照值操作</p>
<p>var a:int=3;</p>
<p>function f1(b:int):void{</p>
<p>    b=6;</p>
<p>}</p>
<p>f1(a);</p>
<p>trace(a);//3 即在函数内部生成了新副本，其变化不会带来a的改变</p>
<p>与前面的赋值操作是等价一致的</p>
<p>=================</p>
<p>对象Object</p>
<p>赋值：按照引用操作</p>
<p>var a:Object={x:1,y:2};</p>
<p>var b:Object=a;</p>
<p>b.x=6;</p>
<p>trace(a.x);//6 即 b的改变会带来a的改变</p>
<p>&#8212;-下面模拟复杂对象赋值&#8212;</p>
<p>var c:Object={i:10,j:11}</p>
<p>var a:Object={x:1,y:c};</p>
<p>var d:Object=a.y;</p>
<p>var b:Object=a;</p>
<p>d.i=6;</p>
<p>trace(a.y.i);//6</p>
<p>trace(b.y.i);//6 这里需要格外注意，as3的引用行为是无孔不入的，自定义对象的子对象遭遇引用操作，特别是多层架构中，隐蔽的引用操作会带来意想不到的问题。</p>
<p>函数传参：结构对象按引用操作；代表基元类型的非结构对象，按值操作</p>
<p>var a:Object={x:3};</p>
<p>function f1(b:Object):void{</p>
<p>    b.x=6;</p>
<p>}</p>
<p>f1(a);</p>
<p>trace(a.x);//6 一如既往的引用操作，但请注意下面</p>
<p>&#8212;&#8211;代表基元类型的对象&#8212;-</p>
<p>var a:Object=Object(3);</p>
<p>function f1(b:Object):void{</p>
<p>    b=6;</p>
<p>}</p>
<p>f1(a);</p>
<p>trace(a);//3 如果Object代表基元类型，那则按值来操作</p>
<p>=============================</p>
<p>貌似到这里关于as3的值和引用归类总结已经结束了，其实不是的。</p>
<p>看下面一段代码。</p>
<p>var a:Object={x:1};</p>
<p>var b:Object={x:4};</p>
<p>var c:Object;</p>
<p>c=a;</p>
<p>a=b;</p>
<p>b=c;</p>
<p>trace(a.x,b.x);</p>
<p>结果不出意外的是 4 1 ，我们继续看下面代码</p>
<p>var a:Object={x:1};</p>
<p>var b:Object={x:4};</p>
<p>function swapObj(i:Object,j:Object):void</p>
<p>{</p>
<p>         var k:Object;</p>
<p>         k=i;</p>
<p>         i=j;</p>
<p>         j=k;</p>
<p>}</p>
<p>swapObj (a,b);</p>
<p>trace(a.x,b.x);</p>
<p>结果是什么呢？却不是我们想的 4 1，而是 1 4</p>
<p>这里发生了什么故事，我们继续试验</p>
<p>var a:Object={x:1};</p>
<p>var b:Object={x:4};</p>
<p>function swapArr(i:Object,j:Object):void</p>
<p>{</p>
<p>         var k:Object;</p>
<p>         k=i;</p>
<p>         k.x+=10;</p>
<p>         trace(k.x,a.x,b.x,i.x,j.x);</p>
<p>         i=j;</p>
<p>         trace(k.x,a.x,b.x,i.x,j.x);</p>
<p>         j=k;</p>
<p>         trace(k.x,a.x,b.x,i.x,j.x);</p>
<p>}</p>
<p>swapArr(a,b);</p>
<p>trace(a.x,b.x);</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>11 11 4 11 4</p>
<p>11 11 4 4 4</p>
<p>11 11 4 4 11</p>
<p>11 4</p>
<p>看起来很让人头疼，我直接画图摆结论吧，as3所谓的引用操作过程中只是指针值的操作，并不是真的引用。<br />
至此，as3值和引用操作真正有价值的东西才算讲了一点点。</p>
<p>要善用函数返回值，不要想当然的把对象传进去就认为函数自己会按照引用操作去完美的工作。</p>
<p>遇到可能出现这种问题的情况，要善用深层次拷贝。</p>
<p>比如比较常用的Array，默认并没有提供clone函数，那就按照如下操作进行深层次拷贝，来保证代码流转过程中的逻辑正确和减少未知引用关联。</p>
<p>import <span class='wp_keywordlink'><a href="http://as3.aa-a.net/" title="Flash" target="_blank">Flash</a></span>.utils.ByteArray;</p>
<p>function clone(source:Object):*</p>
<p>{</p>
<p>    var myBA:ByteArray = new ByteArray();</p>
<p>    myBA.writeObject(source);</p>
<p>    myBA.position = 0;</p>
<p>    return(myBA.readObject());</p>
<p>}</p>
<div  class="related_post_title">相关日志</div><ul class="related_post"><li><a href="http://as3.aa-a.net/as3-localconnection-sharedobject.html" title="AS3本地运行库LocalConnection,SharedObject详解">AS3本地运行库LocalConnection,SharedObject详解</a></li><li><a href="http://as3.aa-a.net/as3-flex-bezier-curve.html" title="AS3 Flex的一个贝塞尔(Bezier)曲线图形实例">AS3 Flex的一个贝塞尔(Bezier)曲线图形实例</a></li><li><a href="http://as3.aa-a.net/as3-displacement-computational-performance.html" title="AS3位移与位计算性能优化比较">AS3位移与位计算性能优化比较</a></li><li><a href="http://as3.aa-a.net/10-flex-developers-practical-details.html" title="10条Flex开发人员实用的简单细节事情">10条Flex开发人员实用的简单细节事情</a></li><li><a href="http://as3.aa-a.net/flex-java-difference-getter-and-setter.html" title="Flex和Java中Getter,Setter比较与了解">Flex和Java中Getter,Setter比较与了解</a></li><li><a href="http://as3.aa-a.net/as3-volume-control-example-code.html" title="AS3音量简单控制实例代码">AS3音量简单控制实例代码</a></li><li><a href="http://as3.aa-a.net/as3-js-parameters-transfer.html" title="AS3与JS之间的简单自定义参数通讯">AS3与JS之间的简单自定义参数通讯</a></li><li><a href="http://as3.aa-a.net/as3-javascript-object-notation.html" title="AS3与JavaScript Object Notation的简单通信(AS3 JSON)">AS3与JavaScript Object Notation的简单通信(AS3 JSON)</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://as3.aa-a.net/as3-object-assignment-references.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PS前端视觉设计-50套高质量PS效果和制作技巧教程</title>
		<link>http://as3.aa-a.net/ps-50-ps-web-and-posters-skills.html</link>
		<comments>http://as3.aa-a.net/ps-50-ps-web-and-posters-skills.html#comments</comments>
		<pubDate>Wed, 15 Dec 2010 03:36:35 +0000</pubDate>
		<dc:creator>Linkjun</dc:creator>
				<category><![CDATA[前端视觉设计]]></category>
		<category><![CDATA[UI设计]]></category>
		<category><![CDATA[WEB]]></category>
		<category><![CDATA[WEB设计]]></category>
		<category><![CDATA[交互设计]]></category>
		<category><![CDATA[前端设计]]></category>
		<category><![CDATA[素材]]></category>
		<category><![CDATA[视觉设计]]></category>
		<category><![CDATA[设计]]></category>

		<guid isPermaLink="false">http://as3.aa-a.net/?p=985</guid>
		<description><![CDATA[ps：这里作者收集了50个photoshop 处理效果和制作技巧，想必无论是在网页设计、平面领域还是交互设计都是值得珍藏的。前半部以交互和平面海报设计为主，后半部分则以网页web交互设计为主。... ]]></description>
			<content:encoded><![CDATA[<h2><a href="http://as3.aa-a.net/index.php/ps-50-ps-web-and-posters-skills.html"><img title="PS前端视觉设计-50套高质量PS效果和制作技巧教程" src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/fairytalewallpaper.jpg" alt="PS前端视觉设计-50套高质量PS效果和制作技巧教程" width="492" height="328" /></a></h2>
<p>ps：这里作者收集了50个photoshop 处理效果和制作技巧，想必无论是在网页设计、平面领域还是交互设计都是值得珍藏的。前半部以交互和平面海报设计为主，后半部分则以网页web交互设计为主。大家可以选择点击查看。</p>
<p><span id="more-985"></span></p>
<h3>Create a Nature Inspired Photo Manipulation in Photoshop</h3>
<p>Here’s a quick (around 1 hour) intermediate tutorial for creating a nature-inspired photo manipulation. The resulting image is beautiful and ethereal, and the techniques used could easily be combined to create other images with similar surreal imagery.</p>
<p><a rel="nofollow" href="http://psd.tutsplus.com/tutorials/photo-effects-tutorials/create-a-nature-inspired-photo-manipulation-in-photoshop/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/naturephotomanipulation.jpg" alt="" width="500" height="340" /></a></p>
<h3>Create a Magical Four Piece Stardust Composition</h3>
<p>This beginner Photoshop tutorial shows how to create a photo composition with four faces and a nebula-style background. Total completion time is around an hour, and the techniques used could easily be adapted to creating other compositions.</p>
<p><a rel="nofollow" href="http://psd.tutsplus.com/tutorials/tutorials-effects/create-a-magical-four-piece-stardust-composition-basix/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/stardustcomposition.jpg" alt="" width="500" height="340" /></a></p>
<h3>Create a Realistic Panoramic Matte Painting in Photoshop</h3>
<p>Here’s a photomanipulation tutorial that will show you how to create a matte painting (like those used in movies for set backgrounds that would be too expensive or difficult to create). It’s aimed at intermediate Photoshop users, and takes between five and eight hours to complete.</p>
<p><a rel="nofollow" href="http://psd.tutsplus.com/tutorials/photo-effects-tutorials/create-a-realistic-panoramic-matte-painting-in-photoshop/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/panoramicmattepainting.jpg" alt="" width="500" height="340" /></a></p>
<h3>Create a Devastating Twister with Photo Manipulation Techniques</h3>
<p>This photo manipulation tutorial shows how to combine a variety of images to create a tornado destroying everything in its path. It’s an intermediate-level tutorial, which should take about four hours to complete.</p>
<p><a rel="nofollow" href="http://psd.tutsplus.com/tutorials/photo-effects-tutorials/create-a-devastating-twister-with-photo-manipulation-techniques/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/devastatingtwister.jpg" alt="" width="500" height="340" /></a></p>
<h3>Use Photo Manipulation and 3D Layers to Design a Surreal Cover Art Illustration</h3>
<p>In this intermediate tutorial, you’ll learn to use things like the Vanishing Point filter and 3D layers to create an amazing photo manipulation. It also explains how to keep text layers editable, which can be a huge time-saver if you need to make changes to the design.</p>
<p><a rel="nofollow" href="http://psd.tutsplus.com/tutorials/photo-effects-tutorials/use-photo-manipulation-and-3d-layers-to-design-a-surreal-cover-art-illustration/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/coverartillustration.jpg" alt="" width="500" height="340" /></a></p>
<h3>Reader Photoshop Tutorial: Sisters by Marcos Torres</h3>
<p>This tutorial from Abduzeedo shows you how to create a macabre vintage photo manipulation of some particularly creepy sisters. Instructions are clear and easy to follow, making the tutorial suitable for beginners.</p>
<p><a rel="nofollow" href="http://abduzeedo.com/reader-photoshop-tutorial"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/sisterstutorial.jpg" alt="" width="500" height="340" /></a></p>
<h3>Reader Tutorial: Planet X Matte Painting in Photoshop</h3>
<p>Here’s another matte painting tutorial, this time showing a desolate sci-fi scene with a city in the distance. The tutorial is easy to follow and the end result is quite stunning.</p>
<p><a rel="nofollow" href="http://abduzeedo.com/planet-x-matte-painting-photoshop-santosh"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/planetxmattepainting.jpg" alt="" width="500" height="340" /></a></p>
<h3>Creating an Ecological Fairy Tale Wallpaper</h3>
<p>Here’s a relatively simple photo manipulation tutorial for creating a fairy tale-style wallpaper with floating islands. Instructions are straightforward, though sparse in places, making it best-suited for intermediate users.</p>
<p><a rel="nofollow" href="http://10steps.sg/tutorials/photoshop/creating-an-ecological-fairy-tale-wallpaper/"></a></p>
<h3>Create a Grungy Scene with Colorful Lights in Photoshop</h3>
<p>Here’s a grungy photo manipulation tutorial that makes use of compositing, blending, and filtering techniques. The lighting effects in this tutorial could easily be applied to other photo manipulations.</p>
<p><a rel="nofollow" href="http://designinstruct.com/digital-art/create-a-grungy-scene-with-colorful-lights-in-photoshop/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/grungycolorfullights.jpg" alt="" width="500" height="340" /></a></p>
<h3>Make a Divinely Dark Zen Composition in Photoshop</h3>
<p>This tutorial shows how to create a photo composition with a selective coloring effect. It teaches us the Color Range command, and uses image adjustments, warping and blurring to give the finished image a sense of depth and motion.</p>
<p><a rel="nofollow" href="http://designinstruct.com/digital-art/photo-manipulation/make-a-divinely-dark-zen-composition-in-photoshop/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/darkzencomposition.jpg" alt="" width="500" height="340" /></a></p>
<h3>Create an Ink-Splattering Knight Composition</h3>
<p>This tutorial shows you how to create a grungy knight photo-manipulation by combining images and textures.</p>
<p><a rel="nofollow" href="http://10steps.sg/tutorials/photoshop/create-an-ink-splattering-knight-composition/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/knightcomposition.jpg" alt="" width="500" height="340" /></a></p>
<h3>Creating Funny Big Head Characters in Photoshop</h3>
<p>This tutorial will show you how to create giant heads from portrait photos (kind of like the Red Queen’s head in the new Alice in Wonderland).</p>
<p><a rel="nofollow" href="http://10steps.sg/tutorials/photoshop/creating-funny-big-head-characters-in-photoshop/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/bigheadcharacters.jpg" alt="" width="500" height="340" /></a></p>
<h3>Giving Your Photograph an Antique Look</h3>
<p>This tutorial from 10Steps.SG shows how to create an antique effect on any photo, including texture overlays and recoloring techniques.</p>
<p><a rel="nofollow" href="http://10steps.sg/tutorials/photoshop/giving-your-photograph-an-antique-look/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/antiquephoto.jpg" alt="" width="500" height="340" /></a></p>
<h3>Create a Surreal Vintage Futuristic Design with Photoshop</h3>
<p>Here’s a tutorial for creating a grungy vintage-style poster, but with a futuristic twist. It teaches you to create light streaks from scratch, as well as how to use a variety of Photoshop tools.</p>
<p><a rel="nofollow" href="http://designinstruct.com/graphic-design/create-a-surreal-vintage-futuristic-design-with-photoshop/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/vintagefuturisticdesign.jpg" alt="" width="500" height="340" /></a></p>
<h3>Create a Fantasy-Horror Scene in Photoshop</h3>
<p>If this creepy little girl rising from the pages of a book doesn’t give you the chills, I’m not sure what will. This tutorial will show you how to create her by combining a number of images and textures.</p>
<p><a rel="nofollow" href="http://wegraphics.net/blog/tutorials/photoshop/create-a-fantasy-horror-scene-in-photoshop/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/fantasyhorrorscene.jpg" alt="" width="500" height="340" /></a></p>
<h3>Design a Grunge Vintage Poster in Photoshop</h3>
<p>Here’s a tutorial for creating this cool grungy vintage poster, with circle cutouts. It teaches you a variety of techniques related to using textures and adjustment layers.</p>
<p><a rel="nofollow" href="http://wegraphics.net/blog/tutorials/photoshop/design-a-grunge-vintage-poster-in-photoshop/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/grungevintageposter.jpg" alt="" width="500" height="340" /></a></p>
<h3>Create a Vibrant Colorful Alcohol Product Ad in Photoshop</h3>
<p>Here’s a fantastic photo manipulation and compositing tutorial for creating a stylish and bold alcohol ad, that could be adapted to other beverages.</p>
<p><a rel="nofollow" href="http://design.creativefan.com/create-a-vibrant-colorful-alcohol-product-ad/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/alcoholad.jpg" alt="" width="500" height="340" /></a></p>
<h2>Digital Painting and Drawing</h2>
<p>Photoshop excels at digital painting and drawing, especially when used with a tablet. Here are a handful of tutorials to get you started.</p>
<h3>How to Paint a Fantasy Portrait from Scratch with Photoshop</h3>
<p>Digital painting can be intimidating for a lot of Photoshop users, even if you’re perfectly comfortable doing photo effects and manipulations. It just seems so much more complicated, especially for those who don’t think they have any fine art abilities. But this tutorial from Psdtuts+ shows you exactly how to create a fantasy portrait painting, from scratch. The fact that it’s aimed at beginners and can be completed in about 2 hours only makes it better!</p>
<p><a rel="nofollow" href="http://psd.tutsplus.com/tutorials/painting/how-to-paint-a-fantasy-portrait-from-scratch-with-photoshop/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/fantasypaintingfromscratch.jpg" alt="" width="500" height="340" /></a></p>
<h3>Draw a Pirate Character in Photoshop</h3>
<p>This tutorial from Psdtuts+ shows how to draw a pirate caricature based on a hand-drawn sketch. The entire process takes five or six hours, and is best for intermediate Photoshop users.</p>
<p><a rel="nofollow" href="http://psd.tutsplus.com/tutorials/drawing/draw-a-pirate-character-in-photoshop/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/piratecharacter.jpg" alt="" width="500" height="340" /></a></p>
<h3>Concept Art: Create a Sci-Fi Interior Using Digital Painting Techniques</h3>
<p>Sci-fi concept art is a popular subject for digital painting. It’s also one that can be intimidating for a lot of users, especially when the image you want to create exists only in your own head. This tutorial is a great introduction to creating sci-fi concept art, aimed at intermediate Photoshop users.</p>
<p><a rel="nofollow" href="http://psd.tutsplus.com/tutorials/drawing/concept-art-create-a-sci-fi-interior-using-digital-painting-techniques/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/scifiinterior.jpg" alt="" width="500" height="340" /></a></p>
<h3>Create a Photo Realistic USB Cable in Photoshop</h3>
<p>Here’s a beginner tutorial for creating a realistic-looking USB cable. The tutorial should take just over an hour, and the result is fantastic. The tutorial itself is broken down into very easy to follow steps, with plenty of illustrations.</p>
<p><a rel="nofollow" href="http://psd.tutsplus.com/tutorials/drawing/create-a-photo-realistic-usb-cable-in-photoshop/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/usbcable.jpg" alt="" width="500" height="340" /></a></p>
<h2>Text Effects and Icon Designs</h2>
<p>While text and icon designs are often done in Illustrator rather than Photoshop, that doesn’t mean there aren’t plenty of great Photoshop techniques for creating either. The dozen tutorials below prove it.</p>
<h3>Easy Casino Style Sign in Photoshop</h3>
<p>This tutorial from Abduzeedo shows how to create a lit-up sign like those seen on Vegas casinos. It’s a simple tutorial with very specific step-by-step instructions, suitable for beginners.</p>
<p><a rel="nofollow" href="http://abduzeedo.com/easy-casino-style-sign-photoshop"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/casinostylesign.jpg" alt="" width="500" height="340" /></a></p>
<h3>Super Easy Typographic Portrait in Photoshop</h3>
<p>Typographic portraits are a cool design style, but can seem incredibly complex and time-consuming to create. Not anymore! With this short tutorial from Abduzeedo, you can quickly create a typographic portrait from virtually any portrait photo.</p>
<p><a rel="nofollow" href="http://abduzeedo.com/super-easy-typographic-portrait-photoshop"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/typographicportrait.jpg" alt="" width="500" height="340" /></a></p>
<h3>Create a Wooden Social Media Icon Quickly with Photoshop</h3>
<p>Here’s a simple tutorial for creating a wood-textured social media icon that would be right at home in a grunge or similar design. The end result is quite gorgeous, and it’s quick to create.</p>
<p><a rel="nofollow" href="http://designinstruct.com/iconlogo-design/create-a-wooden-social-media-icon-quickly-with-photoshop/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/woodensocialmediaicon.jpg" alt="" width="500" height="340" /></a></p>
<h3>How to Create a Detailed Briefcase Icon in Photoshop</h3>
<p>Here’s a simple tutorial for creating a detailed, textured briefcase icon, suitable for beginners.</p>
<p><a rel="nofollow" href="http://line25.com/tutorials/how-to-create-a-detailed-briefcase-icon-in-photoshop"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/briefcaseicon.jpg" alt="" width="500" height="340" /></a></p>
<h3>Create a Harry Potter Style Text Effect in Photoshop</h3>
<p>This tutorial shows you how to create 3D style text like that used for the Harry Potter movies.</p>
<p><a rel="nofollow" href="http://10steps.sg/tutorials/photoshop/create-a-harry-potter-style-text-effect-in-photoshop/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/harrypottertexteffect.jpg" alt="" width="500" height="340" /></a></p>
<h3>Creating Retro Folded Typography Using Photoshop</h3>
<p>This tutorial shows you how to create multi-colored, textured lettering with a convincing folded-paper effect.</p>
<p><a rel="nofollow" href="http://designinstruct.com/graphic-design/text-effects/creating-retro-folded-typography-using-photoshop/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/retrofoldedtypography.jpg" alt="" width="500" height="340" /></a></p>
<h3>Create a Funky Retro Wavy Text Effect in Photoshop</h3>
<p>Here’s a fantastic tutorial for creating retro-style textured lettering with wavy coloring evocative of the 70s.</p>
<p><a rel="nofollow" href="http://designinstruct.com/graphic-design/text-effects/create-a-funky-retro-wavy-text-effect-in-photoshop/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/retrowavytext.jpg" alt="" width="500" height="340" /></a></p>
<h3>How to Create a 3D book Icon in Photoshop</h3>
<p>This tutorial will show you how to create an awesome little book icon, entirely from scratch.</p>
<p><a rel="nofollow" href="http://designinstruct.com/iconlogo-design/how-to-create-a-3d-book-icon-in-photoshop/"></a></p>
<h3>Modern 3D Text Effect</h3>
<p>This tutorial explains how to create a smooth, modern 3D text effect.</p>
<p><a rel="nofollow" href="http://pshero.com/photoshop-tutorials/text-effects/modern-3d-text-effect"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/modern3dtexteffect.jpg" alt="" width="500" height="340" /></a></p>
<h3>How to Create a Simple and Elegant Text Effect</h3>
<p>The text effect shown in this tutorial is definitely simple and elegant, as well as versatile and easy to create.</p>
<p><a rel="nofollow" href="http://wegraphics.net/blog/tutorials/photoshop/how-to-create-a-simple-and-elegant-text-effect/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/simpleeleganttexteffect.jpg" alt="" width="500" height="340" /></a></p>
<h3>How to Create a Mysterious Poster Design with 3D Text</h3>
<p>This tutorial shows you how to create an awesome 3D text effect for posters or other artwork, that could be easily adapted to almost any word or short phrase.</p>
<p><a rel="nofollow" href="http://wegraphics.net/blog/tutorials/photoshop/how-to-create-a-mysterious-poster-design-with-3d-text/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/mysteriousposterdesign.jpg" alt="" width="500" height="340" /></a></p>
<h3>Create an Awesome Funky Text Effect</h3>
<p>This tutorial will show you how to create some amazing lettering with lighting and other effects.</p>
<p><a rel="nofollow" href="http://design.creativefan.com/create-an-awesome-funky-text-effect/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/funkytexteffect.jpg" alt="" width="500" height="340" /></a></p>
<h2>Web Design Tutorials</h2>
<p>Website design mockups are often created in Photoshop, especially when a lot of textures or patterns will be used. Here are a dozen tutorials to get you started.</p>
<h3>Make a Simple and Slick Accordion Menu in Photoshop</h3>
<p>This tutorial from Design Instruct will show you how to create a stylish and polished website menu that can be used as part of a larger design or as a mini site on its own.</p>
<p><a rel="nofollow" href="http://designinstruct.com/web-design/make-a-simple-and-slick-accordion-menu-in-photoshop/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/accordianmenu.jpg" alt="" width="500" height="340" /></a></p>
<h3>How to Design an Elegant Website in Photoshop</h3>
<p>This tutorial shows complete, step-by-step instructions for how to create a soft, stylish website design mockup in Photoshop. The end result is sophisticated and elegant, and would be perfect for a design portfolio or an ecommerce site.</p>
<p><a rel="nofollow" href="http://trendytuts.com/web-layout-tutorials/how-to-design-an-elegant-website-in-photoshop.html"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/elegantwebsite.jpg" alt="" width="500" height="340" /></a></p>
<h3>Create a Professional Corporate/Business Template in Photoshop</h3>
<p>This tutorial will show you how to create a very professional website design in Photoshop, perfect for a corporate website. The end result is polished enough for even the most conservative industries, but the color scheme gives it a bit more of a modern edge.</p>
<p><a rel="nofollow" href="http://trendytuts.com/web-layout-tutorials/create-a-professional-corporatebusiness-template-in-photoshop.html"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/professionalcorporatebusiness.jpg" alt="" width="500" height="340" /></a></p>
<h3>How to Design a Health/Nutrition or Fitness Website in Photoshop</h3>
<p>This tutorial shows you how to create a casual, funky health-focused website design. The overall design could also be adapted to fit other industries.</p>
<p><a rel="nofollow" href="http://trendytuts.com/web-layout-tutorials/design-a-healthnutrition-or-a-fitness-website-in-photoshop.html"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/healthnutritionfitness.jpg" alt="" width="500" height="340" /></a></p>
<h3>How to Create a WordPress Theme in Photoshop</h3>
<p>This tutorial shows how to create a three-column WP theme that includes a headline space for featured articles and an ad-ready sidebar.</p>
<p><a rel="nofollow" href="http://trendytuts.com/web-layout-tutorials/how-to-create-a-wordpress-theme-in-photoshop.html"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/wordpressthemeinphotoshop.jpg" alt="" width="500" height="340" /></a></p>
<h3>Design a Textured Outdoors Website in Photoshop</h3>
<p>This tutorial shows you how to create a dark, textured layout. The techniques used could easily be used for other design styles. Also linked is a second tutorial for coding the design.</p>
<p><a rel="nofollow" href="http://line25.com/tutorials/design-a-textured-outdoors-website-in-photoshop"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/texturedoutdoorswebsite.jpg" alt="" width="500" height="340" /></a></p>
<h3>Create a Gnarly Snowboarding Themed Web Design</h3>
<p>This tutorial, from Chris Spooner, shows how to create a cool blue website design with some nice texture effects and a snowboarding theme.</p>
<p><a rel="nofollow" href="http://line25.com/tutorials/create-a-gnarly-snowboarding-themed-web-design"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/snowboardingdesign.jpg" alt="" width="500" height="340" /></a></p>
<h3>Make a Stylishly Elegant Portfolio Design in Photoshop</h3>
<p>This tutorial from Design Instruct shows how to create a sophisticated portfolio design with a number of textures and patterns.</p>
<p><a rel="nofollow" href="http://designinstruct.com/web-design/make-a-stylishly-elegant-portfolio-web-design-in-photoshop/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/elegantportfoliodesign.jpg" alt="" width="500" height="340" /></a></p>
<h3>Create a Web Application Website Design in Photoshop</h3>
<p>This tutorial shows how to create a polished and professional website design for an application. The end result is suitable for a wide variety of app types, and could easily be adapted for even more.</p>
<p><a rel="nofollow" href="http://designinstruct.com/web-design/create-a-web-application-website-design-in-photoshop/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/webapplicationwebsite.jpg" alt="" width="500" height="340" /></a></p>
<h3>Creating a Stylish Blog Design Layout in Photoshop</h3>
<p>Here’s another tutorial from Chris Spooner, this time for an elegant blog layout.</p>
<p><a rel="nofollow" href="http://line25.com/tutorials/creating-a-stylish-blog-design-layout-in-photoshop"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/stylishblogdesign.jpg" alt="" width="500" height="340" /></a></p>
<h3>How to Create a Distinguishable Textured Web Layout in Photoshop</h3>
<p>This tutorial teaches a variety of Photoshop techniques, including how to create letterpress-style text and complex shadows, in the creation of this stylish website design.</p>
<p><a rel="nofollow" href="http://wegraphics.net/blog/tutorials/photoshop/how-to-create-a-distinguishable-textured-web-layout-in-photoshop/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/texturedweblayout.jpg" alt="" width="500" height="340" /></a></p>
<h3>How to Create a Clean and Professional Resume</h3>
<p>This tutorial shows you how to design a simple, modern online resume.</p>
<p><a rel="nofollow" href="http://design.creativefan.com/how-to-create-a-clean-and-professional-resume/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/cleanprofessionalresume.jpg" alt="" width="500" height="340" /></a></p>
<h2>Other Tutorials</h2>
<p>Not every great Photoshop tutorial fits neatly into one of the categories above. But the handful featured below still deserve a place on this list.</p>
<h3>Hexagon Bokeh Effect in Photoshop</h3>
<p>This tutorial shows how to create a bokeh-like texture composed of various sized hexagons. The end result is beautiful and could be adapted to other shapes quite easily.</p>
<p><a rel="nofollow" href="http://abduzeedo.com/hexagon-bokeh-effect-photoshop"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/hexagonbokeh.jpg" alt="" width="500" height="340" /></a></p>
<h3>Create a Fantastic Abstract Fan Poster</h3>
<p>This tutorial uses a lot of different Photoshop effects and filters, especially blur filters for the background. The end result is quite stunning, but the step-by-step instructions are simple enough for a beginner to follow.</p>
<p><a rel="nofollow" href="http://www.tutorial9.net/photoshop/create-a-fantastic-abstract-fan-poster/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/abstractfanposter.jpg" alt="" width="500" height="340" /></a></p>
<h3>Make a Stylish Futuristic Textured Wallpaper in Photoshop</h3>
<p>This tutorial will show you how to create a textured wallpaper reminiscent of a nebula, complete with bold, futuristic graphics. The methods for combining textures and effects could easily be adapted to any number of designs.</p>
<p><a rel="nofollow" href="http://designinstruct.com/graphic-design/make-a-stylish-futuristic-textured-wallpaper-in-photoshop/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/futuristicwallpaper.jpg" alt="" width="500" height="340" /></a></p>
<h3>Create Beautiful Abstract Mosaics</h3>
<p>This tutorial from Digital Arts shows how to create an abstract mosaic with a relatively simple technique.</p>
<p><a rel="nofollow" href="http://www.digitalartsonline.co.uk/tutorials/index.cfm?featureID=3243921"></a></p>
<h3>Brilliant Matte Dispersion Effects in Photoshop</h3>
<p>This tutorial shows you how to create your own custom Photoshop brushes that can then be used to create a matte dispersion effect.</p>
<p><a rel="nofollow" href="http://design.creativefan.com/brilliant-matte-dispersion-effects-in-photoshop/"><img src="http://netdna.webdesignerdepot.com/uploads/photoshop_tutorials_2010/mattedispersioneffect.jpg" alt="" width="500" height="340" /></a></p>
<p><em>作者： <a rel="nofollow" href="http://cameronchapman.com/">Cameron Chapman</a>.</em></p>
<p><em><strong>有新的图片处理技巧，可以留言或者邮件（<a href="mailto:pk.link@163.com">pk.link@163.com</a>）来稿，期待你的快乐和大家一起分享!</strong></em></p>
<div  class="related_post_title">相关日志</div><ul class="related_post"><li><a href="http://as3.aa-a.net/domestic-several-cattle-man-designers-blog.html" title="AS3推荐几个国内牛人设计师的blog！">AS3推荐几个国内牛人设计师的blog！</a></li><li><a href="http://as3.aa-a.net/flash-web-layout-design.html" title="点的构成-Flash互动类网站的布局设计">点的构成-Flash互动类网站的布局设计</a></li><li><a href="http://as3.aa-a.net/2010web-solutions-design-layout.html" title="详解2010未来WEB前端设计布局趋势">详解2010未来WEB前端设计布局趋势</a></li><li><a href="http://as3.aa-a.net/online-note-desktop-air-ui-design.html" title="online note桌面交互程序界面设计">online note桌面交互程序界面设计</a></li><li><a href="http://as3.aa-a.net/the-web-front-end-design-wap-era.html" title="WAP前端设计，wap时代的WEB前端设计规则">WAP前端设计，wap时代的WEB前端设计规则</a></li><li><a href="http://as3.aa-a.net/indoor-applied-to-web-design.html" title="室内设计原理应用到WEB设计">室内设计原理应用到WEB设计</a></li><li><a href="http://as3.aa-a.net/web-designer-dozens-practical-tools.html" title="前台Web设计师应该知道的几十个WEB实用工具">前台Web设计师应该知道的几十个WEB实用工具</a></li><li><a href="http://as3.aa-a.net/forty-of-music-player-ui.html" title="AS3分享收藏的四十款超酷的国外音乐播放器UI界面">AS3分享收藏的四十款超酷的国外音乐播放器UI界面</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://as3.aa-a.net/ps-50-ps-web-and-posters-skills.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3与JavaScript Object Notation的简单通信(AS3 JSON)</title>
		<link>http://as3.aa-a.net/as3-javascript-object-notation.html</link>
		<comments>http://as3.aa-a.net/as3-javascript-object-notation.html#comments</comments>
		<pubDate>Thu, 09 Dec 2010 02:10:39 +0000</pubDate>
		<dc:creator>Linkjun</dc:creator>
				<category><![CDATA[AS3前端技术]]></category>
		<category><![CDATA[actionscript3.0]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[AS3代码]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[教程]]></category>

		<guid isPermaLink="false">http://as3.aa-a.net/?p=979</guid>
		<description><![CDATA[json是JavaScript Object Notation的简写，是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它是基于JavaScript（Standard ECMA-262 3rd Edition – December 1999）的一个子集，也就... ]]></description>
			<content:encoded><![CDATA[<p>json是JavaScript Object Notation的简写，是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它是基于JavaScript（Standard ECMA-262 3rd Edition – December 1999）的一个子集，也就是说他是来自于javascript的东西。因为现在ajax的流行，大部分网站会采用ajax的模式和构架，那么json会是一个数据传输的首选（文本方式太简单，要是大数据量的时候无法理解，xml的方式数据量大，在解析的时候会增加服务器负担），那么要是一个网站从 ajax构架的基础上出一个flex/<span class='wp_keywordlink'><a href="http://as3.aa-a.net/" title="Flash" target="_blank">Flash</a></span>版的界面的时候使用json会最少地减少服务器端的程序改动。<span id="more-979"></span></p>
<p>JSON的结构写法很容易理解，它原本就是以数据量小和清晰的数据格式而著称的。但是在AS中使用json其实并不是一个必须或是很好的选择，很多时候我们还是会用XML，因为AS对XML的解析已经很好了。<br />
用XML表示如下：</p>
<blockquote><p>&lt;?xml version=”1.0&#8243; encoding=”utf-8&#8243;?&gt;<br />
　　&lt;user&gt;<br />
　　&lt;name&gt;张三 &lt;/name&gt;<br />
　　&lt;password&gt;123456&lt;/password&gt;<br />
　　&lt;department&gt;技术部&lt;/department&gt;<br />
　　&lt;sex&gt;男&lt;/sex&gt;<br />
　　&lt;age&gt;30&lt;/age&gt;<br />
　　&lt;/user&gt;</p></blockquote>
<p>对于这样一个XML来说，如果数据量大了的确让人头昏眼花，也不好处理，但是如果我们转化成下面这种形式的话：</p>
<blockquote><p>&lt;?xml version=”1.0&#8243; encoding=”utf-8&#8243;?&gt;<br />
　　&lt;user&gt;<br />
            &lt;people name=”张三” password=”123456&#8243; depattment=”技术部” sex=”男” age=”30&#8243; /&gt;<br />
　　&lt;/user&gt;</p></blockquote>
<p>再跟相应的JSON来比较：</p>
<blockquote><p>{“name”:”张三”,”password”:”123456&#8243;,”department”:”技术部”,”sex”:”男”,”age”:”30&#8243;}</p></blockquote>
<p>首先，你需要有一个JSON的类库，建议去下载adobe官方提供的产品外类库：<span class='wp_keywordlink'><a href="http://as3.aa-a.net/" title="AS3代码,AS3类,AS3实例" target="_blank">as3</a></span>corelib。类库的使用就不多说了，大家应该都知道。<br />
       先说说获取数据。可以这么说，只要你懂<span class='wp_keywordlink'><a href="http://as3.aa-a.net/" title="AS3代码,AS3类,AS3实例" target="_blank">as3</a></span>与XML的交互，那么就一定能懂JSON，因为两者几乎是一样的，你唯一需要做的只是了解一下JSON的格式。例如下面这个JSON的例子，就像XML一样，你可以通过任何动态页面来生成这个格式，也可以通过静态的甚至TXT来读取也行。</p>
<blockquote><p>
[{"name":"Hans","age":"32"},<br />
{"name":"John","age":"12"},<br />
{"name":"Zaki","age":"34"},<br />
{"name":"Dr. Cox","age":"88"}]
</p></blockquote>
<p>AS中的代码：</p>
<blockquote><p>package {<br />
import com.adobe.serialization.json.JSON;</p>
<p>import flash.display.Sprite;<br />
import flash.events.Event;<br />
import flash.net.URLLoader;<br />
import flash.net.URLRequest;</p>
<p>public class getJSON extends Sprite {<br />
      public function getJSON() {<br />
      var loader:URLLoader = new URLLoader();</p>
<p>      loader.load(new URLRequest( “<a href="http://127.0.0.1/json.php">http://127.0.0.1/json.php</a>” ));//这里是你要获取JSON的路径<br />
      loader.addEventListener(Event.COMPLETE, decodeJSON);<br />
}<br />
private function decodeJSON(evt:Event):void {<br />
        var persons:Array = JSON.decode( URLLoader( evt.target ).data );<br />
   //在这里，就可以通过操作数组来应用数据了，很方便<br />
         for (var i=0; i&amp;lt;persons.length; i++) {<br />
        trace( persons[i].name );<br />
   }<br />
}<br />
}<br />
}</p></blockquote>
<p> </p>
<p>是不是很简单呢？在这里我们只用到了decode()这个方法，其实JSON类库要用的也只有两个方法，另一个就是马上要用到的encode()。大家可以理解为编码与解码。发送数据的代码如下：</p>
<blockquote><p>package {<br />
   import com.adobe.serialization.json.JSON;</p>
<p>   import flash.display.Sprite;<br />
   import flash.events.Event;<br />
   import flash.net.*;</p>
<p>public class sendJSON extends Sprite {<br />
     public function sendJSON() {<br />
   var arr : Array = new Array({“name”:”Hans”,”age”:”32″},{“name”:”John”,”age”:”12″},{“name”:”Zaki”,”age”:”34″},{“name”:”Dr. Cox”,”age”:”88″});//这里是要发送的数据，可以直接写，也可以是由其他方法生成，不过要注意格式。<br />
   sendjson( arr );<br />
}<br />
private function sendjson( a : Array ):void {<br />
   var jsonString : String = JSON.encode(a);</p>
<p>   var urlVariables:URLVariables = new URLVariables();<br />
   urlVariables.json = jsonString;</p>
<p>   var urlRequest:URLRequest = new URLRequest(<a href="http://127.0.0.1/json.php">http://127.0.0.1/json.php</a>); //这里是接收数据的动态页。<br />
   urlRequest.method = URLRequestMethod.POST;<br />
   urlRequest.data = urlVariables;</p>
<p>   //其实到这已经结束了，下面的XML只是测试结果而已。<br />
   var urlLoader:URLLoader = new URLLoader();<br />
   urlLoader.addEventListener(Event.COMPLETE, onURLLoaderCompleteEvent);<br />
   urlLoader.load(urlRequest);<br />
}<br />
private function onURLLoaderCompleteEvent( evt : Event ):void {<br />
   var xml:XML = new XML(evt.target.data);<br />
   trace(xml);<br />
}<br />
}<br />
}</p></blockquote>
<div  class="related_post_title">相关日志</div><ul class="related_post"><li><a href="http://as3.aa-a.net/as3-js-parameters-transfer.html" title="AS3与JS之间的简单自定义参数通讯">AS3与JS之间的简单自定义参数通讯</a></li><li><a href="http://as3.aa-a.net/as3-finger-chart.html" title="AS3 finger chart轻量级制图表,统计图,饼图,柱形图类">AS3 finger chart轻量级制图表,统计图,饼图,柱形图类</a></li><li><a href="http://as3.aa-a.net/as3-displacement-computational-performance.html" title="AS3位移与位计算性能优化比较">AS3位移与位计算性能优化比较</a></li><li><a href="http://as3.aa-a.net/10-flash-as3-developers-practical-details.html" title="10条Flash AS3开发人员实用的简单细节事情">10条Flash AS3开发人员实用的简单细节事情</a></li><li><a href="http://as3.aa-a.net/flex-java-difference-getter-and-setter.html" title="Flex和Java中Getter,Setter比较与了解">Flex和Java中Getter,Setter比较与了解</a></li><li><a href="http://as3.aa-a.net/as3-class-diagram-air.html" title="AS3 AS3ClassDiagram.air官方类包结构图查看工具">AS3 AS3ClassDiagram.air官方类包结构图查看工具</a></li><li><a href="http://as3.aa-a.net/as3-child-index.html" title="AS3 中的Child Index了解">AS3 中的Child Index了解</a></li><li><a href="http://as3.aa-a.net/actionscript-as3-event-mechanism.html" title="actionscript AS3的Event事件机制探讨">actionscript AS3的Event事件机制探讨</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://as3.aa-a.net/as3-javascript-object-notation.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3 String LCS 最长字符匹配矩阵</title>
		<link>http://as3.aa-a.net/as3-string-lcs.html</link>
		<comments>http://as3.aa-a.net/as3-string-lcs.html#comments</comments>
		<pubDate>Wed, 08 Dec 2010 01:28:09 +0000</pubDate>
		<dc:creator>Linkjun</dc:creator>
				<category><![CDATA[AS3前端技术]]></category>
		<category><![CDATA[actionscript3.0]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[String]]></category>
		<category><![CDATA[矩阵]]></category>

		<guid isPermaLink="false">http://as3.aa-a.net/?p=968</guid>
		<description><![CDATA[as3 String LCS 最长字符匹配矩阵     package {     import Flash.display.Sprite;     import flash.text.TextField;     import flash.text.TextFieldType;     import flash.text.TextFormat;     import flash.events.Event;     public c... ]]></description>
			<content:encoded><![CDATA[<div class="mceTemp" style="text-align: center;">
<dl class="wp-caption " style="width: 522px;">
<dt class="wp-caption-dt"><a href="http://as3.aa-a.net/index.php/as3-string-lcs.html "><img title="AS3 String LCS 最长字符匹配矩阵" src="http://as3.aa-a.net/file/2010/12/substring.bmp" alt="AS3 string LCS" width="512" height="224" /></a></dt>
<dd class="wp-caption-dd"><span class='wp_keywordlink'><a href="http://as3.aa-a.net/" title="AS3代码,AS3类,AS3实例" target="_blank">as3</a></span> String LCS 最长字符匹配矩阵</dd>
</dl>
</div>
<p style="text-align: left;"><span id="more-968"></span> </p>
<p> </p>
<p style="text-align: center;"><a href="http://as3.aa-a.net/index.php/as3-string-lcs.html"></a></p>
<div class="source" style="background-color: #3f3f3f; font-family: '[object HTMLOptionElement]', 'Consolas', 'Lucida Console', 'Courier New'; color: #dcdccc;"><span style="color: #efefaf; font-weight: bold;">package</span> <span style="color: #dcdccc;">{</span><br />
    <span style="color: #e3ceab;">import</span> <span style="color: #dcdccc;"><span class='wp_keywordlink'><a href="http://as3.aa-a.net/" title="Flash" target="_blank">Flash</a></span>.display.Sprite</span>;<br />
    <span style="color: #e3ceab;">import</span> <span style="color: #dcdccc;"><span class='wp_keywordlink'><a href="http://as3.aa-a.net/" title="Flash" target="_blank">Flash</a></span>.text.TextField</span>;<br />
    <span style="color: #e3ceab;">import</span> <span style="color: #dcdccc;">flash.text.TextFieldType</span>;<br />
    <span style="color: #e3ceab;">import</span> <span style="color: #dcdccc;">flash.text.TextFormat</span>;<br />
    <span style="color: #e3ceab;">import</span> <span style="color: #dcdccc;">flash.events.Event</span>;<br />
    <span style="color: #efefaf; font-weight: bold;">public</span> <span style="color: #efefaf; font-weight: bold;">class</span> <span style="color: #dcdccc;">longest</span> <span style="color: #efefaf; font-weight: bold;">extends</span> <span style="color: #dcdccc;">Sprite</span> <span style="color: #dcdccc;">{</span><br />
        <span style="color: #efefaf; font-weight: bold;">private</span> <span style="color: #efefaf; font-weight: bold;">var</span> <span style="color: #dcdccc;">from</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">TextField</span><span style="color: #dcdccc;">=</span><span style="color: #e3ceab;">new</span> <span style="color: #dfdfbf; font-weight: bold;">TextField</span>();<br />
        <span style="color: #efefaf; font-weight: bold;">private</span> <span style="color: #efefaf; font-weight: bold;">var</span> <span style="color: #dcdccc;">to</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">TextField</span><span style="color: #dcdccc;">=</span><span style="color: #e3ceab;">new</span> <span style="color: #dfdfbf; font-weight: bold;">TextField</span>();<br />
        <span style="color: #efefaf; font-weight: bold;">private</span> <span style="color: #efefaf; font-weight: bold;">var</span> <span style="color: #dcdccc;">lcs</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">TextField</span><span style="color: #dcdccc;">=</span><span style="color: #e3ceab;">new</span> <span style="color: #dfdfbf; font-weight: bold;">TextField</span>();<br />
        <span style="color: #efefaf; font-weight: bold;">private</span> <span style="color: #efefaf; font-weight: bold;">var</span> <span style="color: #dcdccc;">text_format</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">TextFormat</span> <span style="color: #dcdccc;">=</span> <span style="color: #e3ceab;">new</span> <span style="color: #dfdfbf; font-weight: bold;">TextFormat</span>();<br />
        <span style="color: #efefaf; font-weight: bold;">public</span> <span style="color: #efefaf; font-weight: bold;">function </span><span style="color: #efef8f;">longest</span>() <span style="color: #dcdccc;">{</span><br />
            <span style="color: #dcdccc;">text_format</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">color</span><span style="color: #dcdccc;">=</span><span style="color: #8cd0d3;">0&#215;000000</span>;<br />
            <span style="color: #dcdccc;">text_format</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">size</span><span style="color: #dcdccc;">=</span><span style="color: #8cd0d3;">24</span>;<br />
            <span style="color: #dcdccc;">addChild</span>(<span style="color: #dcdccc;">from</span>);<br />
            <span style="color: #e3ceab;">with</span> (<span style="color: #dcdccc;">from</span>) <span style="color: #dcdccc;">{</span><br />
                <span style="color: #dcdccc;">type</span><span style="color: #dcdccc;">=</span><span style="color: #dcdccc;">TextFieldType</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">INPUT</span>;<br />
                <span style="color: #dcdccc;">x</span><span style="color: #dcdccc;">=</span><span style="color: #8cd0d3;">20</span>;<br />
                <span style="color: #dcdccc;">y</span><span style="color: #dcdccc;">=</span><span style="color: #8cd0d3;">20</span>;<br />
                <span style="color: #dcdccc;">width</span><span style="color: #dcdccc;">=</span><span style="color: #8cd0d3;">460</span>;<br />
                <span style="color: #dcdccc;">height</span><span style="color: #dcdccc;">=</span><span style="color: #8cd0d3;">30</span>;<br />
                <span style="color: #dcdccc;">text</span><span style="color: #dcdccc;">=</span><span style="color: #cc9393;">“string”</span>;<br />
                <span style="color: #dcdccc;">border</span><span style="color: #dcdccc;">=</span><span style="color: #e3ceab;">true</span>;<br />
                <span style="color: #dcdccc;">setTextFormat</span>(<span style="color: #dcdccc;">text_format</span>);<br />
                <span style="color: #dcdccc;">addEventListener</span>(<span style="color: #dcdccc;">Event</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">CHANGE</span><span style="color: #dcdccc;">,</span><span style="color: #dcdccc;">on_change</span>);<br />
            <span style="color: #dcdccc;">}</span><br />
            <span style="color: #dcdccc;">addChild</span>(<span style="color: #dcdccc;">to</span>);<br />
            <span style="color: #e3ceab;">with</span> (<span style="color: #dcdccc;">to</span>) <span style="color: #dcdccc;">{</span><br />
                <span style="color: #dcdccc;">type</span><span style="color: #dcdccc;">=</span><span style="color: #dcdccc;">TextFieldType</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">INPUT</span>;<br />
                <span style="color: #dcdccc;">x</span><span style="color: #dcdccc;">=</span><span style="color: #8cd0d3;">20</span>;<br />
                <span style="color: #dcdccc;">y</span><span style="color: #dcdccc;">=</span><span style="color: #8cd0d3;">70</span>;<br />
                <span style="color: #dcdccc;">width</span><span style="color: #dcdccc;">=</span><span style="color: #8cd0d3;">460</span>;<br />
                <span style="color: #dcdccc;">height</span><span style="color: #dcdccc;">=</span><span style="color: #8cd0d3;">30</span>;<br />
                <span style="color: #dcdccc;">text</span><span style="color: #dcdccc;">=</span><span style="color: #cc9393;">“substring”</span>;<br />
                <span style="color: #dcdccc;">border</span><span style="color: #dcdccc;">=</span><span style="color: #e3ceab;">true</span>;<br />
                <span style="color: #dcdccc;">setTextFormat</span>(<span style="color: #dcdccc;">text_format</span>);<br />
                <span style="color: #dcdccc;">addEventListener</span>(<span style="color: #dcdccc;">Event</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">CHANGE</span><span style="color: #dcdccc;">,</span><span style="color: #dcdccc;">on_change</span>);<br />
            <span style="color: #dcdccc;">}</span><br />
            <span style="color: #dcdccc;">addChild</span>(<span style="color: #dcdccc;">lcs</span>);<br />
            <span style="color: #e3ceab;">with</span> (<span style="color: #dcdccc;">lcs</span>) <span style="color: #dcdccc;">{</span><br />
                <span style="color: #dcdccc;">x</span><span style="color: #dcdccc;">=</span><span style="color: #8cd0d3;">20</span>;<br />
                <span style="color: #dcdccc;">y</span><span style="color: #dcdccc;">=</span><span style="color: #8cd0d3;">120</span>;<br />
                <span style="color: #dcdccc;">width</span><span style="color: #dcdccc;">=</span><span style="color: #8cd0d3;">460</span>;<br />
                <span style="color: #dcdccc;">height</span><span style="color: #dcdccc;">=</span><span style="color: #8cd0d3;">30</span>;<br />
                <span style="color: #dcdccc;">text</span><span style="color: #dcdccc;">=</span><span style="color: #cc9393;">“LCS = “</span><span style="color: #dcdccc;">+</span><span style="color: #dcdccc;">strlcs</span>(<span style="color: #dcdccc;">from</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">text</span><span style="color: #dcdccc;">,</span><span style="color: #dcdccc;">to</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">text</span>);<br />
                <span style="color: #dcdccc;">setTextFormat</span>(<span style="color: #dcdccc;">text_format</span>);<br />
            <span style="color: #dcdccc;">}</span><br />
        <span style="color: #dcdccc;">}</span><br />
        <span style="color: #efefaf; font-weight: bold;">private</span> <span style="color: #efefaf; font-weight: bold;">function </span><span style="color: #efef8f;">strlcs</span>(<span style="color: #dcdccc;">from</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">String</span><span style="color: #dcdccc;">,</span><span style="color: #dcdccc;">to</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">String</span><span style="color: #dcdccc;">):</span><span style="color: #dfdfbf; font-weight: bold;">String</span> <span style="color: #dcdccc;">{</span><br />
            <span style="color: #7f9f7f;">// finding lengths of both strings</span><br />
            <span style="color: #efefaf; font-weight: bold;">var</span> <span style="color: #dcdccc;">from_len</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">uint</span><span style="color: #dcdccc;">=</span><span style="color: #dcdccc;">from</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">length</span>;<br />
            <span style="color: #efefaf; font-weight: bold;">var</span> <span style="color: #dcdccc;">to_len</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">uint</span><span style="color: #dcdccc;">=</span><span style="color: #dcdccc;">to</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">length</span>;<br />
            <span style="color: #7f9f7f;">// longest is the array which will contain the longest string(s)</span><br />
            <span style="color: #efefaf; font-weight: bold;">var</span> <span style="color: #dcdccc;">longest</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">Array</span><span style="color: #dcdccc;">=</span><span style="color: #e3ceab;">new</span> <span style="color: #dfdfbf; font-weight: bold;">Array</span>();<br />
            <span style="color: #7f9f7f;">// lcs is the matrix used to determine the longest string(s)</span><br />
            <span style="color: #efefaf; font-weight: bold;">var</span> <span style="color: #dcdccc;">lcs</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">Array</span><span style="color: #dcdccc;">=</span><span style="color: #e3ceab;">new</span> <span style="color: #dfdfbf; font-weight: bold;">Array</span>();<br />
            <span style="color: #7f9f7f;">// largest_til_now is the largest match found until now</span><br />
            <span style="color: #efefaf; font-weight: bold;">var</span> <span style="color: #dcdccc;">largest_til_now</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">uint</span><span style="color: #dcdccc;">=</span><span style="color: #8cd0d3;">0</span>;<br />
            <span style="color: #7f9f7f;">// if one of the strings is empty, then we can&#8217;t run the function</span><br />
            <span style="color: #e3ceab;">if</span> (<span style="color: #dcdccc;">from_len</span><span style="color: #dcdccc;">==</span><span style="color: #8cd0d3;">0</span>||<span style="color: #dcdccc;">to_len</span><span style="color: #dcdccc;">==</span><span style="color: #8cd0d3;">0</span>) <span style="color: #dcdccc;">{</span><br />
                <span style="color: #e3ceab;">return</span> <span style="color: #cc9393;">“-”</span>;<br />
            <span style="color: #dcdccc;">}</span><br />
            <span style="color: #7f9f7f;">// filling the matrix with zeros</span><br />
            <span style="color: #e3ceab;">for</span> (<span style="color: #efefaf; font-weight: bold;">var</span> <span style="color: #dcdccc;">i</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">uint</span><span style="color: #dcdccc;">=</span><span style="color: #8cd0d3;">0</span>; <span style="color: #dcdccc;">i</span><span style="color: #dcdccc;">&lt;</span><span style="color: #dcdccc;">from_len</span>; <span style="color: #dcdccc;">i</span><span style="color: #dcdccc;">++)</span> <span style="color: #dcdccc;">{</span><br />
                <span style="color: #dcdccc;">lcs</span><span style="color: #dcdccc;">[</span><span style="color: #dcdccc;">i</span><span style="color: #dcdccc;">]=</span><span style="color: #e3ceab;">new</span> <span style="color: #dfdfbf; font-weight: bold;">Array</span>();<br />
                <span style="color: #e3ceab;">for</span> (<span style="color: #efefaf; font-weight: bold;">var</span> <span style="color: #dcdccc;">j</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">uint</span><span style="color: #dcdccc;">=</span><span style="color: #8cd0d3;">0</span>; <span style="color: #dcdccc;">j</span><span style="color: #dcdccc;">&lt;</span><span style="color: #dcdccc;">to_len</span>; <span style="color: #dcdccc;">j</span><span style="color: #dcdccc;">++)</span> <span style="color: #dcdccc;">{</span><br />
                    <span style="color: #dcdccc;">lcs</span><span style="color: #dcdccc;">[</span><span style="color: #dcdccc;">i</span><span style="color: #dcdccc;">][</span><span style="color: #dcdccc;">j</span><span style="color: #dcdccc;">]=</span><span style="color: #8cd0d3;">0</span>;<br />
                <span style="color: #dcdccc;">}</span><br />
            <span style="color: #dcdccc;">}</span><br />
            <span style="color: #7f9f7f;">// scanning the entire matrix</span><br />
            <span style="color: #e3ceab;">for</span> (<span style="color: #dcdccc;">i</span><span style="color: #dcdccc;">=</span><span style="color: #8cd0d3;">0</span>; <span style="color: #dcdccc;">i</span><span style="color: #dcdccc;">&lt;</span><span style="color: #dcdccc;">from_len</span>; <span style="color: #dcdccc;">i</span><span style="color: #dcdccc;">++)</span> <span style="color: #dcdccc;">{</span><br />
                <span style="color: #e3ceab;">for</span> (<span style="color: #dcdccc;">j</span><span style="color: #dcdccc;">=</span><span style="color: #8cd0d3;">0</span>; <span style="color: #dcdccc;">j</span><span style="color: #dcdccc;">&lt;</span><span style="color: #dcdccc;">to_len</span>; <span style="color: #dcdccc;">j</span><span style="color: #dcdccc;">++)</span> <span style="color: #dcdccc;">{</span><br />
                    <span style="color: #7f9f7f;">// if we find a match&#8230;</span><br />
                    <span style="color: #e3ceab;">if</span> (<span style="color: #dcdccc;">from</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">charAt</span>(<span style="color: #dcdccc;">i</span><span style="color: #dcdccc;">)==</span><span style="color: #dcdccc;">to</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">charAt</span>(<span style="color: #dcdccc;">j</span>)) <span style="color: #dcdccc;">{</span><br />
                        <span style="color: #7f9f7f;">// if it&#8217;s the upper left element, set it to 1</span><br />
                        <span style="color: #e3ceab;">if</span> (<span style="color: #dcdccc;">i</span><span style="color: #dcdccc;">==</span><span style="color: #8cd0d3;">0</span>||<span style="color: #dcdccc;">j</span><span style="color: #dcdccc;">==</span><span style="color: #8cd0d3;">0</span>) <span style="color: #dcdccc;">{</span><br />
                            <span style="color: #dcdccc;">lcs</span><span style="color: #dcdccc;">[</span><span style="color: #dcdccc;">i</span><span style="color: #dcdccc;">][</span><span style="color: #dcdccc;">j</span><span style="color: #dcdccc;">]=</span><span style="color: #8cd0d3;">1</span>;<br />
                            <span style="color: #7f9f7f;">// if not, set it to 1 plus the value of its upper left element</span><br />
                        <span style="color: #dcdccc;">}</span> <span style="color: #e3ceab;">else</span> <span style="color: #dcdccc;">{</span><br />
                            <span style="color: #dcdccc;">lcs</span><span style="color: #dcdccc;">[</span><span style="color: #dcdccc;">i</span><span style="color: #dcdccc;">][</span><span style="color: #dcdccc;">j</span><span style="color: #dcdccc;">]=</span><span style="color: #dcdccc;">lcs</span><span style="color: #dcdccc;">[</span><span style="color: #dcdccc;">i</span><span style="color: #dcdccc;">-</span><span style="color: #8cd0d3;">1</span><span style="color: #dcdccc;">][</span><span style="color: #dcdccc;">j</span><span style="color: #dcdccc;">-</span><span style="color: #8cd0d3;">1</span><span style="color: #dcdccc;">]+</span><span style="color: #8cd0d3;">1</span>;<br />
                        <span style="color: #dcdccc;">}</span><br />
                        <span style="color: #7f9f7f;">// if this element is bigger than the largest match&#8230;</span><br />
                        <span style="color: #e3ceab;">if</span> (<span style="color: #dcdccc;">lcs</span><span style="color: #dcdccc;">[</span><span style="color: #dcdccc;">i</span><span style="color: #dcdccc;">][</span><span style="color: #dcdccc;">j</span><span style="color: #dcdccc;">]&gt;</span><span style="color: #dcdccc;">largest_til_now</span>) <span style="color: #dcdccc;">{</span><br />
                            <span style="color: #7f9f7f;">// update the largest match and empty the array</span><br />
                            <span style="color: #dcdccc;">largest_til_now</span><span style="color: #dcdccc;">=</span><span style="color: #dcdccc;">lcs</span><span style="color: #dcdccc;">[</span><span style="color: #dcdccc;">i</span><span style="color: #dcdccc;">][</span><span style="color: #dcdccc;">j</span><span style="color: #dcdccc;">];</span><br />
                            <span style="color: #dcdccc;">longest</span><span style="color: #dcdccc;">=</span><span style="color: #e3ceab;">new</span> <span style="color: #dfdfbf; font-weight: bold;">Array</span>();<br />
                        <span style="color: #dcdccc;">}</span><br />
                        <span style="color: #7f9f7f;">// if this element has the same value of the largest match&#8230;</span><br />
                        <span style="color: #e3ceab;">if</span> (<span style="color: #dcdccc;">lcs</span><span style="color: #dcdccc;">[</span><span style="color: #dcdccc;">i</span><span style="color: #dcdccc;">][</span><span style="color: #dcdccc;">j</span><span style="color: #dcdccc;">]==</span><span style="color: #dcdccc;">largest_til_now</span>) <span style="color: #dcdccc;">{</span><br />
                            <span style="color: #7f9f7f;">// add it to matches array</span><br />
                            <span style="color: #dcdccc;">longest</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">push</span>(<span style="color: #dcdccc;">from</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">substr</span>(<span style="color: #dcdccc;">i</span><span style="color: #dcdccc;">-</span><span style="color: #dcdccc;">largest_til_now</span><span style="color: #dcdccc;">+</span><span style="color: #8cd0d3;">1</span><span style="color: #dcdccc;">,</span><span style="color: #dcdccc;">largest_til_now</span>));<br />
                        <span style="color: #dcdccc;">}</span><br />
                    <span style="color: #dcdccc;">}</span><br />
                <span style="color: #dcdccc;">}</span><br />
            <span style="color: #dcdccc;">}</span><br />
            <span style="color: #7f9f7f;">// return matches array</span><br />
            <span style="color: #e3ceab;">return</span> <span style="color: #dcdccc;">longest</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">toString</span>();<br />
        <span style="color: #dcdccc;">}</span><br />
        <span style="color: #efefaf; font-weight: bold;">public</span> <span style="color: #efefaf; font-weight: bold;">function </span><span style="color: #efef8f;">on_change</span>(<span style="color: #dcdccc;">e</span><span style="color: #dcdccc;">:</span><span style="color: #dfdfbf; font-weight: bold;">Event</span><span style="color: #dcdccc;">):</span><span style="color: #dfdfbf; font-weight: bold;">void</span> <span style="color: #dcdccc;">{</span><br />
            <span style="color: #dcdccc;">lcs</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">text</span><span style="color: #dcdccc;">=</span><span style="color: #cc9393;">“LCS = “</span><span style="color: #dcdccc;">+</span><span style="color: #dcdccc;">strlcs</span>(<span style="color: #dcdccc;">from</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">text</span><span style="color: #dcdccc;">,</span><span style="color: #dcdccc;">to</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">text</span>);<br />
            <span style="color: #dcdccc;">lcs</span><span style="color: #dcdccc;">.</span><span style="color: #efef8f;">setTextFormat</span>(<span style="color: #dcdccc;">text_format</span>);<br />
        <span style="color: #dcdccc;">}</span><br />
    <span style="color: #dcdccc;">}</span><br />
<span style="color: #dcdccc;">}</span></div>
<p> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="100" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://as3.aa-a.net/file/2010/12/longest.swf" /><embed type="application/x-shockwave-flash" width="500" height="100" src="http://as3.aa-a.net/file/2010/12/longest.swf"></embed></object></p>
<div  class="related_post_title">相关日志</div><ul class="related_post"><li><a href="http://as3.aa-a.net/as3-js-parameters-transfer.html" title="AS3与JS之间的简单自定义参数通讯">AS3与JS之间的简单自定义参数通讯</a></li><li><a href="http://as3.aa-a.net/as3-localconnection-sharedobject.html" title="AS3本地运行库LocalConnection,SharedObject详解">AS3本地运行库LocalConnection,SharedObject详解</a></li><li><a href="http://as3.aa-a.net/as3-object-assignment-references.html" title="as3(ActionScript3)关于对象(Object)的赋值与引用的一些整理">as3(ActionScript3)关于对象(Object)的赋值与引用的一些整理</a></li><li><a href="http://as3.aa-a.net/as3-javascript-object-notation.html" title="AS3与JavaScript Object Notation的简单通信(AS3 JSON)">AS3与JavaScript Object Notation的简单通信(AS3 JSON)</a></li><li><a href="http://as3.aa-a.net/as3-finger-chart.html" title="AS3 finger chart轻量级制图表,统计图,饼图,柱形图类">AS3 finger chart轻量级制图表,统计图,饼图,柱形图类</a></li><li><a href="http://as3.aa-a.net/as3-flex-bezier-curve.html" title="AS3 Flex的一个贝塞尔(Bezier)曲线图形实例">AS3 Flex的一个贝塞尔(Bezier)曲线图形实例</a></li><li><a href="http://as3.aa-a.net/as3-displacement-computational-performance.html" title="AS3位移与位计算性能优化比较">AS3位移与位计算性能优化比较</a></li><li><a href="http://as3.aa-a.net/10-flash-as3-developers-practical-details.html" title="10条Flash AS3开发人员实用的简单细节事情">10条Flash AS3开发人员实用的简单细节事情</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://as3.aa-a.net/as3-string-lcs.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Andriod开发环境配置全攻略 Hello Android！</title>
		<link>http://as3.aa-a.net/andriod-development-environment-configuration.html</link>
		<comments>http://as3.aa-a.net/andriod-development-environment-configuration.html#comments</comments>
		<pubDate>Fri, 03 Dec 2010 01:44:48 +0000</pubDate>
		<dc:creator>Linkjun</dc:creator>
				<category><![CDATA[其他关注]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://as3.aa-a.net/?p=964</guid>
		<description><![CDATA[昨天Google发布的Nexus One也是相当的惹眼。 如何在Andriod OS这个开放式的平台写点自己的App呢？接下来肯定是要部署好一个开发环境。 接下来需要下载的软件如下： JRE (Eclipse 的运行环境) 下载页... ]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignnone" style="width: 492px"><a href="http://as3.aa-a.net/index.php/andriod-development-environment-configuration.html"><img title="Andriod开发环境配置全攻略 Hello Android！" src="http://www.cbmland.com/uploads/2010/01/2010-01-08_163101.png" alt="2010-01-08_163101" width="482" height="292" /></a><p class="wp-caption-text">Andriod开发环境配置全攻略 Hello Android！</p></div>
<p><span id="more-964"></span></p>
<p>昨天Google发布的<a href="http://www.google.cn/search?hl=zh-CN&amp;client=aff-cs-maxthon&amp;hs=SJB&amp;newwindow=1&amp;q=Nexus+One&amp;btnG=Google+%E6%90%9C%E7%B4%A2&amp;aq=f&amp;oq=" target="_blank">Nexus One</a>也是相当的惹眼。</p>
<p>如何在Andriod OS这个开放式的平台写点自己的App呢？接下来肯定是要部署好一个开发环境。</p>
<p>接下来需要下载的软件如下：</p>
<ul>
<li>JRE (Eclipse 的运行环境)<br />
<a href="http://www.java.com/en/download/manual.jsp" target="_blank">下载页面</a> <a href="http://javadl.sun.com/webapps/download/AutoDL?BundleId=35684" target="_blank">直接下载</a></li>
<li>Eclipse (开发调试工具，推荐下载经典版)<br />
<a href="http://www.eclipse.org/downloads/" target="_blank">下载页面</a> <a href="http://download.actuatechina.com/eclipse/eclipse/downloads/drops/R-3.5.1-200909170800/eclipse-SDK-3.5.1-win32.zip">直接下载</a></li>
<li>Android SDK <br />
 <a href="http://androidappdocs.appspot.com/sdk/index.html" target="_blank">下载页面</a> <a href="http://dl.google.com/android/android-sdk_r04-windows.zip">直接下载</a></li>
</ul>
<p>安装好JRE，解压下载回来的Eclipse.zip文件和Android SDK.zip文件。比如放到D:\Program Files目录下。</p>
<p>接下来运行eclipse.exe，还需要在线安装ADT Plugin for Eclipse，在Eclipse菜单上选择Help-&gt;Intall New Software</p>
<p>在界面上点击Add按钮，添加ADT Plugin的在线安装地址。</p>
<blockquote><p>https://dl-ssl.google.com/android/eclipse/</p></blockquote>
<div class="wp-caption alignnone" style="width: 699px"><img title="Andriod开发环境配置全攻略 Hello Android！" src="http://www.cbmland.com/uploads/2010/01/2010-01-08_163101.png" alt="2010-01-08_163101" width="689" height="417" /><p class="wp-caption-text">Andriod开发环境配置全攻略 Hello Android！</p></div>
<p>确定后稍等片刻会列出资源列表，全部选上。</p>
<p><img title="Andriod开发环境配置全攻略 Hello Android！" src="http://www.cbmland.com/uploads/2010/01/2010-01-08_163336.png" alt="2010-01-08_163336" width="480" height="209" /></p>
<p>接下来一路点击Next。接受协议后就开始下载了。<br />
期间有一个安装提醒和需要重启eclipse的提示。都选Yes。</p>
<p>重启完毕你会找到多出了下面加亮的几个图标。<br />
记住这个手机图标，他就是后面要用到的Andriod模拟器。我们所有的程序都可以在模拟器上来测试运行。</p>
<p> <img title="Andriod开发环境配置全攻略 Hello Android！" src="http://www.cbmland.com/uploads/2010/01/2010-01-08_164254.png" alt="2010-01-08_164254" width="366" height="223" /></p>
<p> 接下来设置SDK，打开菜单 Window-&gt;Preferences ，选中Andriod在右边的SDK Location中定位到之前解压的路径。</p>
<p><img title="Andriod开发环境配置全攻略 Hello Android！" src="http://www.cbmland.com/uploads/2010/01/2010-01-08_164950.png" alt="2010-01-08_164950" width="693" height="264" /></p>
<p>接下来在界面上点击手机模拟器图标，下载你需要的开发包和文档以及USB驱动。我选了2.01和1.5两个版本。</p>
<p><img title="Andriod开发环境配置全攻略 Hello Android！" src="http://www.cbmland.com/uploads/2010/01/2010-01-08_165818.png" alt="2010-01-08_165818" width="756" height="440" /></p>
<p>接下来，Accept All，下载安装。</p>
<p>下载完成后转到虚拟设备里面，创建你的模拟设备。设置好名字和系统版本。</p>
<p><img title="Andriod开发环境配置全攻略 Hello Android！" src="http://www.cbmland.com/uploads/2010/01/2010-01-08_173620.png" alt="2010-01-08_173620" width="410" height="606" /></p>
<p>接下来就可以开是Android之旅了。</p>
<p><img title="Andriod开发环境配置全攻略 Hello Android！" src="http://www.cbmland.com/uploads/2010/01/2010-01-08_174124.png" alt="2010-01-08_174124" width="807" height="572" /></p>
<p>一切OK，可以开始写Hello World了。</p>
<div  class="related_post_title">相关日志</div><ul class="related_post"><li><a href="http://as3.aa-a.net/30-sets-of-iphone-android-icons.html" title="AS3分享30套免费的iPhone图标 Android图标和其他手机图标下载">AS3分享30套免费的iPhone图标 Android图标和其他手机图标下载</a></li><li><a href="http://as3.aa-a.net/to-take-the-air-more-applications.html" title="AIR移动环境，为Android带来更多应用">AIR移动环境，为Android带来更多应用</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://as3.aa-a.net/andriod-development-environment-configuration.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flash Player 10.1 beta3的性能大幅提升</title>
		<link>http://as3.aa-a.net/flash-player-10-1-beta3.html</link>
		<comments>http://as3.aa-a.net/flash-player-10-1-beta3.html#comments</comments>
		<pubDate>Fri, 03 Dec 2010 01:28:07 +0000</pubDate>
		<dc:creator>Linkjun</dc:creator>
				<category><![CDATA[AS3前端杂谈]]></category>
		<category><![CDATA[actionscript3.0]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Player]]></category>

		<guid isPermaLink="false">http://as3.aa-a.net/?p=961</guid>
		<description><![CDATA[  最近的Flash Player 10.1 beta3有了大幅的性能提升，相对目前的10正式版测试结果会怎么样呢？ 左边的为最新的10正式版，右边为10.1 beta3版本，测试平台为XP。 可以看到细节，12个测试项都是一边... ]]></description>
			<content:encoded><![CDATA[<p> <a href="http://as3.aa-a.net/index.php/flash-player-10-1-beta3.html"><img title="Flash Player 10.1 beta3的性能大幅提升" src="http://www.cbmland.com/uploads/2010/02/pref.png" alt="pref" width="538" height="287" /></a><span id="more-961"></span></p>
<p>最近的<span class='wp_keywordlink'><a href="http://as3.aa-a.net/" title="Flash" target="_blank">Flash</a></span> Player 10.1 beta3有了大幅的性能提升，相对目前的10正式版测试结果会怎么样呢？<br />
左边的为最新的10正式版，右边为10.1 beta3版本，测试平台为XP。</p>
<p>可以看到细节，12个测试项都是一边倒的有了提升，最明显的是字符串拼接的速度，如果针对这个版本开发，字符串的拼接性能几乎可以不考虑了。同时VM的版本也从1.0提升到了1.4。</p>
<p>有兴趣的可以在<a href="http://www.cbmland.com/perf/TestRunner.swf" target="_blank">这里测试</a>和对比一下，同时提供JS测试版本 : <a title="http://www.cbmland.com/perf/TestRunner.html" href="http://www.cbmland.com/perf/TestRunner.html">http://www.cbmland.com/perf/TestRunner.html</a>，可以测试浏览器的脚本性能。</p>
<p>附上beta3下载地址</p>
<p>下载:<a href="http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_1_p3_activex_022310.exe" target="_blank">Adobe Flash Player 10.1.51.95 Beta 3 for (Internet Explorer)</a> (1.87 MB)<br />
下载:<a href="http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_1_p3_plugin_022310.exe" target="_blank">Adobe Flash Player 10.1.51.95 Beta 3 for (Firefox, Safari, Opera)</a> (1.84 MB)<br />
下载:<a href="http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_1_p3_linux_022310.tar.gz" target="_blank">Adobe Flash Player 10.1.51.95 Beta 3 for Linux</a> (3.86 MB)<br />
下载:<a href="http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_1_p3_mac_022310.dmg" target="_blank">Adobe Flash Player 10.1.51.95 Beta 3 for Mac OS X</a> (1.87 MB)</p>
<div  class="related_post_title">相关日志</div><ul class="related_post"><li><a href="http://as3.aa-a.net/as3-js-parameters-transfer.html" title="AS3与JS之间的简单自定义参数通讯">AS3与JS之间的简单自定义参数通讯</a></li><li><a href="http://as3.aa-a.net/as3-localconnection-sharedobject.html" title="AS3本地运行库LocalConnection,SharedObject详解">AS3本地运行库LocalConnection,SharedObject详解</a></li><li><a href="http://as3.aa-a.net/as3-finger-chart.html" title="AS3 finger chart轻量级制图表,统计图,饼图,柱形图类">AS3 finger chart轻量级制图表,统计图,饼图,柱形图类</a></li><li><a href="http://as3.aa-a.net/as3-displacement-computational-performance.html" title="AS3位移与位计算性能优化比较">AS3位移与位计算性能优化比较</a></li><li><a href="http://as3.aa-a.net/10-flash-as3-developers-practical-details.html" title="10条Flash AS3开发人员实用的简单细节事情">10条Flash AS3开发人员实用的简单细节事情</a></li><li><a href="http://as3.aa-a.net/as3-photos-jpg-pictures.html" title="AS3利用摄像头拍照生成JPG图片">AS3利用摄像头拍照生成JPG图片</a></li><li><a href="http://as3.aa-a.net/as3-string-concept.html" title="as3字符串重要概念和术语">as3字符串重要概念和术语</a></li><li><a href="http://as3.aa-a.net/as3-volume-control-example-code.html" title="AS3音量简单控制实例代码">AS3音量简单控制实例代码</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://as3.aa-a.net/flash-player-10-1-beta3.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3 finger chart轻量级制图表,统计图,饼图,柱形图类</title>
		<link>http://as3.aa-a.net/as3-finger-chart.html</link>
		<comments>http://as3.aa-a.net/as3-finger-chart.html#comments</comments>
		<pubDate>Mon, 29 Nov 2010 03:33:33 +0000</pubDate>
		<dc:creator>Linkjun</dc:creator>
				<category><![CDATA[AS3类库工具]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[actionscript3.0]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[AS3代码]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[类库]]></category>

		<guid isPermaLink="false">http://as3.aa-a.net/?p=952</guid>
		<description><![CDATA[Finger Chart （以下简称Finger）是一个轻量级的基于Flash技术开发的图表解决方案(未来考虑扩展到HTML5平台)，由RIAMeeting社区推出，并基于LGPL协议开源。图表包括常见图表类型，包含线图，柱图，... ]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://as3.aa-a.net/index.php/as3-finger-chart.html"><img class="aligncenter" title="Finger Chart logo" src="http://pic.yupoo.com/linkjun/AESwoEJ6/fJuJ.png" alt="Finger Chart logo" width="335" height="80" /></a></p>
<p>Finger Chart （以下简称Finger）是一个轻量级的基于<span class='wp_keywordlink'><a href="http://as3.aa-a.net/" title="Flash" target="_blank">Flash</a></span>技术开发的图表解决方案(未来考虑扩展到HTML5平台)，由RIAMeeting社区推出，并基于<a href="http://www.gnu.org/licenses/lgpl.html" target="_blank">LGPL</a>协议开源。图表包括常见图表类型，包含线图，柱图，条图，饼图，区域图，散点图，气泡图等； Finger的应用目标是：Web应用和移动应用，因此也可以看出图表命名的初衷，即保持轻量级和较小的资源占用，以在有限的硬件资源下获得平稳流畅的运行。<span id="more-952"></span></p>
<p><a href="http://as3.aa-a.net/index.php/as3-finger-chart.html"><img title="Finger Chart line" src="http://pic.yupoo.com/linkjun/AESvPOZD/11fdAl.png" alt="Finger Chart line" width="441" height="241" /></a></p>
<p><a href="http://as3.aa-a.net/index.php/as3-finger-chart.html"><img class="alignnone" title="Finger Chart pic" src="http://pic.yupoo.com/linkjun/AESvPyoC/HNzLz.png" alt="Finger Chart pic" width="296" height="263" /></a></p>
<p><strong><span class='wp_keywordlink'><a href="http://as3.aa-a.net/" title="AS3代码,AS3类,AS3实例" target="_blank">as3</a></span> finger chart包含3个开发主体： </strong></p>
<ol>
<li>基于<span class='wp_keywordlink'><a href="http://as3.aa-a.net/" title="AS3代码,AS3类,AS3实例" target="_blank">as3</a></span>开发的图表展现</li>
<li>基于JavaScript实现的图表HTML嵌入</li>
<li>针对服务器端代码开发的类库(基于使用者的贡献)</li>
</ol>
<h3>Finger具备如下的主要特点和设计初衷：</h3>
<ol>
<li><strong>轻量级</strong>：图表基于纯ActionScript开发，并不断得到优化，使得图表可以保持较小的体积和较小的资源占用率。</li>
<li><strong>易用</strong>：对前端工程师而言，使用封装的JavaScript类库让您可以很方便的将图表嵌入HTML。而对于后端程序员，使用针对服务器端代码开发的类库让您可以更方便的与项目代码集成。</li>
<li><strong>灵活的外观定义方式</strong>：如果您对Finger默认的外观不满意，大可以进行自我定制。Finger的外观使用了两套彼此协作的机制：CSS和Skin，其中CSS使用网页通用的样式表属性进行描述，而Skin部分则允许您通过<span class='wp_keywordlink'><a href="http://as3.aa-a.net/" title="Flash" target="_blank">Flash</a></span> Pro进行创建和修改。结合这两种方式，将给您的外观创建带来极大的灵活性。</li>
<li><strong>允许载入外部插件</strong>：您可以基于约定的接口创建一个插件，编译为单独的SWF文件，并在图表中载入，与图表协同工作。这种方式将让您在不需修改基本功能的条件下，完成一些额外的功能。</li>
<li><strong>可扩展的架构设计</strong>：Finger基于一个可扩展的架构来实现，各个图表组成部分都得到抽象并与具体实现相分离，图表则基于工厂模式来进行组装，在此基础上扩展其它类型的图表将会更加方便。</li>
<li><strong>可视化组件支持</strong>：未来版本将针对Flash Pro创建一个组件库，允许通过Flash Pro轻松应用图表组件并绑定数据源。</li>
</ol>
<p><a href="https://acrobat.com/#d=lNZmzwo7UYOQd9oDHEf*Dg" target="_blank">点击这里查看简介PPT</a></p>
<p>“AS3 finger chart项目部分源码引用了<a href="https://github.com/mikechambers/as3corelib" target="_blank">AS3Corelib</a>和<a href="http://www.greensock.com/tweenlite/" target="_blank">TweenLite</a> ”</p>
<h3>源码打包下载</h3>
<p>注意：这个压缩包包含最终发布文件（SWF和其它依赖，以及SWC），不包含项目源码，源码请参见“源码下载”部分</p>
<table cellspacing="0" width="100%">
<tbody>
<tr>
<th>版本</th>
<th>链接</th>
<th>最后更新日期</th>
<th>文件大小</th>
</tr>
<tr>
<td>0.8</td>
<td><a title="finger-chart-0.8.zip" href="http://www.riameeting.com/fingerchart/download/finger-chart-0.8.zip" target="_blank">finger-chart-0.8.zip</a></td>
<td>2010-11-21</td>
<td>325K</td>
</tr>
</tbody>
</table>
<h3>AS3 finger chart源码下载</h3>
<p>源码基于SVN托管，请使用SVN工具检出，地址是：</p>
<pre>http://svn.riadev.com/fingerchart/trunk</pre>
<p>用户名和密码都填写:RIAMeeting</p>
<h3>AS3 finger chart Flash CS5插件下载</h3>
<p><a title="finger-flashpro-component.mxp" href="http://www.riameeting.com/fingerchart/download/finger-flashpro-component.mxp" target="_blank">finger-flashpro-component.mxp</a></p>
<div  class="related_post_title">相关日志</div><ul class="related_post"><li><a href="http://as3.aa-a.net/10-flash-as3-developers-practical-details.html" title="10条Flash AS3开发人员实用的简单细节事情">10条Flash AS3开发人员实用的简单细节事情</a></li><li><a href="http://as3.aa-a.net/as3-photos-jpg-pictures.html" title="AS3利用摄像头拍照生成JPG图片">AS3利用摄像头拍照生成JPG图片</a></li><li><a href="http://as3.aa-a.net/loadermax.html" title="LoaderMax AS3加载类库小却很强大">LoaderMax AS3加载类库小却很强大</a></li><li><a href="http://as3.aa-a.net/as3-js-parameters-transfer.html" title="AS3与JS之间的简单自定义参数通讯">AS3与JS之间的简单自定义参数通讯</a></li><li><a href="http://as3.aa-a.net/as3-displacement-computational-performance.html" title="AS3位移与位计算性能优化比较">AS3位移与位计算性能优化比较</a></li><li><a href="http://as3.aa-a.net/flex-java-difference-getter-and-setter.html" title="Flex和Java中Getter,Setter比较与了解">Flex和Java中Getter,Setter比较与了解</a></li><li><a href="http://as3.aa-a.net/as3-class-diagram-air.html" title="AS3 AS3ClassDiagram.air官方类包结构图查看工具">AS3 AS3ClassDiagram.air官方类包结构图查看工具</a></li><li><a href="http://as3.aa-a.net/as3-child-index.html" title="AS3 中的Child Index了解">AS3 中的Child Index了解</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://as3.aa-a.net/as3-finger-chart.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

