<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Aedis.Ju</title>
	
	<link>http://blog.richmediaplus.com</link>
	<description>About the Adobe's RIA related solution and technology, like Adobe Air, Adobe Flex. You also can find the SEO for Flex, RIA, User Ex in this blog.</description>
	<lastBuildDate>Wed, 03 Mar 2010 09:22:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/richmediaplus" /><feedburner:info uri="richmediaplus" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Adobe Flex 改變聲音速度例子2則比較</title>
		<link>http://feedproxy.google.com/~r/richmediaplus/~3/1t2cDQhpCQA/</link>
		<comments>http://blog.richmediaplus.com/2010/03/compare-with-change-adobe-flex-sound-speed-method/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 09:22:19 +0000</pubDate>
		<dc:creator>Alvin / Aedis.Ju</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[extract]]></category>
		<category><![CDATA[SampleDataEvent.SAMPLE_DATA]]></category>
		<category><![CDATA[Sound]]></category>

		<guid isPermaLink="false">http://blog.richmediaplus.com/?p=502</guid>
		<description><![CDATA[flash.media.sound 在Flash Player version 10 及更高版本中，可以處理動態生成的聲音。這種情況下，Sound 對象將使用向 flash.events.SampleDataEvent 事件處理函數分配的函數來輪詢聲音數據。從用聲音數據填充的 ByteArray 對象檢索聲音的同時播放聲音。可以使用 Sound.extract() 從 Sound 對像中提取聲音數據，然後在將聲音數據寫回到流以進行播放之前可以對其進行操作。
因此按照例子寫了2種不同版本的改變聲音速度的例子，2個例子區別在于
SampleDataEvent 處理方式得不同。
一個是改變了音速（帶有“piapia”聲）










一個是改變了音頻（像以前的磁帶）










改變了音速（帶有“piapia”聲）的SampleDataEvent 處理方式

/**
 * mp3Real.SampleDataEvent.SAMPLE_DATA
 **/
private function onSampleData&#40;e:SampleDataEvent&#41;:void
&#123;
	currentPosition = uint&#40;_position&#41;;
&#160;
	var currentTimeIntDiff_1:uint = uint&#40;_position&#41; / 44100;
	currentTime = toDoubleString&#40;uint&#40;currentTimeIntDiff_1 / 60&#41;&#41; + &#34;:&#34; + toDoubleString&#40;currentTimeIntDiff_1 % 60&#41;;
&#160;
	var bytes:ByteArray = new ByteArray&#40;&#41;;
	mp3Proxy.extract&#40;bytes, 4096, _position&#41;;
	bytes.position = 0;
	e.data.writeBytes&#40;bytes&#41;;
&#160;
	if&#40;!isThumbPress&#41;
		hs_time.value = _position / maxPosition;
&#160;
	bytesSpeed = playbackSpeed * BYTES_PER_CALLBACK;
&#160;
	_position [...]


Related posts:<ol><li><a href='http://blog.richmediaplus.com/2009/09/10-tips-for-flex-application-performance/' rel='bookmark' title='Permanent Link: 10個 Adobe Flex 程式效能優化技巧'>10個 Adobe Flex 程式效能優化技巧</a></li>
<li><a href='http://blog.richmediaplus.com/2009/06/keywords-about-the-adobe-flex-flash-in-2009/' rel='bookmark' title='Permanent Link: 2009 Adobe Flash / Adobe Flex 重點留意關鍵字'>2009 Adobe Flash / Adobe Flex 重點留意關鍵字</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>flash.media.sound 在Flash Player version 10 及更高版本中，可以處理動態生成的聲音。這種情況下，Sound 對象將使用向 flash.events.SampleDataEvent 事件處理函數分配的函數來輪詢聲音數據。從用聲音數據填充的 ByteArray 對象檢索聲音的同時播放聲音。可以使用 Sound.extract() 從 Sound 對像中提取聲音數據，然後在將聲音數據寫回到流以進行播放之前可以對其進行操作。</p>
<p>因此按照例子寫了2種不同版本的改變聲音速度的例子，2個例子區別在于<br />
SampleDataEvent 處理方式得不同。<br />
<a href="http://code.richmediaplus.com/SoundSpeedChangePlayerMethod1/SoundSpeedChangePlayerMethod1.html" target="_blank">一個是改變了音速（帶有“piapia”聲）</a><br />

<object width="480" height="300">
<param name="movie" value="http://code.richmediaplus.com/SoundSpeedChangePlayerMethod1/SoundSpeedChangePlayerMethod1.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<embed type="application/x-shockwave-flash" width="480" height="300" src="http://code.richmediaplus.com/SoundSpeedChangePlayerMethod1/SoundSpeedChangePlayerMethod1.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" ></embed>
</object>
</p>
<p><a href="http://code.richmediaplus.com/SoundSpeedChangePlayerMethod1/SoundSpeedChangePlayerMethod1.html" target="_blank">一個是改變了音頻（像以前的磁帶）</a><br />

<object width="480" height="300">
<param name="movie" value="http://code.richmediaplus.com/SoundSpeedChangePlayerMethod2/SoundSpeedChangePlayerMethod2.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<embed type="application/x-shockwave-flash" width="480" height="300" src="http://code.richmediaplus.com/SoundSpeedChangePlayerMethod2/SoundSpeedChangePlayerMethod2.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" ></embed>
</object>
</p>
<p>改變了音速（帶有“piapia”聲）的SampleDataEvent 處理方式</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #3f5fbf;">/**
 * mp3Real.SampleDataEvent.SAMPLE_DATA
 **/</span>
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> onSampleData<span style="color: #000000;">&#40;</span>e<span style="color: #000000; font-weight: bold;">:</span>SampleDataEvent<span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
	currentPosition = <span style="color: #004993;">uint</span><span style="color: #000000;">&#40;</span>_position<span style="color: #000000;">&#41;</span>;
&nbsp;
	<span style="color: #6699cc; font-weight: bold;">var</span> currentTimeIntDiff_1<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">uint</span> = <span style="color: #004993;">uint</span><span style="color: #000000;">&#40;</span>_position<span style="color: #000000;">&#41;</span> <span style="color: #000000; font-weight: bold;">/</span> <span style="color: #000000; font-weight:bold;">44100</span>;
	currentTime = toDoubleString<span style="color: #000000;">&#40;</span><span style="color: #004993;">uint</span><span style="color: #000000;">&#40;</span>currentTimeIntDiff_1 <span style="color: #000000; font-weight: bold;">/</span> <span style="color: #000000; font-weight:bold;">60</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000; font-weight: bold;">+</span> <span style="color: #990000;">&quot;:&quot;</span> <span style="color: #000000; font-weight: bold;">+</span> toDoubleString<span style="color: #000000;">&#40;</span>currentTimeIntDiff_1 <span style="color: #000000; font-weight: bold;">%</span> <span style="color: #000000; font-weight:bold;">60</span><span style="color: #000000;">&#41;</span>;
&nbsp;
	<span style="color: #6699cc; font-weight: bold;">var</span> bytes<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">ByteArray</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">ByteArray</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
	mp3Proxy.extract<span style="color: #000000;">&#40;</span>bytes, <span style="color: #000000; font-weight:bold;">4096</span>, _position<span style="color: #000000;">&#41;</span>;
	bytes.<span style="color: #004993;">position</span> = <span style="color: #000000; font-weight:bold;">0</span>;
	e.<span style="color: #004993;">data</span>.<span style="color: #004993;">writeBytes</span><span style="color: #000000;">&#40;</span>bytes<span style="color: #000000;">&#41;</span>;
&nbsp;
	<span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight: bold;">!</span>isThumbPress<span style="color: #000000;">&#41;</span>
		hs_time.<span style="color: #004993;">value</span> = _position <span style="color: #000000; font-weight: bold;">/</span> maxPosition;
&nbsp;
	bytesSpeed = playbackSpeed <span style="color: #000000; font-weight: bold;">*</span> BYTES_PER_CALLBACK;
&nbsp;
	_position <span style="color: #000000; font-weight: bold;">+</span>= bytesSpeed;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>改變了音頻（像以前的磁帶）的SampleDataEvent 處理方式</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #3f5fbf;">/**
 * mp3Real.SampleDataEvent.SAMPLE_DATA
 **/</span>
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> onSampleData<span style="color: #000000;">&#40;</span>e<span style="color: #000000; font-weight: bold;">:</span>SampleDataEvent<span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
	<span style="color: #6699cc; font-weight: bold;">var</span> l<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Number</span>;
	<span style="color: #6699cc; font-weight: bold;">var</span> r<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Number</span>;
	<span style="color: #6699cc; font-weight: bold;">var</span> p<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">uint</span>;
&nbsp;
	<span style="color: #6699cc; font-weight: bold;">var</span> loadedSamples<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">ByteArray</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">ByteArray</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
	currentPosition = <span style="color: #004993;">uint</span><span style="color: #000000;">&#40;</span>_phase<span style="color: #000000;">&#41;</span>;
&nbsp;
	bytesSpeed = playbackSpeed <span style="color: #000000; font-weight: bold;">*</span> BYTES_PER_CALLBACK;
&nbsp;
	<span style="color: #6699cc; font-weight: bold;">var</span> currentTimeIntDiff_2<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">uint</span> = currentPosition <span style="color: #000000; font-weight: bold;">/</span> <span style="color: #000000; font-weight:bold;">44100</span>;
	currentTime = toDoubleString<span style="color: #000000;">&#40;</span><span style="color: #004993;">uint</span><span style="color: #000000;">&#40;</span>currentTimeIntDiff_2 <span style="color: #000000; font-weight: bold;">/</span> <span style="color: #000000; font-weight:bold;">60</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000; font-weight: bold;">+</span> <span style="color: #990000;">&quot;:&quot;</span> <span style="color: #000000; font-weight: bold;">+</span> toDoubleString<span style="color: #000000;">&#40;</span>currentTimeIntDiff_2 <span style="color: #000000; font-weight: bold;">%</span> <span style="color: #000000; font-weight:bold;">60</span><span style="color: #000000;">&#41;</span>;
&nbsp;
	<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>_isPlayingSound <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> currentTime == maxTime<span style="color: #000000;">&#41;</span>
	<span style="color: #000000;">&#123;</span>
		_isPlayingSound = <span style="color: #0033ff; font-weight: bold;">false</span>;
	<span style="color: #000000;">&#125;</span> 
&nbsp;
&nbsp;
	<span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight: bold;">!</span>isThumbPress<span style="color: #000000;">&#41;</span>
		hs_time.<span style="color: #004993;">value</span> = _phase <span style="color: #000000; font-weight: bold;">/</span> maxPosition;
&nbsp;
	mp3Proxy.extract<span style="color: #000000;">&#40;</span>loadedSamples, BYTES_PER_CALLBACK <span style="color: #000000; font-weight: bold;">*</span> playbackSpeed, currentPosition<span style="color: #000000;">&#41;</span>;
	loadedSamples.<span style="color: #004993;">position</span> = <span style="color: #000000; font-weight:bold;">0</span>;
&nbsp;
	<span style="color: #0033ff; font-weight: bold;">while</span> <span style="color: #000000;">&#40;</span>loadedSamples.<span style="color: #004993;">bytesAvailable</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span>
	<span style="color: #000000;">&#123;</span>
		p = <span style="color: #004993;">uint</span><span style="color: #000000;">&#40;</span>_phase <span style="color: #000000; font-weight: bold;">-</span> currentPosition<span style="color: #000000;">&#41;</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight:bold;">8</span>;
&nbsp;
		<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>p <span style="color: #000000; font-weight: bold;">&lt;</span> loadedSamples.<span style="color: #004993;">length</span> <span style="color: #000000; font-weight: bold;">-</span> <span style="color: #000000; font-weight:bold;">8</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> e.<span style="color: #004993;">data</span>.<span style="color: #004993;">length</span> <span style="color: #000000; font-weight: bold;">&lt;</span>= BYTES_PER_CALLBACK <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight:bold;">8</span><span style="color: #000000;">&#41;</span>
		<span style="color: #000000;">&#123;</span>
			loadedSamples.<span style="color: #004993;">position</span> = p;
&nbsp;
			l = loadedSamples.<span style="color: #004993;">readFloat</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
			r = loadedSamples.<span style="color: #004993;">readFloat</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
			e.<span style="color: #004993;">data</span>.<span style="color: #004993;">writeFloat</span><span style="color: #000000;">&#40;</span>l<span style="color: #000000;">&#41;</span>;
			e.<span style="color: #004993;">data</span>.<span style="color: #004993;">writeFloat</span><span style="color: #000000;">&#40;</span>r<span style="color: #000000;">&#41;</span>;
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">else</span>
		<span style="color: #000000;">&#123;</span>
			loadedSamples.<span style="color: #004993;">position</span> = loadedSamples.<span style="color: #004993;">length</span>;
		<span style="color: #000000;">&#125;</span>
&nbsp;
		_phase <span style="color: #000000; font-weight: bold;">+</span>= playbackSpeed;
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>不知道各位有沒有既能改變速度又不會調高音頻的辦法，請賜教。</p>


<p>Related posts:<ol><li><a href='http://blog.richmediaplus.com/2009/09/10-tips-for-flex-application-performance/' rel='bookmark' title='Permanent Link: 10個 Adobe Flex 程式效能優化技巧'>10個 Adobe Flex 程式效能優化技巧</a></li>
<li><a href='http://blog.richmediaplus.com/2009/06/keywords-about-the-adobe-flex-flash-in-2009/' rel='bookmark' title='Permanent Link: 2009 Adobe Flash / Adobe Flex 重點留意關鍵字'>2009 Adobe Flash / Adobe Flex 重點留意關鍵字</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/richmediaplus/~4/1t2cDQhpCQA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.richmediaplus.com/2010/03/compare-with-change-adobe-flex-sound-speed-method/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.richmediaplus.com/2010/03/compare-with-change-adobe-flex-sound-speed-method/</feedburner:origLink></item>
		<item>
		<title>Adobe Air on Android</title>
		<link>http://feedproxy.google.com/~r/richmediaplus/~3/uLQtc1_4LDM/</link>
		<comments>http://blog.richmediaplus.com/2010/02/adobe-air-on-android/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 03:27:05 +0000</pubDate>
		<dc:creator>Alvin / Aedis.Ju</dc:creator>
				<category><![CDATA[Adobe Air]]></category>
		<category><![CDATA[Google Android]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://blog.richmediaplus.com/?p=497</guid>
		<description><![CDATA[在 Barcelona 的 Mobile World Congress 上，Adobe 聲明了 Adobe Air 將會支持 Android 的動作，對我來說并不是新聞，我在Mobile Application的未來中就已經提到了幾點，其實當時就已經收到了風聲。
不過 Adobe Air 還有很多事情需要去做，畢竟Mobile的性能和PC的性能是無法比的，在 Developer 做好優化的同時，Adobe 自己還有一大部分工作要做。
AIR on Android 的視頻例子：http://www.adobe.com/go/airmobile


Related posts:Flashplayer 10 率先登陸 Android!
Adobe Flash Player 10.1
Mobile Application的未來



Related posts:<ol><li><a href='http://blog.richmediaplus.com/2009/06/flashplayer-10-android/' rel='bookmark' title='Permanent Link: Flashplayer 10 率先登陸 Android!'>Flashplayer 10 率先登陸 Android!</a></li>
<li><a href='http://blog.richmediaplus.com/2009/10/adobe-flash-player-10-1/' rel='bookmark' title='Permanent Link: Adobe Flash Player 10.1'>Adobe Flash Player 10.1</a></li>
<li><a href='http://blog.richmediaplus.com/2009/05/mobile-application-future/' rel='bookmark' title='Permanent Link: Mobile Application的未來'>Mobile Application的未來</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>在 Barcelona 的 Mobile World Congress 上，Adobe 聲明了 Adobe Air 將會支持 Android 的動作，對我來說并不是新聞，我在<a href="http://blog.richmediaplus.com/2009/05/mobile-application-future/">Mobile Application的未來</a>中就已經提到了幾點，其實當時就已經收到了風聲。</p>
<p>不過 Adobe Air 還有很多事情需要去做，畢竟Mobile的性能和PC的性能是無法比的，在 Developer 做好優化的同時，Adobe 自己還有一大部分工作要做。</p>
<p>AIR on Android 的視頻例子：<a href="http://www.adobe.com/go/airmobile">http://www.adobe.com/go/airmobile</a></p>


<p>Related posts:<ol><li><a href='http://blog.richmediaplus.com/2009/06/flashplayer-10-android/' rel='bookmark' title='Permanent Link: Flashplayer 10 率先登陸 Android!'>Flashplayer 10 率先登陸 Android!</a></li>
<li><a href='http://blog.richmediaplus.com/2009/10/adobe-flash-player-10-1/' rel='bookmark' title='Permanent Link: Adobe Flash Player 10.1'>Adobe Flash Player 10.1</a></li>
<li><a href='http://blog.richmediaplus.com/2009/05/mobile-application-future/' rel='bookmark' title='Permanent Link: Mobile Application的未來'>Mobile Application的未來</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/richmediaplus/~4/uLQtc1_4LDM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.richmediaplus.com/2010/02/adobe-air-on-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.richmediaplus.com/2010/02/adobe-air-on-android/</feedburner:origLink></item>
		<item>
		<title>GeekCook</title>
		<link>http://feedproxy.google.com/~r/richmediaplus/~3/9FOd2CAyRdM/</link>
		<comments>http://blog.richmediaplus.com/2010/02/geekcook/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 14:30:46 +0000</pubDate>
		<dc:creator>Alvin / Aedis.Ju</dc:creator>
				<category><![CDATA[Life is Cool!]]></category>
		<category><![CDATA[GeekCook]]></category>

		<guid isPermaLink="false">http://blog.richmediaplus.com/?p=492</guid>
		<description><![CDATA[GeekCook是最近發現的Taobao店，與其它廠商不同，他們采用了所謂的營銷2.0模式

每天一位免費送
寫博客，免運費
&#8230;

當然，最讓我喜歡的是他設計的網絡衍生品，Twitter， Gmail，甚至404等，比起其它的賣家，他們不僅有Tee，也有衛衣，棒球帽，圍巾等。
而且我發現老板是一個非常會玩網絡的人，看看他們的聯系方式就知道。
 GeekCook@twitter
 GeekCook@flickr
 GeekCook@Facebook
 GeekCook@delicious
 GeekCook@Google Group
 GeekCook@Ning
 GeekCook@豆瓣
希望喜歡這類的朋友們大大得支持他們！
我就買了一個
 
很期待啊！


Related posts:Actionscript 3.0 Client for the Facebook Platform API Open



Related posts:<ol><li><a href='http://blog.richmediaplus.com/2009/03/actionscript-client-for-the-facebook-platform-api-open/' rel='bookmark' title='Permanent Link: Actionscript 3.0 Client for the Facebook Platform API Open'>Actionscript 3.0 Client for the Facebook Platform API Open</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://geekcook.taobao.com/" target="_blank">GeekCook</a>是最近發現的Taobao店，與其它廠商不同，他們采用了所謂的營銷2.0模式</p>
<ul>
<li>每天一位免費送</li>
<li>寫博客，免運費</li>
<li>&#8230;</li>
</ul>
<p>當然，最讓我喜歡的是他設計的網絡衍生品，Twitter， Gmail，甚至404等，比起其它的賣家，他們不僅有Tee，也有衛衣，棒球帽，圍巾等。</p>
<p>而且我發現老板是一個非常會玩網絡的人，看看他們的聯系方式就知道。</p>
<div><img src="http://grind.tactics.com/wp-content/uploads/images/communication_icons/twitter_logo.gif" alt="" /> <a href="http://twitter.com/geekcooktweet" target="_blank">GeekCook@twitter</a><br />
<img src="http://www.gmchina.com/chinese/images/icon/flickr.png" alt="" /> <a href="http://www.flickr.com/photos/tags/geekcook" target="_blank">GeekCook@flickr</a><br />
<img src="http://www.hereweyo.net/bbs/images/smilies/icon_facebook.gif" alt="" /> <a href="http://www.facebook.com/group.php?gid=58239674765" target="_blank">GeekCook@Facebook</a><br />
<img src="http://delicious.com/favicon.ico" alt="" /> <a href="http://delicious.com/tag/geekcook" target="_blank">GeekCook@delicious</a><br />
<img src="http://xintoo.tiagoo.com/images/chat_icon.gif" alt="" /> <a href="http://groups.google.com/group/geekcook" target="_blank">GeekCook@Google Group</a><br />
<img src="http://www.ning.com/favicon.ico" alt="" /> <a href="http://geekcook.ning.com/" target="_blank">GeekCook@Ning</a><br />
<img src="http://t.douban.com/favicon.ico" alt="" /> <a href="http://www.douban.com/group/GeekCook/" target="_blank">GeekCook@豆瓣</a></div>
<div>希望喜歡這類的朋友們大大得支持他們！</div>
<div>我就買了一個</div>
<div><a href="http://item.taobao.com/auction/item_detail-0db1-07e32dd56e2ccfc4854f1a5cbe48bffd.htm" target="_blank"><img src="http://farm5.static.flickr.com/4005/4286661011_05caeaf258.jpg" alt="" align="middle" /></a> </div>
<div>很期待啊！</div>


<p>Related posts:<ol><li><a href='http://blog.richmediaplus.com/2009/03/actionscript-client-for-the-facebook-platform-api-open/' rel='bookmark' title='Permanent Link: Actionscript 3.0 Client for the Facebook Platform API Open'>Actionscript 3.0 Client for the Facebook Platform API Open</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/richmediaplus/~4/9FOd2CAyRdM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.richmediaplus.com/2010/02/geekcook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.richmediaplus.com/2010/02/geekcook/</feedburner:origLink></item>
		<item>
		<title>Alvin眼中的Adobe</title>
		<link>http://feedproxy.google.com/~r/richmediaplus/~3/rrjALU1izVA/</link>
		<comments>http://blog.richmediaplus.com/2010/02/alvin-in-the-eyes-of-the-adobe/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 16:03:13 +0000</pubDate>
		<dc:creator>Alvin / Aedis.Ju</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Adobe Flash]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://blog.richmediaplus.com/?p=483</guid>
		<description><![CDATA[Steve Jobs在Apple內部大會上抨擊Adobe太懶惰，有潛力去做有意義的事情卻沒有那樣去做，將來沒人會用flash，大家都改用HTML5了。
我個人很認同Steve Jobs關于Adobe太懶惰的觀點，至于Flash最終會被HTML5代替，這要看是什么領域啦，Chrome和Firefox已經開始支持HTML5了，已經走出了非常重要的一步，人們老是說HTML5還需要10年的努力，但比起Flash來，HTML5是趨勢，這是不爭的事實。
純屬個人想法，Adobe Fans不要噴我！


Related posts:Actionscript 3.0 Client for the Facebook Platform API Open
利用Facebook API，PHP和Flash開發Facebook Application
FindMeee using Actionscript3 and Facebook API



Related posts:<ol><li><a href='http://blog.richmediaplus.com/2009/03/actionscript-client-for-the-facebook-platform-api-open/' rel='bookmark' title='Permanent Link: Actionscript 3.0 Client for the Facebook Platform API Open'>Actionscript 3.0 Client for the Facebook Platform API Open</a></li>
<li><a href='http://blog.richmediaplus.com/2009/04/dev-facebook-app-using-facebook-api-flash-php/' rel='bookmark' title='Permanent Link: 利用Facebook API，PHP和Flash開發Facebook Application'>利用Facebook API，PHP和Flash開發Facebook Application</a></li>
<li><a href='http://blog.richmediaplus.com/2009/04/findmeee-using-actionscript3-and-facebook-api/' rel='bookmark' title='Permanent Link: FindMeee using Actionscript3 and Facebook API'>FindMeee using Actionscript3 and Facebook API</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><em>Steve Jobs在Apple內部大會上抨擊Adobe太懶惰，有潛力去做有意義的事情卻沒有那樣去做，將來沒人會用flash，大家都改用HTML5了。</em></p>
<p>我個人很認同Steve Jobs關于Adobe太懶惰的觀點，至于Flash最終會被HTML5代替，這要看是什么領域啦，Chrome和Firefox已經開始支持HTML5了，已經走出了非常重要的一步，人們老是說HTML5還需要10年的努力，但比起Flash來，HTML5是趨勢，這是不爭的事實。</p>
<p><em><strong>純屬個人想法，Adobe Fans不要噴我！</strong></em></p>


<p>Related posts:<ol><li><a href='http://blog.richmediaplus.com/2009/03/actionscript-client-for-the-facebook-platform-api-open/' rel='bookmark' title='Permanent Link: Actionscript 3.0 Client for the Facebook Platform API Open'>Actionscript 3.0 Client for the Facebook Platform API Open</a></li>
<li><a href='http://blog.richmediaplus.com/2009/04/dev-facebook-app-using-facebook-api-flash-php/' rel='bookmark' title='Permanent Link: 利用Facebook API，PHP和Flash開發Facebook Application'>利用Facebook API，PHP和Flash開發Facebook Application</a></li>
<li><a href='http://blog.richmediaplus.com/2009/04/findmeee-using-actionscript3-and-facebook-api/' rel='bookmark' title='Permanent Link: FindMeee using Actionscript3 and Facebook API'>FindMeee using Actionscript3 and Facebook API</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/richmediaplus/~4/rrjALU1izVA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.richmediaplus.com/2010/02/alvin-in-the-eyes-of-the-adobe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.richmediaplus.com/2010/02/alvin-in-the-eyes-of-the-adobe/</feedburner:origLink></item>
		<item>
		<title>開源JavaScript Flash Player(HTML5/SVG)</title>
		<link>http://feedproxy.google.com/~r/richmediaplus/~3/GHvLuyfLMaw/</link>
		<comments>http://blog.richmediaplus.com/2010/01/open-source-javascript-flashplayer-html5-svg/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 15:22:46 +0000</pubDate>
		<dc:creator>Alvin / Aedis.Ju</dc:creator>
				<category><![CDATA[Adobe Flash]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Life is Cool!]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[SVG]]></category>

		<guid isPermaLink="false">http://blog.richmediaplus.com/?p=471</guid>
		<description><![CDATA[開發者Tobias Schneider在JavaScript中編寫了一個Flash解釋程式，名叫Gordon的開來源程式允許在支援SVG/HTML5的流覽器——iPhone內置了SVG支援——上播放Flash。 儘管程式開發還只是處於初始階段，但顯示它很有希望。開發者已在網站了公佈了一些演示。目前支持的流覽器包括：Chrome  3.0.195.38（能正常運行Demo），Chrome 4.0.298.0  Linux（會在滑鼠移動時出現崩潰），基於Web-Kit的Epiphany，Firefox 3.6，Safari 4；Demo無法在Opera  10.10和10.50上工作，未測試IE流覽器（因為不支援SVG）。
&#8211;來源于solidot.org

Flash is coming to the iPhone, but it&#8217;s no thanks to Adobe or Apple. It&#8217;s thanks to Gordon.
These are demos of Gordon &#8211; An  open source Flash™ runtime written in pure JavaScript with SVG

blue.html (&#38; its  .swf)
tiger.html (&#38; its  .swf)
trip.html (&#38; [...]


Related posts:<ol><li><a href='http://blog.richmediaplus.com/2009/10/adobe-flash-player-10-1/' rel='bookmark' title='Permanent Link: Adobe Flash Player 10.1'>Adobe Flash Player 10.1</a></li>
<li><a href='http://blog.richmediaplus.com/2009/07/tlf-osmf-open-source/' rel='bookmark' title='Permanent Link: TLF &#038; OSMF Open Source'>TLF &#038; OSMF Open Source</a></li>
<li><a href='http://blog.richmediaplus.com/2009/07/seo-for-flex-flash/' rel='bookmark' title='Permanent Link: SEO For Flex/Flash'>SEO For Flex/Flash</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<blockquote><p>開發者<a href="http://github.com/tobeytailor">Tobias Schneider</a>在JavaScript中編寫了<a href="http://tech.slashdot.org/story/10/01/19/1533250/Open-Source-JavaScript-Flash-Player-HTML5SVG">一個Flash解釋程式</a>，名叫<a href="http://github.com/tobeytailor/gordon">Gordon</a>的開來源程式允許在支援SVG/HTML5的流覽器——iPhone內置了SVG支援——上播放Flash。<em> 儘管程式開發還只是處於初始階段，但顯示它很有希望。開發者已在網站了公佈了一些<a href="http://paulirish.com/work/gordon/demos/">演示</a>。目前支持的流覽器<a href="http://wiki.github.com/tobeytailor/gordon/browser-support-table">包括</a>：Chrome  3.0.195.38（能正常運行Demo），Chrome 4.0.298.0  Linux（會在滑鼠移動時出現崩潰），基於Web-Kit的Epiphany，Firefox 3.6，Safari 4；Demo無法在Opera  10.10和10.50上工作，未測試IE流覽器（因為不支援SVG）。</em><br />
<strong>&#8211;來源于solidot.org</strong></p></blockquote>
<p><strong><br />
<em>Flash is coming to the iPhone, but it&#8217;s no thanks to Adobe or Apple. It&#8217;s thanks to Gordon.</em></strong><br />
<script src="http://www.google-analytics.com/ga.js" type="text/javascript"></script>These are demos of <a href="http://github.com/tobeytailor/gordon">Gordon &#8211; An  open source Flash™ runtime written in pure JavaScript with SVG</a></p>
<ul>
<li><a href="http://paulirish.com/work/gordon/demos/blue.html">blue.html</a> <small>(&amp; <a href="http://paulirish.com/work/gordon/demos/blue.swf">its  .swf</a>)</small></li>
<li><a href="http://paulirish.com/work/gordon/demos/tiger.html">tiger.html</a> <small>(&amp; <a href="http://paulirish.com/work/gordon/demos/tiger.swf">its  .swf</a>)</small></li>
<li><a href="http://paulirish.com/work/gordon/demos/trip.html">trip.html</a> <small>(&amp; <a href="http://paulirish.com/work/gordon/demos/trip.swf">its  .swf</a>)</small></li>
<li><a href="http://jancona.com/gordon/demos/buttons.html">button.html</a> <small>(just added!)</small></li>
<li><a href="http://davididas.com/gordon/test1.html">apple lightning</a> <small>(just added!)</small></li>
</ul>


<p>Related posts:<ol><li><a href='http://blog.richmediaplus.com/2009/10/adobe-flash-player-10-1/' rel='bookmark' title='Permanent Link: Adobe Flash Player 10.1'>Adobe Flash Player 10.1</a></li>
<li><a href='http://blog.richmediaplus.com/2009/07/tlf-osmf-open-source/' rel='bookmark' title='Permanent Link: TLF &#038; OSMF Open Source'>TLF &#038; OSMF Open Source</a></li>
<li><a href='http://blog.richmediaplus.com/2009/07/seo-for-flex-flash/' rel='bookmark' title='Permanent Link: SEO For Flex/Flash'>SEO For Flex/Flash</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/richmediaplus/~4/GHvLuyfLMaw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.richmediaplus.com/2010/01/open-source-javascript-flashplayer-html5-svg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.richmediaplus.com/2010/01/open-source-javascript-flashplayer-html5-svg/</feedburner:origLink></item>
		<item>
		<title>創業者課堂</title>
		<link>http://feedproxy.google.com/~r/richmediaplus/~3/0pCfmJx_Pag/</link>
		<comments>http://blog.richmediaplus.com/2010/01/entrepreneur-class/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 02:14:58 +0000</pubDate>
		<dc:creator>Alvin / Aedis.Ju</dc:creator>
				<category><![CDATA[Life is Cool!]]></category>
		<category><![CDATA[Venture Capital]]></category>
		<category><![CDATA[創業]]></category>

		<guid isPermaLink="false">http://blog.richmediaplus.com/?p=467</guid>
		<description><![CDATA[
關注創業的朋友們可以看看最近網易的創業者課堂，并且十分推薦這2位導師 查立 &#38; 史蒂芬·哈蒙，總能在他們的文章中看清楚創業者的方向。
如何在商場中尋找創業機遇，如何找到合作伙伴，如何制作創業書，如何得到VC的投資，導師們都給出了很好的建議。


No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p><img src="http://img4.cache.netease.com/tech/2009/12/1/20091201205343cdf9c.gif" alt="創業者課堂" width="480" height="100" /></p>
<p>關注創業的朋友們可以看看最近網易的<a href="http://tech.163.com/special/00093VQS/techvc.html" target="_blank">創業者課堂</a>，并且十分推薦這2位導師 <a href="http://blog.163.com/himalayabear@126/">查立</a> &amp; <a href="http://steveharmon.blog.163.com/">史蒂芬·哈蒙</a>，總能在他們的文章中看清楚創業者的方向。</p>
<p>如何在商場中尋找創業機遇，如何找到合作伙伴，如何制作創業書，如何得到VC的投資，導師們都給出了很好的建議。</p>


<p>No related posts.</p><img src="http://feeds.feedburner.com/~r/richmediaplus/~4/0pCfmJx_Pag" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.richmediaplus.com/2010/01/entrepreneur-class/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.richmediaplus.com/2010/01/entrepreneur-class/</feedburner:origLink></item>
		<item>
		<title>Richmediaplus’ Gallery X</title>
		<link>http://feedproxy.google.com/~r/richmediaplus/~3/kiI2suyfI5E/</link>
		<comments>http://blog.richmediaplus.com/2009/12/richmediaplus-gallery-x/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 08:02:21 +0000</pubDate>
		<dc:creator>Alvin / Aedis.Ju</dc:creator>
				<category><![CDATA[Life is Cool!]]></category>
		<category><![CDATA[Minwt]]></category>
		<category><![CDATA[Richmediaplus' Gallery X]]></category>
		<category><![CDATA[Zenphoto]]></category>

		<guid isPermaLink="false">http://blog.richmediaplus.com/?p=457</guid>
		<description><![CDATA[上線！
Richmediaplus&#8217; Gallery X  Powered By Zenphoto, Theme by Minwt
感謝 Zenphoto，感謝梅兄！
  


Related posts:Actionscript 3.0 Client for the Facebook Platform API Open
FindMeee using Actionscript3 and Facebook API



Related posts:<ol><li><a href='http://blog.richmediaplus.com/2009/03/actionscript-client-for-the-facebook-platform-api-open/' rel='bookmark' title='Permanent Link: Actionscript 3.0 Client for the Facebook Platform API Open'>Actionscript 3.0 Client for the Facebook Platform API Open</a></li>
<li><a href='http://blog.richmediaplus.com/2009/04/findmeee-using-actionscript3-and-facebook-api/' rel='bookmark' title='Permanent Link: FindMeee using Actionscript3 and Facebook API'>FindMeee using Actionscript3 and Facebook API</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://photos.richmediaplus.com/" target="_blank"><img src="http://photos.richmediaplus.com/themes/mwtlickr/images/logo.png" alt="Richmediaplus' Gallery X" /></a>上線！</p>
<p><strong><em>Richmediaplus&#8217;</em> Gallery X </strong> Powered By <a href="http://www.zenphoto.org/" target="_blank">Zenphoto</a>, Theme by <a href="http://www.minwt.com" target="_blank">Minwt</a></p>
<p>感謝 Zenphoto，感謝梅兄！</p>
<p> <img src='http://blog.richmediaplus.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>


<p>Related posts:<ol><li><a href='http://blog.richmediaplus.com/2009/03/actionscript-client-for-the-facebook-platform-api-open/' rel='bookmark' title='Permanent Link: Actionscript 3.0 Client for the Facebook Platform API Open'>Actionscript 3.0 Client for the Facebook Platform API Open</a></li>
<li><a href='http://blog.richmediaplus.com/2009/04/findmeee-using-actionscript3-and-facebook-api/' rel='bookmark' title='Permanent Link: FindMeee using Actionscript3 and Facebook API'>FindMeee using Actionscript3 and Facebook API</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/richmediaplus/~4/kiI2suyfI5E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.richmediaplus.com/2009/12/richmediaplus-gallery-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.richmediaplus.com/2009/12/richmediaplus-gallery-x/</feedburner:origLink></item>
		<item>
		<title>AS3工程 Custom Preloader 動態加載 Application</title>
		<link>http://feedproxy.google.com/~r/richmediaplus/~3/JXGw9OU_vzQ/</link>
		<comments>http://blog.richmediaplus.com/2009/12/as3-project-custom-preload-load-application/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 07:51:51 +0000</pubDate>
		<dc:creator>Alvin / Aedis.Ju</dc:creator>
				<category><![CDATA[ActionScript3]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[Preload]]></category>

		<guid isPermaLink="false">http://blog.richmediaplus.com/?p=449</guid>
		<description><![CDATA[Adobe Flex 工程的 Application 為2幀的動畫，第1幀為 Pre-load，第2幀為 Application，如果想替換 Adobe Flex 原有的 Pre-loader，那么制作將非常的方便。制作一個新的 preload Component，在 Application 的 preloader 屬性中進行相關的引用就可以完成。
這次討論的不是在 AS3 工程中直接加載 SWF，而是通過 getDefinitionByName(name:String) 的方式對 Application 進行動態加載。
例子是 Unique Instance，詳細請見 Application.as 關于 Instance 的寫法。

 新建ActionScript工程：PreloaderApp
 設定Default Application：PreloaderApp.as
 新建需要動態加載的主工程代碼：Application.as
 設置工程屬性：Properties-&#62;ActionScript Compiler-&#62;Additional compiler arguments: -frame start Application

代碼：
PreloaderApp.as

package
&#123;
	import flash.display.DisplayObject;
	import flash.display.MovieClip;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	import flash.events.ProgressEvent;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;
	import flash.utils.getDefinitionByName;
&#160;
	public class PreloaderApp extends MovieClip
	&#123;
&#160;
		/**
		 * [...]


Related posts:<ol><li><a href='http://blog.richmediaplus.com/2009/04/call-adobe-air-app-from-browser/' rel='bookmark' title='Permanent Link: 從瀏覽器呼出相應的Air程式'>從瀏覽器呼出相應的Air程式</a></li>
<li><a href='http://blog.richmediaplus.com/2009/07/loading-external-html-and-css-in-actionscript/' rel='bookmark' title='Permanent Link: Loading external html and css in ActionScript'>Loading external html and css in ActionScript</a></li>
<li><a href='http://blog.richmediaplus.com/2009/04/create-trail-information-and-expired-date-in-actionscript3-and-flex3/' rel='bookmark' title='Permanent Link: Create Trail Information &#038; Expired Date in ActionScript3 &#038; Flex'>Create Trail Information &#038; Expired Date in ActionScript3 &#038; Flex</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Adobe Flex 工程的 Application 為2幀的動畫，第1幀為 Pre-load，第2幀為 Application，如果想替換 Adobe Flex 原有的 Pre-loader，那么制作將非常的方便。制作一個新的 preload Component，在 Application 的 preloader 屬性中進行相關的引用就可以完成。</p>
<p>這次討論的不是在 AS3 工程中直接加載 SWF，而是通過 getDefinitionByName(name:String) 的方式對 Application 進行動態加載。</p>
<p>例子是 <strong>Unique Instance</strong>，詳細請見 Application.as 關于 Instance 的寫法。</p>
<ul>
<li> 新建ActionScript工程：<strong>PreloaderApp</strong></li>
<li> 設定Default Application：<strong>PreloaderApp.as</strong></li>
<li> 新建需要動態加載的主工程代碼：<strong>Application.as</strong></li>
<li> 設置工程屬性：<strong>Properties-&gt;ActionScript Compiler-&gt;Additional compiler arguments: -frame start Application</strong></li>
</ul>
<p>代碼：<br />
<strong>PreloaderApp.as</strong></p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #9900cc; font-weight: bold;">package</span>
<span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span>.<span style="color: #004993;">DisplayObject</span>;
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span>.<span style="color: #004993;">MovieClip</span>;
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span>.<span style="color: #004993;">StageAlign</span>;
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span>.<span style="color: #004993;">StageScaleMode</span>;
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span>.<span style="color: #004993;">Event</span>;
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span>.<span style="color: #004993;">ProgressEvent</span>;
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.text</span>.<span style="color: #004993;">TextField</span>;
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.text</span>.<span style="color: #004993;">TextFieldAutoSize</span>;
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.utils</span>.<span style="color: #004993;">getDefinitionByName</span>;
&nbsp;
	<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> PreloaderApp extends <span style="color: #004993;">MovieClip</span>
	<span style="color: #000000;">&#123;</span>
&nbsp;
		<span style="color: #3f5fbf;">/**
		 * PreloaderApp Constructor.
		 */</span>
		<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> PreloaderApp<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
		<span style="color: #000000;">&#123;</span>
			<span style="color: #0033ff; font-weight: bold;">this</span>.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span>.<span style="color: #004993;">ADDED_TO_STAGE</span>, handleToStage<span style="color: #000000;">&#41;</span>;
		<span style="color: #000000;">&#125;</span>
&nbsp;
		<span style="color: #3f5fbf;">/**
		 * Handle ADDED_TO_STAGE event.
		 * @param event
		 */</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> handleToStage<span style="color: #000000;">&#40;</span>event<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
		<span style="color: #000000;">&#123;</span>
			<span style="color: #0033ff; font-weight: bold;">this</span>.<span style="color: #004993;">removeEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span>.<span style="color: #004993;">ADDED_TO_STAGE</span>, handleToStage<span style="color: #000000;">&#41;</span>;
&nbsp;
			<span style="color: #009900;">//stage setting</span>
			<span style="color: #004993;">stage</span>.<span style="color: #004993;">showDefaultContextMenu</span> = <span style="color: #0033ff; font-weight: bold;">false</span>;
			<span style="color: #004993;">stage</span>.<span style="color: #004993;">align</span> = <span style="color: #004993;">StageAlign</span>.<span style="color: #004993;">TOP_LEFT</span>;
			<span style="color: #004993;">stage</span>.<span style="color: #004993;">scaleMode</span> = <span style="color: #004993;">StageScaleMode</span>.<span style="color: #004993;">NO_SCALE</span>;
&nbsp;
			createChildren<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
			<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span>.<span style="color: #004993;">ENTER_FRAME</span>, loadApplication<span style="color: #000000;">&#41;</span>;
&nbsp;
			<span style="color: #0033ff; font-weight: bold;">this</span>.<span style="color: #004993;">loaderInfo</span>.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">ProgressEvent</span>.<span style="color: #004993;">PROGRESS</span>, handleProgress<span style="color: #000000;">&#41;</span>;
			<span style="color: #0033ff; font-weight: bold;">this</span>.<span style="color: #004993;">loaderInfo</span>.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span>.<span style="color: #004993;">COMPLETE</span>, handleComplete<span style="color: #000000;">&#41;</span>;
		<span style="color: #000000;">&#125;</span>
&nbsp;
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> _preLoadingText<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">TextField</span>;
		<span style="color: #3f5fbf;">/**
		 * createChildren
		 */</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> createChildren<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
		<span style="color: #000000;">&#123;</span>
			_preLoadingText = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">TextField</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
			_preLoadingText.<span style="color: #004993;">text</span> = <span style="color: #990000;">&quot;Loading...&quot;</span>;
			_preLoadingText.<span style="color: #004993;">textColor</span> = 0x000000;
			_preLoadingText.<span style="color: #004993;">x</span> = <span style="color: #000000;">&#40;</span><span style="color: #004993;">stage</span>.<span style="color: #004993;">stageWidth</span> <span style="color: #000000; font-weight: bold;">/</span> <span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#41;</span> <span style="color: #000000; font-weight: bold;">-</span> <span style="color: #000000;">&#40;</span>_preLoadingText.<span style="color: #004993;">width</span> <span style="color: #000000; font-weight: bold;">/</span> <span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#41;</span>;
			_preLoadingText.<span style="color: #004993;">y</span> = <span style="color: #000000;">&#40;</span><span style="color: #004993;">stage</span>.<span style="color: #004993;">stageHeight</span> <span style="color: #000000; font-weight: bold;">/</span> <span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#41;</span> <span style="color: #000000; font-weight: bold;">-</span> <span style="color: #000000;">&#40;</span>_preLoadingText.<span style="color: #004993;">height</span> <span style="color: #000000; font-weight: bold;">/</span> <span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#41;</span>;
			_preLoadingText.<span style="color: #004993;">autoSize</span> = <span style="color: #004993;">TextFieldAutoSize</span>.<span style="color: #004993;">CENTER</span>;
			<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>_preLoadingText<span style="color: #000000;">&#41;</span>;
		<span style="color: #000000;">&#125;</span>
&nbsp;
		<span style="color: #3f5fbf;">/**
		 * Handle progress.
		 * @param event
		 */</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> handleProgress<span style="color: #000000;">&#40;</span>event<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">ProgressEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
		<span style="color: #000000;">&#123;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> percent<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">int</span> = <span style="color: #004993;">Math</span>.<span style="color: #004993;">floor</span><span style="color: #000000;">&#40;</span>event.<span style="color: #004993;">bytesLoaded</span> <span style="color: #000000; font-weight: bold;">/</span> event.<span style="color: #004993;">bytesTotal</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight:bold;">100</span><span style="color: #000000;">&#41;</span>;
			_preLoadingText.<span style="color: #004993;">text</span> = <span style="color: #990000;">&quot;Loading...&quot;</span> <span style="color: #000000; font-weight: bold;">+</span> percent <span style="color: #000000; font-weight: bold;">+</span> <span style="color: #990000;">&quot;%&quot;</span>;
		<span style="color: #000000;">&#125;</span>
&nbsp;
		<span style="color: #3f5fbf;">/**
		 * Handle load complete.
		 * @param event
		 */</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> handleComplete<span style="color: #000000;">&#40;</span>event<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
		<span style="color: #000000;">&#123;</span>
			<span style="color: #0033ff; font-weight: bold;">this</span>.<span style="color: #004993;">loaderInfo</span>.<span style="color: #004993;">removeEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">ProgressEvent</span>.<span style="color: #004993;">PROGRESS</span>, handleProgress<span style="color: #000000;">&#41;</span>;
			<span style="color: #0033ff; font-weight: bold;">this</span>.<span style="color: #004993;">loaderInfo</span>.<span style="color: #004993;">removeEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span>.<span style="color: #004993;">COMPLETE</span>, handleComplete<span style="color: #000000;">&#41;</span>;
		<span style="color: #000000;">&#125;</span>
&nbsp;
		<span style="color: #3f5fbf;">/**
		 * Load main application.
		 * @param e
		 */</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> loadApplication<span style="color: #000000;">&#40;</span>event<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
		<span style="color: #000000;">&#123;</span>
			<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #004993;">currentFrame</span> == <span style="color: #004993;">totalFrames</span><span style="color: #000000;">&#41;</span>
			<span style="color: #000000;">&#123;</span>
				<span style="color: #004993;">removeEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span>.<span style="color: #004993;">ENTER_FRAME</span>, loadApplication<span style="color: #000000;">&#41;</span>;
				<span style="color: #004993;">stop</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
				<span style="color: #6699cc; font-weight: bold;">var</span> cls<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Class</span> = <span style="color: #004993;">getDefinitionByName</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;Application&quot;</span><span style="color: #000000;">&#41;</span> <span style="color: #0033ff; font-weight: bold;">as</span> <span style="color: #004993;">Class</span>;
				<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">new</span> cls<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #0033ff; font-weight: bold;">as</span> <span style="color: #004993;">DisplayObject</span><span style="color: #000000;">&#41;</span>;
&nbsp;
				<span style="color: #004993;">removeChild</span><span style="color: #000000;">&#40;</span>_preLoadingText<span style="color: #000000;">&#41;</span>;
				_preLoadingText = <span style="color: #0033ff; font-weight: bold;">null</span>;
			<span style="color: #000000;">&#125;</span>
		<span style="color: #000000;">&#125;</span>
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p><strong>Application.as</strong></p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #9900cc; font-weight: bold;">package</span>
<span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span>.<span style="color: #004993;">Sprite</span>;
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span>.<span style="color: #004993;">Event</span>;
&nbsp;
	<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> Application extends <span style="color: #004993;">Sprite</span>
	<span style="color: #000000;">&#123;</span>
&nbsp;
		<span style="color: #0033ff; font-weight: bold;">private</span> static <span style="color: #6699cc; font-weight: bold;">var</span> _instance<span style="color: #000000; font-weight: bold;">:</span>Application;
		<span style="color: #3f5fbf;">/**
		 * Unique instance.
		 * @return
		 */</span>
		<span style="color: #0033ff; font-weight: bold;">public</span> static <span style="color: #339966; font-weight: bold;">function</span> getInstance<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span>Application
		<span style="color: #000000;">&#123;</span>
			<span style="color: #0033ff; font-weight: bold;">return</span> _instance;
		<span style="color: #000000;">&#125;</span>
&nbsp;
		<span style="color: #3f5fbf;">/**
		 * Application Constructor.
		 */</span>
		<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> Application<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
		<span style="color: #000000;">&#123;</span>
			<span style="color: #0033ff; font-weight: bold;">super</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
			<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span>.<span style="color: #004993;">ADDED_TO_STAGE</span>, initOnStage<span style="color: #000000;">&#41;</span>;
		<span style="color: #000000;">&#125;</span>
&nbsp;
		<span style="color: #3f5fbf;">/**
		 * Handle ADDED_TO_STAGE event.
		 * @param event
		 */</span>
		<span style="color: #0033ff; font-weight: bold;">protected</span> <span style="color: #339966; font-weight: bold;">function</span> initOnStage<span style="color: #000000;">&#40;</span>event<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
		<span style="color: #000000;">&#123;</span>
			<span style="color: #009900;">//remove ADDED_TO_STAGE listener.</span>
			<span style="color: #0033ff; font-weight: bold;">this</span>.<span style="color: #004993;">removeEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span>.<span style="color: #004993;">ADDED_TO_STAGE</span>, initOnStage<span style="color: #000000;">&#41;</span>;
&nbsp;
			<span style="color: #009900;">//Set unique instance.</span>
			<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight: bold;">!</span>_instance<span style="color: #000000;">&#41;</span>
				_instance = <span style="color: #0033ff; font-weight: bold;">this</span>;
&nbsp;
			<span style="color: #009900;">//...</span>
		<span style="color: #000000;">&#125;</span>
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>



<p>Related posts:<ol><li><a href='http://blog.richmediaplus.com/2009/04/call-adobe-air-app-from-browser/' rel='bookmark' title='Permanent Link: 從瀏覽器呼出相應的Air程式'>從瀏覽器呼出相應的Air程式</a></li>
<li><a href='http://blog.richmediaplus.com/2009/07/loading-external-html-and-css-in-actionscript/' rel='bookmark' title='Permanent Link: Loading external html and css in ActionScript'>Loading external html and css in ActionScript</a></li>
<li><a href='http://blog.richmediaplus.com/2009/04/create-trail-information-and-expired-date-in-actionscript3-and-flex3/' rel='bookmark' title='Permanent Link: Create Trail Information &#038; Expired Date in ActionScript3 &#038; Flex'>Create Trail Information &#038; Expired Date in ActionScript3 &#038; Flex</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/richmediaplus/~4/JXGw9OU_vzQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.richmediaplus.com/2009/12/as3-project-custom-preload-load-application/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.richmediaplus.com/2009/12/as3-project-custom-preload-load-application/</feedburner:origLink></item>
		<item>
		<title>基金凈值圖表(NetValueChart) &amp; 基金績效圖表(PerformanceChart)</title>
		<link>http://feedproxy.google.com/~r/richmediaplus/~3/Sc6b0AnsgtE/</link>
		<comments>http://blog.richmediaplus.com/2009/12/netvaluechartandperformancechart/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 02:15:55 +0000</pubDate>
		<dc:creator>Alvin / Aedis.Ju</dc:creator>
				<category><![CDATA[ActionScript3]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[HDividedCanvas]]></category>
		<category><![CDATA[HDividedSlider]]></category>
		<category><![CDATA[NetValueChart]]></category>
		<category><![CDATA[PerformanceChart]]></category>
		<category><![CDATA[richmediaplus AS3 Library]]></category>
		<category><![CDATA[richmediaplus Flex Component]]></category>

		<guid isPermaLink="false">http://blog.richmediaplus.com/?p=441</guid>
		<description><![CDATA[前段時間重新為臺灣的ING投資理財網定制了2個基金圖表，工程已經接近完成，因此也拿出來分享一下。

基金凈值圖表(NetValueChart) – ING投資理財網(Taiwan)

基金凈值圖表(NetValueChart)Demo


基金績效圖表(PerformanceChart) – ING投資理財網(Taiwan)

基金績效圖表(PerformanceChart)Demo

擁有自定義基于Adobe Flex UIComponent的4個組件：

richmediaplus.chart.NetValueChart
richmediaplus.chart.PerformanceChart
richmediaplus.controls.HDividedCanvas
richmediaplus.controls.HDividedSlider

NetValueChart &#38; PerformanceChart支持同時顯示多條曲線，比起Adobe Flex自帶的Chart Component運算速度更快，效能更佳，功能也更多，   。
HDividedCanvas &#38; HDividedSlider是一個區間選擇组件。


No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>前段時間重新為臺灣的<a title="ING投資理財網" href="https://www.ingfunds.com.tw/" target="_blank">ING投資理財網</a>定制了2個基金圖表，工程已經接近完成，因此也拿出來分享一下。</p>
<ul>
<li><strong><a title="More detail..." href="http://blog.richmediaplus.com/showcase/netvaluechart/" target="_blank">基金凈值圖表(NetValueChart)</a> – </strong>ING投資理財網(Taiwan)
<div style="width: 377px;"><a href="http://blog.richmediaplus.com/showcase/netvaluechart/" target="_blank"><img title="More detail..." src="http://blog.richmediaplus.com/wp-content/showcase/NetValueChart/NetValueChart.png" alt="ING投資理財網基金凈值圖表(NetValueChart)" width="367" height="305" /></a></div>
<p><a title="基金凈值圖表(NetValueChart)" href="http://code.richmediaplus.com/NetValueChartApp/NetValueChartApp.html" target="_blank"><span style="color: #000000;"><span style="text-decoration: underline;">基金凈值圖表(NetValueChart)Demo</span></span></a></li>
</ul>
<ul>
<li><strong><a title="More detail..." href="http://blog.richmediaplus.com/showcase/performancechart/" target="_blank">基金績效圖表(PerformanceChart)</a> – </strong>ING投資理財網(Taiwan)
<div style="width: 377px;"><a href="http://blog.richmediaplus.com/showcase/performancechart/" target="_blank"><img title="More detail..." src="http://blog.richmediaplus.com/wp-content/showcase/PerformanceChart/PerformanceChart.png" alt="ING投資理財網基金績效圖表(PerformanceChart)" width="367" height="305" /></a></div>
<p><a title="基金績效圖表(PerformanceChart)" href="http://code.richmediaplus.com/PerformanceChartApp/PerformanceChartApp.html" target="_blank"><span style="color: #000000;"><span style="text-decoration: underline;">基金績效圖表(PerformanceChart)Demo</span></span></a></li>
</ul>
<p>擁有自定義基于Adobe Flex UIComponent的4個組件：</p>
<ol>
<li>richmediaplus.chart.NetValueChart</li>
<li>richmediaplus.chart.PerformanceChart</li>
<li>richmediaplus.controls.HDividedCanvas</li>
<li>richmediaplus.controls.HDividedSlider</li>
</ol>
<p>NetValueChart &amp; PerformanceChart支持同時顯示多條曲線，比起Adobe Flex自帶的Chart Component運算速度更快，效能更佳，功能也更多， <img src='http://blog.richmediaplus.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' />  。</p>
<p>HDividedCanvas &amp; HDividedSlider是一個區間選擇组件。</p>


<p>No related posts.</p><img src="http://feeds.feedburner.com/~r/richmediaplus/~4/Sc6b0AnsgtE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.richmediaplus.com/2009/12/netvaluechartandperformancechart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.richmediaplus.com/2009/12/netvaluechartandperformancechart/</feedburner:origLink></item>
		<item>
		<title>YouTube Chromeless Player API 正式支持 ActionScript 3</title>
		<link>http://feedproxy.google.com/~r/richmediaplus/~3/z9fmxd37vds/</link>
		<comments>http://blog.richmediaplus.com/2009/11/youtube-chromeless-player-api-support-actionscript-3/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 09:37:25 +0000</pubDate>
		<dc:creator>Alvin / Aedis.Ju</dc:creator>
				<category><![CDATA[Youtube Player API]]></category>
		<category><![CDATA[Tubeloc]]></category>
		<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[YouTube Chromeless Player]]></category>
		<category><![CDATA[youtubechromelesswrapper-as3]]></category>

		<guid isPermaLink="false">http://blog.richmediaplus.com/?p=401</guid>
		<description><![CDATA[這次 YouTube Chromeless Player API 對 ActionScript 3 的支持堪稱完美了！
首先，回顧之前常用的 Youtube Player API，來個部分總結：

youtubechromelesswrapper-as3
youtubechromelesswrapper-as3 的原理是利用 ActionScript&#8217;s ExternalInterface class &#38; YouTube&#8217;s JavaScript API 進行交互。
查看它的原始碼可以看出它 Loading 的 Youtube Player 地址。

1
2
3
4
5
6
7
//Loading youtube 的 apiplayer，并且設置可以與 Javascript 互動。
private static const CHROMELESS_PLAYER_URL:String=&#34;http://www.youtube.com/apiplayer?enablejsapi=1&#34;
...
_loader = new Loader&#40;&#41;;
//_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
_loader.contentLoaderInfo.addEventListener&#40;IOErrorEvent.IO_ERROR, ioErrorHandler&#41;;
_loader.load&#40;new URLRequest&#40;CHROMELESS_PLAYER_URL&#41;&#41;;

Event.COMPLETE 在這里并不起作用，因此需要通過 ExternalInterface class &#38; JavaScript來判斷相應的 SWF-DIV 來告知CHROMELESS_PLAYER_URL 是否Loading成功，而在Flash里面的每次操作，也是由 ExternalInterface class &#38; JavaScript 來互相控制。
這樣一來，缺點顯而易見：

 只能選用Chromeless Youtube [...]


Related posts:<ol><li><a href='http://blog.richmediaplus.com/2009/02/tubeloc-youtube-player-as3-nice-support/' rel='bookmark' title='Permanent Link: TubeLoc: YouTube Player AS3 Nice Support!'>TubeLoc: YouTube Player AS3 Nice Support!</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>這次 YouTube Chromeless Player API 對 ActionScript 3 的支持堪稱完美了！<br />
首先，回顧之前常用的 Youtube Player API，來個部分總結：</p>
<ul>
<li><strong><a href="http://code.google.com/p/youtubechromelesswrapper-as3/" target="_blank">youtubechromelesswrapper-as3</a></strong><br />
youtubechromelesswrapper-as3 的原理是利用 ActionScript&#8217;s ExternalInterface class &amp; YouTube&#8217;s JavaScript API 進行交互。<br />
查看它的原始碼可以看出它 Loading 的 Youtube Player 地址。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #009900;">//Loading youtube 的 apiplayer，并且設置可以與 Javascript 互動。</span>
<span style="color: #0033ff; font-weight: bold;">private</span> static const CHROMELESS_PLAYER_URL<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">String</span>=<span style="color: #990000;">&quot;http://www.youtube.com/apiplayer?enablejsapi=1&quot;</span>
...
_loader = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Loader</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #009900;">//_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);</span>
_loader.<span style="color: #004993;">contentLoaderInfo</span>.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">IOErrorEvent</span>.<span style="color: #004993;">IO_ERROR</span>, ioErrorHandler<span style="color: #000000;">&#41;</span>;
_loader.<span style="color: #004993;">load</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">URLRequest</span><span style="color: #000000;">&#40;</span>CHROMELESS_PLAYER_URL<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>;</pre></td></tr></table></div>

<p>Event.COMPLETE 在這里并不起作用，因此需要通過 ExternalInterface class &amp; JavaScript來判斷相應的 SWF-DIV 來告知CHROMELESS_PLAYER_URL 是否Loading成功，而在Flash里面的每次操作，也是由 ExternalInterface class &amp; JavaScript 來互相控制。<br />
這樣一來，缺點顯而易見：</p>
<ol>
<li> 只能選用Chromeless Youtube Player</li>
<li> 判斷 CHROMELESS_PLAYER_URL 是否 Loading 成功的方式感覺到很奇怪。</li>
<li> JS 禁用的條件下，youtubechromelesswrapper-as3 肯定無法操作。</li>
<li> 多個播放器無法操作。</li>
</ol>
<p><em>更多參考：<br />
demo:<br />
<a href="http://youtubechromelesswrapper-as3.googlecode.com/svn/trunk/as3wrapper/deploy/index.html" target="_blank">http://youtubechromelesswrapper-as3.googlecode.com/svn/trunk/as3wrapper/deploy/index.html</a></p>
<p>A full article and code overview is available here:<br />
<a href="http://code.google.com/apis/youtube/articles/youtube_as3_chromeless.html" target="_blank">http://code.google.com/apis/youtube/articles/youtube_as3_chromeless.html</a></p>
<p>Sample Source Code:<br />
<a href="http://youtubechromelesswrapper-as3.googlecode.com/files/ActionScript_3_YouTube_Wrapper_v1.0.zip" target="_blank">ActionScript_3_YouTube_Wrapper_v1.0.zip</a></li>
<p></em>
</ul>
<ul>
<li><strong><a href="http://code.google.com/p/tubeloc/" target="_blank">TubeLoc</a></strong><br />
個人<a href="http://blog.richmediaplus.com/2009/02/tubeloc-youtube-player-as3-nice-support/" target="_blank">曾經強烈推薦過的 Youtube Player 連接方式</a>。<br />
TubeLoc 是 AS2 YouTube Player API 的 AS3/Flex Proxy  Library，原理是采用 localConnection 利用 ActionScript 2 編碼的 SWF (as2_tubeloc.swf) 與 the YouTube Player API 進行通信，整個過程不需要 JS 的支持，并且支持 Full-Chrome player &amp; Chromeless player。<br />
缺點：</p>
<ol>
<li> localConnection 連接會有可能 Connection Channel 被占用，無法造成鏈接。</li>
<li> localConnection 的send()方式數據量限制為40個字節，否則引發 ArgumentError（一般不會發生，但畢竟還是由此限制呀） 。</li>
<li>多個播放器無法操作。</li>
</ol>
<p><em>更多參考：<br />
<a href="http://code.google.com/intl/en/apis/youtube/articles/tubeloc.html" target="_blank">http://code.google.com/intl/en/apis/youtube/articles/tubeloc.html</a></li>
<p></em></ul>
<p>最近再次查看 Youtube Player API</p>
<blockquote><p><em>Wednesday, October 14, 2009<br />
the official YouTube Chromeless Player API has been updated to natively support ActionScript 3!<br />
&#8230;</em></p></blockquote>
<p>讓我眼前一亮。</p>
<p><strong>這次 Youtube 的更新支持 YouTube Chromeless Player 不再需要通過 JS 或者 localConnection 的方式進行通信連接，直接采用 ActionScript3 的內部方式。</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #009900;">//注意這次的地址，后面加了參數version = 3。</span>
<span style="color: #009900;">//如果沒有這個version=3的參數，那么 YouTube Chromeless Player API 將無法使用的</span>
<span style="color: #0033ff; font-weight: bold;">private</span> static const CHROMELESS_PLAYER_URL<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">String</span>=<span style="color: #990000;">&quot;http://www.youtube.com/apiplayer?version=3&quot;</span>;</pre></td></tr></table></div>

<p>而檢測 Player 是否成功載入的方式采用的是它本身內部的監聽，目前提供了：<br />
&#8220;onReady&#8221; &#8211; 載入成功<br />
&#8220;onError&#8221; &#8211; 載入異常<br />
&#8220;onStateChange&#8221; &#8211; 播放器狀態改變<br />
&#8220;onPlaybackQualityChange&#8221; &#8211; 播放器影片載入質量改變</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;">_youtubeLoader.<span style="color: #004993;">content</span>.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;onReady&quot;</span>, onPlayerReady<span style="color: #000000;">&#41;</span>;
_youtubeLoader.<span style="color: #004993;">content</span>.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;onError&quot;</span>, onPlayerError<span style="color: #000000;">&#41;</span>;
_youtubeLoader.<span style="color: #004993;">content</span>.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;onStateChange&quot;</span>, onPlayerStateChange<span style="color: #000000;">&#41;</span>;
_youtubeLoader.<span style="color: #004993;">content</span>.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;onPlaybackQualityChange&quot;</span>, onVideoPlaybackQualityChange<span style="color: #000000;">&#41;</span>;</pre></td></tr></table></div>

<p>而使用方法，也是在 _youtubeLoader 在完全 Loading 完成 youtubePlayer 以后，直接進行調用</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #3f5fbf;">/**
 * loadByURL
 * @param url YouTube player URL in the format http://www.youtube.com/v/VIDEO_ID.
 * @param seconds
 */</span>
<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> loadByURL<span style="color: #000000;">&#40;</span><span style="color: #004993;">url</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">String</span>, <span style="color: #004993;">seconds</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Number</span> = <span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>youtubePlayer<span style="color: #000000;">&#41;</span>
	<span style="color: #000000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>_autoPlay<span style="color: #000000;">&#41;</span>
		<span style="color: #000000;">&#123;</span>
			<span style="color: #009900;">//Loads and plays the specified video.</span>
			youtubePlayer.loadVideoByUrl<span style="color: #000000;">&#40;</span><span style="color: #004993;">url</span>, <span style="color: #004993;">seconds</span><span style="color: #000000;">&#41;</span>;
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">else</span>
		<span style="color: #000000;">&#123;</span>
			<span style="color: #009900;">//The player does not request the FLV until playVideo() or seekTo() is called.</span>
			youtubePlayer.cueVideoByUrl<span style="color: #000000;">&#40;</span><span style="color: #004993;">url</span>, <span style="color: #004993;">seconds</span><span style="color: #000000;">&#41;</span>;
		<span style="color: #000000;">&#125;</span>
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>而且經過測試，可以支持多個播放器同時播放。<br />
本人也寫了個 AS3 的類供大家玩耍（因為要連接 Youtube.com，所以國內的同學請繞墻），可以參考源代碼。<br />
<a href="http://code.richmediaplus.com/ChromelessYoutubePlayerAS3/ChromelessYoutubePlayerAS3App.html" target="_blank">http://code.richmediaplus.com/ChromelessYoutubePlayerAS3/ChromelessYoutubePlayerAS3App.html</a><br />
SourceView:<a href="http://code.richmediaplus.com/ChromelessYoutubePlayerAS3/srcview/" target="_blank">http://code.richmediaplus.com/ChromelessYoutubePlayerAS3/srcview/</a></p>
<p>更多參考（國內的同學請注意跳轉地址）：<br />
<a href="http://code.google.com/intl/en/apis/youtube/flash_api_reference.html" target="_blank">http://code.google.com/intl/en/apis/youtube/flash_api_reference.html</a></p>
<p>至于 Full-Chrome player 的這一塊，經本人測試，如果loading的地址采用的是&#8221;http://www.youtube.com/v/VIDEO_ID?version=3&#8243;，那么loading襲來的swf照樣可以支持目前提供的API，但是因為Flash security的限制，DEBUG版本播放器下會報錯誤，但是普通版本可以測試通過。畢竟 Full-Chrome player 的 API 還沒有正式提供，所以也不建議大家使用。</p>
<p>真的播放器在 <a href="http://s.ytimg.com/yt/swf/watch_as3.swf" target="_blank">http://s.ytimg.com/yt/swf/watch_as3.swf</a> 這里啊，但是人家限制域啦！</p>


<p>Related posts:<ol><li><a href='http://blog.richmediaplus.com/2009/02/tubeloc-youtube-player-as3-nice-support/' rel='bookmark' title='Permanent Link: TubeLoc: YouTube Player AS3 Nice Support!'>TubeLoc: YouTube Player AS3 Nice Support!</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/richmediaplus/~4/z9fmxd37vds" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.richmediaplus.com/2009/11/youtube-chromeless-player-api-support-actionscript-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.richmediaplus.com/2009/11/youtube-chromeless-player-api-support-actionscript-3/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 4.458 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-03-09 02:26:13 -->
