<?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>DigiTechLog Dot Com &#187; ActionScript</title>
	<atom:link href="http://digitechlog.com/tag/actionscript/feed" rel="self" type="application/rss+xml" />
	<link>http://digitechlog.com</link>
	<description>Adobe AIR、Flex、Flash、Java</description>
	<lastBuildDate>Tue, 08 Nov 2011 12:46:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>8 Adobe ActionScriptのチュートリアルフラッシュ</title>
		<link>http://digitechlog.com/2010/06/06/8-helpfull-adobe-flash-actionscript.html</link>
		<comments>http://digitechlog.com/2010/06/06/8-helpfull-adobe-flash-actionscript.html#comments</comments>
		<pubDate>Sun, 06 Jun 2010 12:00:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2010/06/06/8-helpfull-adobe-flash-actionscript.html</guid>
		<description><![CDATA[Adobe Flashは、開発者がWebページにインタラクティブ性とスムーズなアニメーションを追加することができる優れた技術である。開発者は、Flashに興味を支援する多くのウェブサイトを見つけることはできる。この資料には、助けるものを出来るだけ入れたが、非常に多いので、すべてを含めることはできない。もしあなたのお気に入りを見ていなかったら、コメント欄で共有お願い。 
 
Flashmagazine     
Flashmagazineはフラッシュニュース、レビュー、情報とリソースを中心にするオンラインマガジンである。チュートリアルセクションでは、Flash開発者のためのいくつかの優れたチュートリアルを持っている。
&#160;
metah.ch







metah.chは、Flash、ActionScript、Flex、AIRについて素晴らしいビデオチュートリアルがある。ファイルは、チュートリアルをダウンロードすることができて、独自のプロジェクトに使用できる。
&#160;
LukaMaras.com     







LukaMaras.comは、詳しいFlashチュートリアルやリソースを提供し、Flashを学ぶのを助ける。また、小さなフォーラムセクションでは、Flashに関連する議論することができる3000以上の登録ユーザーがいる。
&#160;
gotoAndPlay()
&#160;



 



gotoAndPlay（）はFlashゲーム開発者向けリソースを提供することに取り組んでいます。これは、フォーラム、プロの開発者からのインタビュー、しかも本とリソースのレビューを含めるコミュニティである。
&#160;
gotoandlearn.com     



 



一部の人は視覚化により、インストラクターのステップバイステップで学習する。あなたは教育のビデオを見て学ぶことを好むタイプなら、gotoandlearn.comをチェックアウトしてください。 

Flash Perfection
&#160;



 



フラッシュパーフェクションは、様々なウェブサイトからのFlashチュートリアル、ヒントとトリックいっぱい入っているコレクションのウェブサイトであり、。フラッシュパーフェクションは、23種類に分けて、より多くの情報をすばやく見つけるのを助ける。
&#160;
Adobe – Flash Developer Center
&#160;



 



AdobeのFlashデベロッパーセンターには、Flash開発者のためのコミュニティです。ここでは、と、Flashに関する関連リソースのチュートリアル、記事を見つける。また、ActionScriptに関する記事はActionScriptの技術センターにチェックアウトしてください。
&#160;
ActionScript.org
&#160;



 



ActionScript.orgは、フラッシュ、Flex、およびActionScriptに係るリソースや情報を提供するサイトです。彼らはかなり活発なフォーラムセクションがあり、ActionScriptライブラリには、700以上のオブジェクトをダウンロード可能だよ。
Related Posts

5個アドビFlashメニューとナビゲーションのチュートリアル
有用なAdobe PhotoShop（アドビ フォトショップ）チュートリアルリスト
Photoshop チュートリアル： コスミック エレメンツ(Cosmic Elements)
Photoshop チュートリアル：光を表現する効果
Photoshop チュートリアル：液体テキスト効果(2011/02/20)
Photoshop チュートリアル：ポスターの集（2011/02/08）
Photoshop チュートリアル：写真を漫画に変更
Photoshop チュートリアル：抽象的な作品

]]></description>
			<content:encoded><![CDATA[<p>Adobe Flashは、開発者がWebページにインタラクティブ性とスムーズなアニメーションを追加することができる優れた技術である。開発者は、Flashに興味を支援する多くのウェブサイトを見つけることはできる。この資料には、助けるものを出来るだけ入れたが、非常に多いので、すべてを含めることはできない。もしあなたのお気に入りを見ていなかったら、コメント欄で共有お願い。 </p>
<p> <span id="more-963"></span>
<p><a href="http://www.flashmagazine.com/">Flashmagazine</a>     </p>
<p>Flashmagazineはフラッシュニュース、レビュー、情報とリソースを中心にするオンラインマガジンである。チュートリアルセクションでは、Flash開発者のためのいくつかの優れたチュートリアルを持っている。</p>
<p>&#160;</p>
<p><a href="http://as3.metah.ch/">metah.ch</a></p>
<table cellspacing="0" cellpadding="2" width="500" border="1">
<tbody>
<tr>
<td valign="top" width="500"><img title="metah.ch" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="200" alt="metah.ch" src="http://digitechlog.com/wp-content/uploads/2010/06/metah.ch.png" width="550" border="0" /></td>
</tr>
</tbody>
</table>
<p>metah.chは、Flash、ActionScript、Flex、AIRについて素晴らしいビデオチュートリアルがある。ファイルは、チュートリアルをダウンロードすることができて、独自のプロジェクトに使用できる。</p>
<p>&#160;</p>
<p><a href="http://lukamaras.com/">LukaMaras.com</a>     </p>
<table cellspacing="0" cellpadding="2" width="500" border="1">
<tbody>
<tr>
<td valign="top" width="500"><img title="LukaMaras.com" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="200" alt="LukaMaras.com" src="http://digitechlog.com/wp-content/uploads/2010/06/LukaMaras.com.jpg" width="550" border="0" /></td>
</tr>
</tbody>
</table>
<p>LukaMaras.comは、詳しいFlashチュートリアルやリソースを提供し、Flashを学ぶのを助ける。また、小さなフォーラムセクションでは、Flashに関連する議論することができる3000以上の登録ユーザーがいる。</p>
<p>&#160;</p>
<p><a href="http://www.gotoandplay.it/">gotoAndPlay()</a></p>
<p>&#160;</p>
<table cellspacing="0" cellpadding="2" width="500" border="1">
<tbody>
<tr>
<td valign="top" width="500"><img title="gotoAndPlay()" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="200" alt="gotoAndPlay()" src="http://digitechlog.com/wp-content/uploads/2010/06/gotoAndPlay.jpg" width="550" border="0" /> </td>
</tr>
</tbody>
</table>
<p>gotoAndPlay（）はFlashゲーム開発者向けリソースを提供することに取り組んでいます。これは、フォーラム、プロの開発者からのインタビュー、しかも本とリソースのレビューを含めるコミュニティである。</p>
<p>&#160;</p>
<p><a href="http://www.gotoandlearn.com/">gotoandlearn.com</a>     </p>
<table cellspacing="0" cellpadding="2" width="500" border="1">
<tbody>
<tr>
<td valign="top" width="500"><img title="gotoandlearn[1].com" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="200" alt="gotoandlearn[1].com" src="http://digitechlog.com/wp-content/uploads/2010/06/gotoandlearn1.com.png" width="550" border="0" /> </td>
</tr>
</tbody>
</table>
<p>一部の人は視覚化により、インストラクターのステップバイステップで学習する。あなたは教育のビデオを見て学ぶことを好むタイプなら、gotoandlearn.comをチェックアウトしてください。 </p>
</p>
<p><a href="http://www.flashperfection.com/">Flash Perfection</a></p>
<p>&#160;</p>
<table cellspacing="0" cellpadding="2" width="500" border="1">
<tbody>
<tr>
<td valign="top" width="500"><img title="Flash Perfection" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="200" alt="Flash Perfection" src="http://digitechlog.com/wp-content/uploads/2010/06/FlashPerfection.png" width="550" border="0" /> </td>
</tr>
</tbody>
</table>
<p>フラッシュパーフェクションは、様々なウェブサイトからのFlashチュートリアル、ヒントとトリックいっぱい入っているコレクションのウェブサイトであり、。フラッシュパーフェクションは、23種類に分けて、より多くの情報をすばやく見つけるのを助ける。</p>
<p>&#160;</p>
<p><a href="http://www.adobe.com/devnet/flash/">Adobe – Flash Developer Center</a></p>
<p>&#160;</p>
<table cellspacing="0" cellpadding="2" width="500" border="1">
<tbody>
<tr>
<td valign="top" width="500"><img title="Adobe Flash Developer Center" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="200" alt="Adobe Flash Developer Center" src="http://digitechlog.com/wp-content/uploads/2010/06/AdobeFlashDeveloperCenter.jpg" width="550" border="0" /> </td>
</tr>
</tbody>
</table>
<p>AdobeのFlashデベロッパーセンターには、Flash開発者のためのコミュニティです。ここでは、と、Flashに関する関連リソースのチュートリアル、記事を見つける。また、ActionScriptに関する記事はActionScriptの技術センターにチェックアウトしてください。</p>
<p>&#160;</p>
<p><a href="http://www.actionscript.org/">ActionScript.org</a></p>
<p>&#160;</p>
<table cellspacing="0" cellpadding="2" width="500" border="1">
<tbody>
<tr>
<td valign="top" width="500"><img title="ActionScript[1].org" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="181" alt="ActionScript[1].org" src="http://digitechlog.com/wp-content/uploads/2010/06/ActionScript1.org.jpg" width="500" border="0" /> </td>
</tr>
</tbody>
</table>
<p>ActionScript.orgは、フラッシュ、Flex、およびActionScriptに係るリソースや情報を提供するサイトです。彼らはかなり活発なフォーラムセクションがあり、ActionScriptライブラリには、700以上のオブジェクトをダウンロード可能だよ。</p>
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://digitechlog.com/2009/10/31/5-useful-aadobe-flash-menu-and-navigation-tutorials.html" title="5個アドビFlashメニューとナビゲーションのチュートリアル">5個アドビFlashメニューとナビゲーションのチュートリアル</a></li>
<li><a href="http://digitechlog.com/2008/11/07/the-list-of-useful-adobe-photoshop-tutorials.html" title="有用なAdobe PhotoShop（アドビ フォトショップ）チュートリアルリスト">有用なAdobe PhotoShop（アドビ フォトショップ）チュートリアルリスト</a></li>
<li><a href="http://digitechlog.com/2011/03/30/photoshop-tutorial-cosmic-elements.html" title="Photoshop チュートリアル： コスミック エレメンツ(Cosmic Elements)">Photoshop チュートリアル： コスミック エレメンツ(Cosmic Elements)</a></li>
<li><a href="http://digitechlog.com/2011/03/08/photoshop-tutorials-for-light-effects.html" title="Photoshop チュートリアル：光を表現する効果">Photoshop チュートリアル：光を表現する効果</a></li>
<li><a href="http://digitechlog.com/2011/02/20/photoshop-tutorial-liquid-text-effect-20110220.html" title="Photoshop チュートリアル：液体テキスト効果(2011/02/20)">Photoshop チュートリアル：液体テキスト効果(2011/02/20)</a></li>
<li><a href="http://digitechlog.com/2011/02/09/photoshop-tutorial-poster-20110208.html" title="Photoshop チュートリアル：ポスターの集（2011/02/08）">Photoshop チュートリアル：ポスターの集（2011/02/08）</a></li>
<li><a href="http://digitechlog.com/2011/01/30/photoshop-tutorial-turn-photo-into-cartoon-type-picture-20110130.html" title="Photoshop チュートリアル：写真を漫画に変更">Photoshop チュートリアル：写真を漫画に変更</a></li>
<li><a href="http://digitechlog.com/2011/01/21/photoshop-tutorial-abstract-effect-20110123.html" title="Photoshop チュートリアル：抽象的な作品">Photoshop チュートリアル：抽象的な作品</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2010/06/06/8-helpfull-adobe-flash-actionscript.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>７+ AS3で非同期処理のオープンソースのライブラリ一覧</title>
		<link>http://digitechlog.com/2010/03/12/7-asynchronous-processing-open-source-actionscript-library.html</link>
		<comments>http://digitechlog.com/2010/03/12/7-asynchronous-processing-open-source-actionscript-library.html#comments</comments>
		<pubDate>Fri, 12 Mar 2010 08:58:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[オープンソース]]></category>
		<category><![CDATA[ライブラリ]]></category>
		<category><![CDATA[非同期処理]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2010/03/12/7-asynchronous-processing-open-source-actionscript-library.html</guid>
		<description><![CDATA[以前発表した「ActionScript Libraryリスト」には、「Thread – 疑似スレッド」、「ASDeferred – JSDeffered の AS3 版」、「Chain – 非同期処理をカンタンに」と「Command – fladdict 製 Command ライブラリ」の四つを紹介しましたね。
今回では、まず「非同期処理」ってなんということを簡単で記述します。簡単でといえば、
・「同期処理」とは一つの処理が終わるまで次の処理が行われない処理のことです。   ・「非同期処理」とは前の処理とは関係なく次の処理が行われることです。
 
非同期処理はリッチクライアントのUIのプロセスバーが重いのはデータを取得・更新の時、毎回Valueを更新する時よく使われています。
次はAS3で非同期処理のオープンソースのライブラリ一覧です。
１）、flashrod Job
非同期処理の同期化を助ける非常にシンプルな方法です。引数なしのstartメソッドで実行が開始され、完了時にfinishedを送出するものを Jobとし、全てのクラスはJobを実装します。たとえ同期処理でも、完了時にfinishedを送出することが求められます。

合成可。SequenceやConcurrentはJobインターフェースを実装している。 
並列実行可。Concurrentクラスを使う。 
エラーについては扱っていない。 
続行可。たとえエラーが発生しても、finishedイベントを送出するようJobを実装すればよい。 
中止は扱っていない。 
値の受け渡しは不可。Job側で結果を保持しておく、などの必要があり。 
traceすらもJobの実装クラスになる。クロージャ渡せるようにしたい人は各自でといった感じ。 
非同期処理の構築はコンストラクタでのみ行われ、その後の変更は不可。 
Job#start()で明示的な実行を行う。 
WaitやURLGetを除いた複合非同期処理は再実行不可。一度完了した頃には配列が空になるため。 
進捗は通知されない。 
完了通知はAS3のイベントモデルに準拠している。イベントからJobを作る汎用メソッドは特にない。 

２）、fladdict Command
引数なしのexecuteメソッドで実行が開始され、完了時にcompleteを送出するものをICommandとし、全てのクラスは ICommandを実装します。たとえ同期処理でも、完了時にcompleteを送出することが求められますが、単に同期処理を追加したいだけであればわざわざクラスを作らずとも、Commandというクラスのコンストラクタにスコープと関数と引数を指定してやるだけで済みます。一方の非同期処理は AsyncCommandでラップでき、Commandと同様のコンストラクタ引数に加えて、イベントディスパッチャと完了を通知するイベント名を指定して作成します。

合成可。SerialCommandやParallelCommandはICommandインターフェースを実装している。 
並列実行可。ParallelCommandクラスを使う。 
エラーについては扱っていない。 
続行可。たとえエラーが発生しても、completeイベントを送出するようなCommandを実装すればよい。AsyncCommandを利用する場合、ディスパッチャのエラーイベントについて関知しないことに注意。 
ICommand.asを見るに、中止は予定しているように見えるが、未実装と思われる。 
値の受け渡しは不可。Command側で結果を保持しておく、などの必要あり。 
複合非同期処理の基底クラスであるBatchCommandには各種ショートカットメソッドがあり、後続の処理の追加を簡単にしている。 
非同期処理の追加を実行中にもできるが、実行後に追加した処理は開始されないと思われる。 
ICommand#execute()で明示的な実行を行う。 
複合非同期処理の進捗状況を保存する_indexというカウンタがリセットされないため、再実行は想定していない操作と思われる。 
進捗は通知されない。 
完了通知はAS3のイベントモデルに準拠している。メソッドとその完了を告げるイベントをワンセットとして非同期処理を表現する AsyncCommandが提供されている。 

３）、Mochikit Deferred
JSになってしまいますが、ASへの移植も容易なため紹介します。MochikitのDeferredは以下が大変参考になります。   http://d.hatena.ne.jp/brazil/20080721/1216580402

合成可。コールバックの戻り値がDeferredの場合、チェーンの実行は一時停止され、子チェーンの完了を待機。 
並列実行可。DeferredListを使う。 [...]]]></description>
			<content:encoded><![CDATA[<p>以前発表した「<a href="http://digitechlog.com/2008/10/19/the-list-of-actionscript-library.html">ActionScript Libraryリスト</a>」には、「Thread – 疑似スレッド」、「ASDeferred – JSDeffered の AS3 版」、「Chain – 非同期処理をカンタンに」と「Command – fladdict 製 Command ライブラリ」の四つを紹介しましたね。</p>
<p>今回では、まず「非同期処理」ってなんということを簡単で記述します。簡単でといえば、</p>
<p>・「同期処理」とは一つの処理が終わるまで次の処理が行われない処理のことです。   <br />・「非同期処理」とは前の処理とは関係なく次の処理が行われることです。</p>
<p> <span id="more-940"></span>
<p>非同期処理はリッチクライアントのUIのプロセスバーが重いのはデータを取得・更新の時、毎回Valueを更新する時よく使われています。</p>
<p>次はAS3で非同期処理のオープンソースのライブラリ一覧です。</p>
<p>１）、<a href="http://d.hatena.ne.jp/flashrod/20070815#1187191083"><strong>flashrod Job</strong></a></p>
<p>非同期処理の同期化を助ける非常にシンプルな方法です。引数なしのstartメソッドで実行が開始され、完了時にfinishedを送出するものを Jobとし、全てのクラスはJobを実装します。たとえ同期処理でも、完了時にfinishedを送出することが求められます。</p>
<ol>
<li>合成可。SequenceやConcurrentはJobインターフェースを実装している。 </li>
<li>並列実行可。Concurrentクラスを使う。 </li>
<li>エラーについては扱っていない。 </li>
<li>続行可。たとえエラーが発生しても、finishedイベントを送出するようJobを実装すればよい。 </li>
<li>中止は扱っていない。 </li>
<li>値の受け渡しは不可。Job側で結果を保持しておく、などの必要があり。 </li>
<li>traceすらもJobの実装クラスになる。クロージャ渡せるようにしたい人は各自でといった感じ。 </li>
<li>非同期処理の構築はコンストラクタでのみ行われ、その後の変更は不可。 </li>
<li>Job#start()で明示的な実行を行う。 </li>
<li>WaitやURLGetを除いた複合非同期処理は再実行不可。一度完了した頃には配列が空になるため。 </li>
<li>進捗は通知されない。 </li>
<li>完了通知はAS3のイベントモデルに準拠している。イベントからJobを作る汎用メソッドは特にない。 </li>
</ol>
<p>２）、<a href="http://fladdict.net/blog/2008/01/as3commands.html"><strong>fladdict Command</strong></a></p>
<p>引数なしのexecuteメソッドで実行が開始され、完了時にcompleteを送出するものをICommandとし、全てのクラスは ICommandを実装します。たとえ同期処理でも、完了時にcompleteを送出することが求められますが、単に同期処理を追加したいだけであればわざわざクラスを作らずとも、Commandというクラスのコンストラクタにスコープと関数と引数を指定してやるだけで済みます。一方の非同期処理は AsyncCommandでラップでき、Commandと同様のコンストラクタ引数に加えて、イベントディスパッチャと完了を通知するイベント名を指定して作成します。</p>
<ol>
<li>合成可。SerialCommandやParallelCommandはICommandインターフェースを実装している。 </li>
<li>並列実行可。ParallelCommandクラスを使う。 </li>
<li>エラーについては扱っていない。 </li>
<li>続行可。たとえエラーが発生しても、completeイベントを送出するようなCommandを実装すればよい。AsyncCommandを利用する場合、ディスパッチャのエラーイベントについて関知しないことに注意。 </li>
<li>ICommand.asを見るに、中止は予定しているように見えるが、未実装と思われる。 </li>
<li>値の受け渡しは不可。Command側で結果を保持しておく、などの必要あり。 </li>
<li>複合非同期処理の基底クラスであるBatchCommandには各種ショートカットメソッドがあり、後続の処理の追加を簡単にしている。 </li>
<li>非同期処理の追加を実行中にもできるが、実行後に追加した処理は開始されないと思われる。 </li>
<li>ICommand#execute()で明示的な実行を行う。 </li>
<li>複合非同期処理の進捗状況を保存する_indexというカウンタがリセットされないため、再実行は想定していない操作と思われる。 </li>
<li>進捗は通知されない。 </li>
<li>完了通知はAS3のイベントモデルに準拠している。メソッドとその完了を告げるイベントをワンセットとして非同期処理を表現する AsyncCommandが提供されている。 </li>
</ol>
<p>３）、<a href="http://mochikit.com/doc/html/MochiKit/Async.html"><strong>Mochikit Deferred</strong></a></p>
<p>JSになってしまいますが、ASへの移植も容易なため紹介します。MochikitのDeferredは以下が大変参考になります。   <br /><a href="http://d.hatena.ne.jp/brazil/20080721/1216580402">http://d.hatena.ne.jp/brazil/20080721/1216580402</a></p>
<ol>
<li>合成可。コールバックの戻り値がDeferredの場合、チェーンの実行は一時停止され、子チェーンの完了を待機。 </li>
<li>並列実行可。DeferredListを使う。 </li>
<li>エラーハンドラはaddErrBackで追加できる。ただし、ErrorEventが送出されたときにerrbackを呼ぶように作っておく必要はある。ハンドラ内で非Errorを返した場合、回復したものとしてコールバックチェーンを再開。 </li>
<li>続行可。addBothで、エラーが起こるにせよ起こらないにせよ実行したい後続の処理を追加すればよい。 </li>
<li>中止は可。何もしないと、現在の処理を終えてからようやく中止されるが、コンストラクタに適切なキャンセル関数を指定してやれば即座に中止する Deferredを作ることも可。 </li>
<li>値はコールバック関数の引数で受け取り、戻り値で後続の処理に引き継ぐ。 </li>
<li>クロージャを追加できる。第2引数以降を指定すれば、引数を束縛した関数を追加することもできる。 </li>
<li>非同期処理の追加をいつでもできる。実行後であれば、追加した瞬間実行される。ただし、子チェーンであると判明したDeferredには以後コールバックの追加は許されない(Chained Deferreds can not be re-used)。Mochikitの実装でそれを許すと、処理の流れは2本に分岐してしまうからか？ </li>
<li>Deferredを返す関数を呼び出して、非同期処理の実行を開始すると同時に、後追いでチェーンを構築するケースが多いと思う(暗黙的開始)。あるいは事前にチェーンを構築してcallbackを呼び出す(明示的開始)。 </li>
<li>Deferredは1回しかcallbackが許されない(AlreadyCalledError)。Deferredを返す関数は毎回フレッシュなDeferredを使うのが原則と思われ、そのように実装している限りにおいて再実行は可能といえなくもないが、オブジェクトは再利用できていない。 </li>
<li>進捗は通知されない。 </li>
<li>完了通知をイベントに戻したければ、誰かにdispatchEventしてもらうことになる。イベントを一度だけリッスンしてDeferredを返す関数を定義しておけば、いろいろと便利になると思われる。 </li>
</ol>
<p>４）、<a href="http://coderepos.org/share/wiki/JSDeferred"><strong>cho45 JSDeferred</strong></a></p>
<p>Mochikitの実装をもっとシンプルにできそうなので作ったとのライブラリです。こちらもJSですが、AS3へ移植したものもあるようです(並列処理を直列に繋ぐためのショートカットメソッドDeferred#parallelが加えられている点を除き同じかと思わる)。Mochikitとの違いとして、単方向リストを使用したミニマルな実装であること、nextをメソッドチェーンすると最後に追加された Deferredを指すこと、上の例のように開始は即座でなく同期処理の後に先送りされること(さもないとチェインの構築が間に合わない？)、callや failによるチェーンの再実行が許可されていること、チェーンの実行後にハンドラを追加しても自動的には実行されないこと、などがあると思います。</p>
<ol>
<li>合成可。コールバックの戻り値がDeferredの場合、このようにチェーンを繋ぎなおす。 </li>
<li>並列実行可。Deferred.parallelを使う。 </li>
<li>エラーハンドラはerrorで追加できる。ただし、ErrorEventが送出されたときにfailを呼ぶように作っておく必要はある。ハンドラの中で改めてthrowしなければ、回復したものとしてコールバックチェーンを再開。 </li>
<li>続行可。エラーが起こる可能性がある処理の後に、何もしないエラーハンドラを追加すればよい。 </li>
<li>中止は可。ただし、直列化された非同期処理の中止は、現在実行中のDeferredをライブラリ側で関知してくれないため、少々やりにくいと思われる。 </li>
<li>値はコールバック関数の引数で受け取り、戻り値で後続の処理に引き継ぐ。 </li>
<li>クロージャを追加できる。引数を束縛させる機能はないので、やりたければ自前でやる。 </li>
<li>非同期処理の追加を実行中にもできるが、実行後に追加した処理は開始されないと思われる。 </li>
<li>先頭のnextがディレイを噛ませた隙にチェーンを構築するケースが多いと思う(暗黙的開始)。あるいは事前にチェーンを構築してcallを呼び出す(明示的開始)。 </li>
<li>チェーン先頭のDeferredを保持しておいて必要なときにcallすれば可。 </li>
<li>進捗は通知されない。 </li>
<li>完了通知をイベントに戻したければ、誰かにdispatchEventしてもらうことになる。イベントを一度だけリッスンしてDeferredを返す関数を定義しておけば、いろいろと便利になると思われる。 </li>
</ol>
<p>５）、<a href="http://void.heteml.jp/blog/archives/2008/01/chain.html"><strong>voidelement Chain</strong></a></p>
<p>JSDeferredのAS実装であるASDeferredをベースに、よく使う処理を簡単に書けるような工夫が施されています。直列処理の追加は、next(function() {&#8230;})のような基本的なメソッドに加え、イベントを一度だけ待つlistenや、アニメーションを行うtweenerといった各種ショートカットメソッドを直にメソッドチェーンできるようになっています。並列処理の追加は、辞書を渡すようになっており、それぞれの非同期処理にラベルをつけて結果を後から参照しやすくするついでに、定型的な処理であればそれも辞書で書いてしまおう、といった感じになっています。</p>
<ol>
<li>合成可。コールバックの戻り値がChainの場合、このようにチェーンを繋ぎなおす。 </li>
<li>並列実行可。parallelを使う。 </li>
<li>エラーハンドラはerrorで追加できる。ライブラリで提供されているChainは、ErrorEventが送出されたときにエラーハンドラが呼ばれるようになっている。ハンドラの中で改めてthrowしなければ、回復したものとしてコールバックチェーンを再開。 </li>
<li>続行可。エラーが起こる可能性がある処理の後に、何もしないエラーハンドラを追加すればよい。 </li>
<li>中止は可。ただし、直列化された非同期処理の中止は、現在実行中のChainをライブラリ側で関知してくれないため、少々やりにくいと思われる。 </li>
<li>値はコールバック関数の引数ではなく、this.dataで受け取り、戻り値で後続の処理に引き継ぐ。戻り値のない処理がチェーンの途中に挟まっても、最後に得たdataを辿れるよう双方向リストになっている。多分。 </li>
<li>nextやerrorでクロージャを追加できる他、よく使う処理の追加は専用メソッドで行える。 </li>
<li>非同期処理の追加を実行中にもできるが、実行後に追加した処理は開始されないと思われる。 </li>
<li>先頭のChain.hogehogeがディレイを噛ませた隙にチェーンを構築するケースが多いと思う(暗黙的開始)。あるいは事前にチェーンを構築してexecuteを呼び出す(明示的開始)。 </li>
<li>チェーン先頭のChainを保持しておいて必要なときにexecuteすれば可。 </li>
<li>進捗は通知されない。 </li>
<li>完了通知をイベントに戻したければ、誰かにdispatchEventしてもらうことになる。ListenerChainを利用すると、イベントから簡単にChainを作れる。 </li>
</ol>
<p>６）、<a href="http://subtech.g.hatena.ne.jp/secondlife/20080127/1201359890"><strong>secondlife Chain</strong></a></p>
<p>AS3 でイベントチェインでよしなにしたい時って、結局非同期な並列処理の時が多い。それ以外は普通に関数で回すとわかりにくくなるので OO った方がよいかなー、と自分の中では落ち着いてる。特に無名関数の適用は、関数の引数を予めきちんと書かなくてはならなくて(&#8230;restでもいいけど)面倒だったりする。 </p>
<p>AS3 では無名関数を使うところでJSより便利だなー、というところはあまり無い。そもそも組み込みの引数に無名関数渡すAPIが使いにくい。Array#forEach なんかは三つも引数書くのが冗長…。for each あるしね。実装側も無名関数が渡ってきて apply で適用しようとしても引数の型があわないとエラーになるし。無名関数の引数の数とかいちいち重いE4Xリフレクション使わないでも解りたい。あとバインドメソッドという無名関数とは違うメソッドクロージャ(this が確実にそのインスタンスに束縛される)を意識せずに使うことが出来るので、これでまた無名関数の利用価値が減ってしまった。唯一意識的に使うのはスコープあたりでゴニョゴニョしたい時かな。 </p>
<p>話は飛んで Deferred の概念的なものは Event/EventDispatcher で代用することができて。AS3 では EventDispatcher が組み込みであって、かつだいたいの非同期処理はイベント終了時に大概なんらかのイベントを送出する。ほとんどの場合は Event.COMPLETE だ。足りないのは DeferredList 的なもの。並列処理をスムーズに行いたいよね。 </p>
<p>で、組み込みの Event/EventDispatcher を使ってなんかうまく DeffererdList っぽいこと出来ないかな、と思ってて以前作ってほったらかしにしていた Chain クラスがあったのでちょっと書き直してそれなりに使えるようにしてみた。</p>
<p>７）、<a href="http://www.libspark.org/wiki/Thread"><strong>beinteractive Thread</strong></a></p>
<p>addEventListenerを隠蔽し、非同期処理を同期処理の感覚で書けるライブラリということですが、むしろ状態遷移の多いリアルタイム処理をスマートに書けるようにするためのフレームワークといった感じで、今までのものとはちょっと異質です。個々のThreadは自分の依存するリソースやイベントのことだけ考えればよく、それらの待機は同期処理の感覚で行えるため、時間的しがらみを超えてコントローラを分割できるようになります。また、ロード中やオーバー待ちといった状態を一つのメソッドと対応付けできるので、状態遷移図を素直にコードに落とし込むようにしてプログラムが書けるのもメリットの一つかと思います。</p>
<ol>
<li>合成可。SerialExecutorやParallelExecutorはThreadを継承している。 </li>
<li>並列実行可。ParallelExecutorを使う。 </li>
<li>エラーハンドラはerrorで追加できる。第一引数には補足するエラーの型を、第二引数にハンドラを指定。ハンドラが設定されていなかったり、ハンドラ中にさらにエラーが起きれば、親スレッドに伝播。ハンドラが無事終了すると回復したものとしてエラーが発生する前に実行されていた実行関数から再開するが、ハンドラ内でnextを呼び出した場合はそこから再開。 </li>
<li>続行可。<a href="http://www.libspark.org/svn/as3/Thread/tags/v1.0/samples/flickrsphere/src/org/libspark/flickrsphere/threads/flickr/LoadFlickrPhotoImagesThread.as">このように</a>する。SerialExecutorが途中でこけたとき、無視して続行するにはどうするんだろう？ </li>
<li>中止はinterruptで可。ただし、割り込みハンドラを設定していない状態で待機中のThreadを中止しようすると InterruptedErrorとなる。自作Threadを中止に対応させるにはcheckInterruptedで割り込みされたか調べて行う。 </li>
<li>値の受け渡しというか保持は、Threadごとの実装となる。例えば、URLLoaderThreadはloaderを保持する。それとは別に、遅延リソースの生産者と消費者を結合させないためにMonitorが使える。 </li>
<li>スレッドを使うためのスレッドを書かなければいけないケースがほとんどだと思われる。まるでネズミk(ry </li>
<li>だんだん質問に答える意味がよく分からなくなってきたが、SerialExecutorのaddThreadは実行中にもできると思うけど実行後に追加した処理は開始されないと思われる。 </li>
<li>Thread#startで開始。 </li>
<li>startは一度しか呼び出せないので、新規のスレッドを作って再実行する。 </li>
<li>進捗はIProgressを実装した各種Threadからイベントで通知される。それらのトータルの進捗を通知してほしければ、それぞれを MultiProgressにaddProgressしてやる。ただし、重みを指定する必要があるので、ファイルサイズの比は事前に調べておく。 </li>
<li>Threadを使っていろいろと処理した後に、続きの処理はイベントドリブンにしたいとか万が一あれば、 EventDispatcherThreadを継承してdispatchEventする感じになると思われる。eventメソッドで特定のイベントが起きるまでThreadを待機させることができる。ただし、nextメソッドによって次の実行関数が設定された場合は待機しない。これをうまく利用して、読みやすい状態マシンを書くこともできるようだ。 </li>
</ol>
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://digitechlog.com/2009/05/11/tweener-is-a-class-used-to-create-tweenings-via-actionscript-code-on-flash-platform.html" title="Tweener: 画像を簡単に演出をつけるActionScriptのアニメーション用オープンソースのライブラリ">Tweener: 画像を簡単に演出をつけるActionScriptのアニメーション用オープンソースのライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/05/02/casa-lib-is-a-flexible-actionscript-library-designed-to-streamline-common-chores-and-act-as-a-solid.html" title="CASA Lib: 柔軟なActionScript共通基盤としてオープンソースのライブラリ">CASA Lib: 柔軟なActionScript共通基盤としてオープンソースのライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/04/10/as3cannonball-dom-html-css-browser-library-for-actionscript-3.html" title="as3cannonball: DOM+HTML+CSS+BrowserのActionScript 3ライブラリ">as3cannonball: DOM+HTML+CSS+BrowserのActionScript 3ライブラリ</a></li>
<li><a href="http://digitechlog.com/2010/04/19/fzip-actionscript-3-open-source-class-library.html" title="FZip: ZIP読込み、作成用AS3のライブラリ">FZip: ZIP読込み、作成用AS3のライブラリ</a></li>
<li><a href="http://digitechlog.com/2010/02/28/as3soundeditorlib-actionscript-3-library-for-sound-playback-spectrum-display-and-cue-point-display.html" title="as3soundeditorlib: オープンソースのActionScript 3サウンド編集ライブラリ">as3soundeditorlib: オープンソースのActionScript 3サウンド編集ライブラリ</a></li>
<li><a href="http://digitechlog.com/2010/02/13/as3unit-actionscript-3-junit-for-flash.html" title="AS3Unit: ActionScript 3.0上JUnit4の移植、単体テストを行うためのフレームワーク">AS3Unit: ActionScript 3.0上JUnit4の移植、単体テストを行うためのフレームワーク</a></li>
<li><a href="http://digitechlog.com/2010/02/07/foam-as3-2d-rigid-body-physics-engine.html" title="FOAM-AS3: ActionScript 3で開発されたオープンソースの２D物理エンジン">FOAM-AS3: ActionScript 3で開発されたオープンソースの２D物理エンジン</a></li>
<li><a href="http://digitechlog.com/2010/01/28/box2dflashas3-open-source-physics-library-box2d.html" title="Box2DFlashAS3: 物理演算シミュレーションを可能にするActionScriptライブラリ">Box2DFlashAS3: 物理演算シミュレーションを可能にするActionScriptライブラリ</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2010/03/12/7-asynchronous-processing-open-source-actionscript-library.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3Unit: ActionScript 3.0上JUnit4の移植、単体テストを行うためのフレームワーク</title>
		<link>http://digitechlog.com/2010/02/13/as3unit-actionscript-3-junit-for-flash.html</link>
		<comments>http://digitechlog.com/2010/02/13/as3unit-actionscript-3-junit-for-flash.html#comments</comments>
		<pubDate>Fri, 12 Feb 2010 23:00:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash Project]]></category>
		<category><![CDATA[オープンソース]]></category>
		<category><![CDATA[テスト]]></category>
		<category><![CDATA[フレームワーク]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2010/02/13/as3unit-actionscript-3-junit-for-flash.html</guid>
		<description><![CDATA[AS3Unitとは、JUnit4の移植、ActionScript 3.0上で単体テストを行うためのオープンソースのフレームワークです。
Javaの開発者なら良く知ってるはずだと思いますが、JUnit4Javaで開発されたプログラムにおいてユニットテスト（単体テスト）の自動化を行うためのフレームワークです。次はWikiPedia上に挙げられているJUnitが推奨される理由：
一度作成すればすばやくテスト可能である。 
その後はテストコードを標本とすることでバグ訂正が容易となる。 
テストコードを見れば仕様が一目瞭然となる。 
誰でも同じテストを行えるようになる。 
独自のテストコードによるテスト作成の手間を省ける。 

とても便利ですね。同じで、AS3Unitを用いる事で、効率よくテスト駆動開発を行うことが出来るようになります。
 
 
【導入方法】
●Flex Builder の場合
１、Flex Builder上で、AS3Unitを使用したいプロジェクトを開くか、作成します。 
２、プロジェクトのプロパティを表示し、「ActionScript ビルドパス」内の「ライブラリパス」タブを開きます。 
３、「SWCの追加」をクリックし、表示されたダイアログ内で、ダウンロードした「as3unit-xxx.swc」（xxxはバージョン）を指定して追加します。 
４、「OK」を押して設定を保存すれば完了です。これでAS3Unit（org.libspark.as3unitパッケージ）が使えるようになります。 

●FlashCS3 の場合 
１、Adobe Extension Manager のインストールが済んでいない場合、インストールします。 
２、使用しているOSにあわせて、「as3unit-1.2-win.mxp」または「as3unit-1.2-mac.mxp」をダウンロードします。 
３、ダウンロードしたmxpを実行します。この時、FlashCS3のConfigurationディレクトリの場所（標準で Windowsは「C: /Program Files/Adobe/Adobe Flash CS3/ja/Configuration」Macは「/Applications/Adobe Flash CS3/Configuration」です）を聞かれますので選択してください。 
４、インストールが無事完了すれば、FlashCS3でAS3Unit（org.libspark.as3unitパッケージ）が使えるようになります。 

【AS3Unit コンポーネント】
AS3Unit 1.2 から、Flex用のAS3Unitコンポーネントが追加されました。これを使用すると、AS3Unit GUIを使用しなくても、グラフィカルに結果を表示出来ます。 
AS3Unitコンポーネントを使用するには、次のようなFlexアプリケーションを作成します。 
&#60;?xml version=&#34;1.0&#34; encoding=&#34;utf-8&#34;?&#62;
&#60;mx:Application
&#160; &#160; xmlns:mx=&#34;http://www.adobe.com/2006/mxml&#34;
&#160; &#160; xmlns:as3unit=&#34;org.libspark.as3unit.components.*&#34;
&#160; &#160; layout=&#34;absolute&#34;
&#160; &#160; creationComplete=&#34;creationCompleteHandler()&#34;&#62;
&#160;
&#160; &#160; &#60;mx:Script&#62;
&#160; &#160; &#160; &#160; &#60;![CDATA[
&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>AS3Unitとは、JUnit4の移植、ActionScript 3.0上で単体テストを行うためのオープンソースのフレームワークです。</p>
<p>Javaの開発者なら良く知ってるはずだと思いますが、JUnit4Javaで開発されたプログラムにおいてユニットテスト（単体テスト）の自動化を行うためのフレームワークです。次はWikiPedia上に挙げられているJUnitが推奨される理由：</p>
<blockquote><p>一度作成すればすばやくテスト可能である。 </p>
<p>その後はテストコードを標本とすることでバグ訂正が容易となる。 </p>
<p>テストコードを見れば仕様が一目瞭然となる。 </p>
<p>誰でも同じテストを行えるようになる。 </p>
<p>独自のテストコードによるテスト作成の手間を省ける。 </p>
</blockquote>
<p>とても便利ですね。同じで、AS3Unitを用いる事で、効率よくテスト駆動開発を行うことが出来るようになります。</p>
<p><a href="http://digitechlog.com/wp-content/uploads/2010/02/AS3UnitActionscript3JunitforFlash.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="AS3Unit-Actionscript-3-Junit-for-Flash" border="0" alt="AS3Unit-Actionscript-3-Junit-for-Flash" src="http://digitechlog.com/wp-content/uploads/2010/02/AS3UnitActionscript3JunitforFlash_thumb.jpg" width="240" height="240"></a> </p>
<p><span id="more-927"></span> </p>
<p><strong>【導入方法】</strong></p>
<p><strong>●Flex Builder の場合</strong></p>
<blockquote><p>１、Flex Builder上で、AS3Unitを使用したいプロジェクトを開くか、作成します。 </p>
<p>２、プロジェクトのプロパティを表示し、「ActionScript ビルドパス」内の「ライブラリパス」タブを開きます。 </p>
<p>３、「SWCの追加」をクリックし、表示されたダイアログ内で、ダウンロードした「as3unit-xxx.swc」（xxxはバージョン）を指定して追加します。 </p>
<p>４、「OK」を押して設定を保存すれば完了です。これでAS3Unit（org.libspark.as3unitパッケージ）が使えるようになります。 </p>
</blockquote>
<p><strong>●FlashCS3 の場合 </strong></p>
<blockquote><p>１、Adobe Extension Manager のインストールが済んでいない場合、インストールします。 </p>
<p>２、使用しているOSにあわせて、「as3unit-1.2-win.mxp」または「as3unit-1.2-mac.mxp」をダウンロードします。 </p>
<p>３、ダウンロードしたmxpを実行します。この時、FlashCS3のConfigurationディレクトリの場所（標準で Windowsは「C: /Program Files/Adobe/Adobe Flash CS3/ja/Configuration」Macは「/Applications/Adobe Flash CS3/Configuration」です）を聞かれますので選択してください。 </p>
<p>４、インストールが無事完了すれば、FlashCS3でAS3Unit（org.libspark.as3unitパッケージ）が使えるようになります。 </p>
</blockquote>
<p><strong>【AS3Unit コンポーネント】</strong></p>
<p>AS3Unit 1.2 から、Flex用のAS3Unitコンポーネントが追加されました。これを使用すると、AS3Unit GUIを使用しなくても、グラフィカルに結果を表示出来ます。 </p>
<p>AS3Unitコンポーネントを使用するには、次のようなFlexアプリケーションを作成します。 </p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">&lt;?</span><span style="color: Blue;">xml</span><span style="color: Gray;"> </span><span style="color: Teal;">version</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">1.0</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Blue;">encoding</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">utf-8</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">?&gt;</span></li>
<li><span style="color: Gray;">&lt;</span><span style="color: Teal;">mx</span><span style="color: Gray;">:</span><span style="color: Teal;">Application</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">xmlns</span><span style="color: Gray;">:</span><span style="color: Teal;">mx</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://www.adobe.com/2006/mxml</span><span style="color: #8b0000;">&quot;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">xmlns</span><span style="color: Gray;">:</span><span style="color: Blue;">as3unit</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">org.libspark.as3unit.components.*</span><span style="color: #8b0000;">&quot;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">layout</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">absolute</span><span style="color: #8b0000;">&quot;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">creationComplete</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">creationCompleteHandler()</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &lt;</span><span style="color: Teal;">mx</span><span style="color: Gray;">:</span><span style="color: Blue;">Script</span><span style="color: Gray;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;!</span><span style="color: Olive;">[</span><span style="color: Blue;">CDATA</span><span style="color: Olive;">[</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">your</span><span style="color: Gray;">.</span><span style="color: Teal;">domain</span><span style="color: Gray;">.</span><span style="color: Blue;">AllTests</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">private</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">creationCompleteHandler</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span><span style="color: Green;">void</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">as3unit</span><span style="color: Gray;">.</span><span style="color: Teal;">run</span><span style="color: Olive;">(</span><span style="color: Blue;">AllTests</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">]]</span><span style="color: Gray;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &lt;</span><span style="color: #8b0000;">/</span><span style="color: Red;">mx:Script&gt;</span></li>
<li><span style="color: Red;">&nbsp;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &lt;as3unit:AS3Unit id=&quot;as3unit&quot;</span><span style="color: #8b0000;">/</span><span style="color: Gray;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&lt;</span><span style="color: #8b0000;">/</span><span style="color: Red;">mx:Application&gt;</span></li></ol></div>
<p>org.libspark.as3unit.components.*をターゲットとしたネームスペースを作成し、それを利用してAS3Unitコンポーネントを配置してください。後は、AS3UnitCore（ファーストステップ参照）を利用するのと同じように、AS3UnitコンポーネントのrunメソッドをcreationCompleteイベントハンドラ内で呼び出してください。これで、 AS3Unitコンポーネント内にグラフィカルに結果が表示されます。 </p>
<p><strong>●アサート</strong></p>
<p>アサート(assert)は、デバッグ段階でエラーを検出するために、ソース中に埋め込んでおく実行文です。例えばＣ言語には、assert()というマクロが用意されています。以下はアサートの使用例：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">libspark</span><span style="color: Gray;">.</span><span style="color: Blue;">as3unit</span><span style="color: Gray;">.</span><span style="color: Blue;">test</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">libspark</span><span style="color: Gray;">.</span><span style="color: Blue;">as3unit</span><span style="color: Gray;">.</span><span style="color: Blue;">assert</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Blue;">use</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">namespace</span><span style="color: Gray;"> </span><span style="color: Blue;">test</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">class</span><span style="color: Gray;"> </span><span style="color: Blue;">SampleTest</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">test</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">sample1</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span><span style="color: Green;">void</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">s</span><span style="color: Gray;">:</span><span style="color: Blue;">Sample</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">Sample</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">assertTrue</span><span style="color: Olive;">(</span><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">f</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">test</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">sample2</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span><span style="color: Green;">void</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">s</span><span style="color: Gray;">:</span><span style="color: Blue;">Sample</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">Sample</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">assertEquals</span><span style="color: Olive;">(</span><span style="color: Gray;">”</span><span style="color: Blue;">hello</span><span style="color: Gray;">”, </span><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">h</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p><strong>●before</strong></p>
<p>「before」ネームスペースで修飾されたメソッドは、各テストメソッドが呼び出される前に毎回必ず呼び出されます。フィクスチャのセットアップをする必要がある場合などに使います。<br />※フィクスチャとは、ユニットテストの事前条件となるテストデータ</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">libspark</span><span style="color: Gray;">.</span><span style="color: Blue;">as3unit</span><span style="color: Gray;">.</span><span style="color: Blue;">test</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">libspark</span><span style="color: Gray;">.</span><span style="color: Blue;">as3unit</span><span style="color: Gray;">.</span><span style="color: Blue;">before</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">libspark</span><span style="color: Gray;">.</span><span style="color: Blue;">as3unit</span><span style="color: Gray;">.</span><span style="color: Blue;">assert</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Blue;">use</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">namespace</span><span style="color: Gray;"> </span><span style="color: Blue;">test</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">use</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">namespace</span><span style="color: Gray;"> </span><span style="color: Blue;">before</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">class</span><span style="color: Gray;"> </span><span style="color: Blue;">SampleTest</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">private</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">s</span><span style="color: Gray;">:</span><span style="color: Blue;">Sample</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">before</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">setupSample</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span><span style="color: Green;">void</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">s</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">Sample</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">test</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">sample1</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span><span style="color: Green;">void</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">assertTrue</span><span style="color: Olive;">(</span><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">f</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">test</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">sample2</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span><span style="color: Green;">void</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">assertEquals</span><span style="color: Olive;">(</span><span style="color: Gray;">”</span><span style="color: Blue;">hello</span><span style="color: Gray;">”, </span><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">h</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p><strong>●after</strong></p>
<p>「after」ネームスペースで修飾されたメソッドは、各テストメソッドが呼び出された後に毎回必ず呼び出されます。フィクスチャのセットアップをする必要がある場合などに使います。<br />※フィクスチャとは、ユニットテストの事前条件となるテストデータ</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">libspark</span><span style="color: Gray;">.</span><span style="color: Blue;">as3unit</span><span style="color: Gray;">.</span><span style="color: Blue;">test</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">libspark</span><span style="color: Gray;">.</span><span style="color: Blue;">as3unit</span><span style="color: Gray;">.</span><span style="color: Blue;">before</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">libspark</span><span style="color: Gray;">.</span><span style="color: Blue;">as3unit</span><span style="color: Gray;">.</span><span style="color: Blue;">after</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">libspark</span><span style="color: Gray;">.</span><span style="color: Blue;">as3unit</span><span style="color: Gray;">.</span><span style="color: Blue;">assert</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Blue;">use</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">namespace</span><span style="color: Gray;"> </span><span style="color: Blue;">test</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">use</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">namespace</span><span style="color: Gray;"> </span><span style="color: Blue;">before</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">use</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">namespace</span><span style="color: Gray;"> </span><span style="color: Blue;">after</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">class</span><span style="color: Gray;"> </span><span style="color: Blue;">SampleTest</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">private</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">s</span><span style="color: Gray;">:</span><span style="color: Blue;">Sample</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">before</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">setupSample</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span><span style="color: Green;">void</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">s</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">Sample</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">after</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">teardownSample</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span><span style="color: Green;">void</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">finalize</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">test</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">sample1</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span><span style="color: Green;">void</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">assertTrue</span><span style="color: Olive;">(</span><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">f</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">test</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">sample2</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span><span style="color: Green;">void</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">assertEquals</span><span style="color: Olive;">(</span><span style="color: Gray;">”</span><span style="color: Blue;">hello</span><span style="color: Gray;">”, </span><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">h</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p><strong>【関連資料】</strong></p>
<p>１、<a href="http://www.libspark.org/wiki/yossy/AS3Unit" target="_blank">libspark上の公式サイト</a></p>
<p>２、<a href="http://www.imajuk.com/blog/archives/2007/07/cs3as3unit.html" target="_blank">CS3でAS3Unitをつかってみる</a></p>
<p>３、<a href="http://kanamehackday.blog17.fc2.com/blog-entry-68.html">Flexの単体テスト(UnitTest)について</a></p>
<p>４、<a href="http://djakarta-trap.net/blog/2009/11/as3unit_fast_test/" target="_blank">AS3Unitで、手を抜いてテストをする方法</a></p>
<p>５、<a href="http://coelacanth.heteml.jp/site/flash_fms/article_6" target="_blank">ユニットテストを導入する</a></p>
<p>６、<a href="http://ja.wikipedia.org/wiki/JUnit#JUnit4.E3.81.AE.E6.96.B0.E6.A9.9F.E8.83.BD" target="_blank">JUnitの解説</a><br />
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://digitechlog.com/2009/05/18/mc-tween-open-source-actionscript-framework-save-your-time.html" title="MC Tween: Flashマイクロサイトを１日で制作可能となるオープンソースのASフレームワーク">MC Tween: Flashマイクロサイトを１日で制作可能となるオープンソースのASフレームワーク</a></li>
<li><a href="http://digitechlog.com/2009/04/21/asap-actionscript-application-framework-open-source-flash-actionscript-rich-internet-application-library.html" title="ASAP: オープンソースのFlash ActionScript 2.0/3.0 Flashアプリケーションの共通の挑戦に実用的で、再使用可能なパターンベースの解決を提供するフレームワーク">ASAP: オープンソースのFlash ActionScript 2.0/3.0 Flashアプリケーションの共通の挑戦に実用的で、再使用可能なパターンベースの解決を提供するフレームワーク</a></li>
<li><a href="http://digitechlog.com/2010/03/12/7-asynchronous-processing-open-source-actionscript-library.html" title="７+ AS3で非同期処理のオープンソースのライブラリ一覧">７+ AS3で非同期処理のオープンソースのライブラリ一覧</a></li>
<li><a href="http://digitechlog.com/2010/02/07/foam-as3-2d-rigid-body-physics-engine.html" title="FOAM-AS3: ActionScript 3で開発されたオープンソースの２D物理エンジン">FOAM-AS3: ActionScript 3で開発されたオープンソースの２D物理エンジン</a></li>
<li><a href="http://digitechlog.com/2009/10/15/alcon-a-lightweight-debugging-tool-for-actionscript-developers.html" title="Alcon: オープンソースのActionScript向けの軽量デバッギングツール">Alcon: オープンソースのActionScript向けの軽量デバッギングツール</a></li>
<li><a href="http://digitechlog.com/2009/09/12/an-opensource-framework-can-be-used-to-develop-flash.html" title="CakePHP: PHP用のWebアプリケーションを効率よく作成するためオープンソースのフレームワーク">CakePHP: PHP用のWebアプリケーションを効率よく作成するためオープンソースのフレームワーク</a></li>
<li><a href="http://digitechlog.com/2009/08/25/phpobject-is-a-flash-remoting-alternative-for-php.html" title="PHPObject: PHPとFlashのActionScript連携パッケージ">PHPObject: PHPとFlashのActionScript連携パッケージ</a></li>
<li><a href="http://digitechlog.com/2009/08/05/jags-open-source-java-actionscript-game-server.html" title="JAGS Game Server: JavaとAS3でオープンソースのゲームサーバ">JAGS Game Server: JavaとAS3でオープンソースのゲームサーバ</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2010/02/13/as3unit-actionscript-3-junit-for-flash.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FOAM-AS3: ActionScript 3で開発されたオープンソースの２D物理エンジン</title>
		<link>http://digitechlog.com/2010/02/07/foam-as3-2d-rigid-body-physics-engine.html</link>
		<comments>http://digitechlog.com/2010/02/07/foam-as3-2d-rigid-body-physics-engine.html#comments</comments>
		<pubDate>Sun, 07 Feb 2010 13:45:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash Project]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[オープンソース]]></category>
		<category><![CDATA[物理エンジン]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2010/02/07/foam-as3-2d-rigid-body-physics-engine.html</guid>
		<description><![CDATA[以前発表した「glaze: ActionScript用2D物理演算エンジン」中に既によく使われているオープンソースの２D物理エンジンを紹介しました。今回は引き続いてFOAMというActionScript 3で開発されたオープンソースの２D物理エンジンの紹介です。
APEやFisixなどはパーティクル系といえばFOAMは剛体系かと思います。
FOAM-AS3はMITラインセンスを基づいて公開されていたので、個人的な用途でも商用でも使えるものです。
開発者のブログにデモが２種類公開されています。

 PerpetualFall

さまざまな形状の物体が落ちてきて斜めの床をすべっている。重力や摩擦力が再現されています。

 zeroGToyChest

こちらは床にさまざまな形状の物体が置いてあり、それを上から見た場合のシミュレーション。物体をマウスで引っ張ったりできます。
 
関連情報：
●グーグルコード： http://code.google.com/p/foam-as3/
●開発者のブログ： http://blog.generalrelativity.org/
Related Posts

glaze: ActionScript用2D物理演算エンジン
PHPObject: PHPとFlashのActionScript連携パッケージ
APE(ActionScript Physics Engine): FlashやFlexで利用できるAS3で書かれたオープンソースの2D物理エンジン
「Ajax Animator」:ExtJSを基づいてWebベースのアニメーションを作成するオープンソース・ソフトウェア
７+ AS3で非同期処理のオープンソースのライブラリ一覧
Sazameki: Flashを使ったオーディオ操作のためのオンラインプラットホーム
AS3Unit: ActionScript 3.0上JUnit4の移植、単体テストを行うためのフレームワーク
FLARToolKit: AR（拡張現実）ってのをFlashで簡単に作ることができるライブラリ

]]></description>
			<content:encoded><![CDATA[<p>以前発表した「<a href="http://digitechlog.com/2010/01/30/glaze-2d-rigid-body-dynamics-game-engine-for-actionsctipt-3.html">glaze: ActionScript用2D物理演算エンジン</a>」中に既によく使われているオープンソースの２D物理エンジンを紹介しました。今回は引き続いてFOAMというActionScript 3で開発されたオープンソースの２D物理エンジンの紹介です。</p>
<p><a href="http://digitechlog.com/2009/05/05/ape-actionscript-physics-engine-is-an-as3-open-source-2d-physics-engine-for-use-in-flash-and-flex.html" target="_blank">APE</a>やFisixなどはパーティクル系といえばFOAMは剛体系かと思います。</p>
<p>FOAM-AS3はMITラインセンスを基づいて公開されていたので、個人的な用途でも商用でも使えるものです。</p>
<p>開発者のブログにデモが２種類公開されています。</p>
<p><a href="http://digitechlog.com/wp-content/uploads/2010/02/FOAMAS32DRigidBodyPhysicsEngine.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="FOAM-AS3-2D-Rigid-Body-Physics-Engine" border="0" alt="FOAM-AS3-2D-Rigid-Body-Physics-Engine" src="http://digitechlog.com/wp-content/uploads/2010/02/FOAMAS32DRigidBodyPhysicsEngine_thumb.jpg" width="300" height="200" /></a></p>
<p> <span id="more-922"></span><a href="http://lab.generalrelativity.org/foam/demos/perpetualFall/" target="_blank"><strong>PerpetualFall</strong></a><br />
<hr />
<p>さまざまな形状の物体が落ちてきて斜めの床をすべっている。重力や摩擦力が再現されています。</p>
<p><a href="http://digitechlog.com/wp-content/uploads/2010/02/FOAMAS32DRigidBodyPhysicsEnginedemo1.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="FOAM-AS3-2D-Rigid-Body-Physics-Engine-demo1" border="0" alt="FOAM-AS3-2D-Rigid-Body-Physics-Engine-demo1" src="http://digitechlog.com/wp-content/uploads/2010/02/FOAMAS32DRigidBodyPhysicsEnginedemo1_thumb.png" width="500" height="379" /></a></p>
<p> <a href="http://lab.generalrelativity.org/foam/demos/zeroGToyChest/"><strong>zeroGToyChest</strong></a><br />
<hr />
<p>こちらは床にさまざまな形状の物体が置いてあり、それを上から見た場合のシミュレーション。物体をマウスで引っ張ったりできます。</p>
<p><a href="http://digitechlog.com/wp-content/uploads/2010/02/FOAMAS32DRigidBodyPhysicsEnginedemo2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="FOAM-AS3-2D-Rigid-Body-Physics-Engine-demo2" border="0" alt="FOAM-AS3-2D-Rigid-Body-Physics-Engine-demo2" src="http://digitechlog.com/wp-content/uploads/2010/02/FOAMAS32DRigidBodyPhysicsEnginedemo2_thumb.png" width="500" height="369" /></a> </p>
<p><strong>関連情報：</strong></p>
<p>●グーグルコード： <a title="http://code.google.com/p/foam-as3/" href="http://code.google.com/p/foam-as3/">http://code.google.com/p/foam-as3/</a></p>
<p>●開発者のブログ： <a title="http://blog.generalrelativity.org/" href="http://blog.generalrelativity.org/">http://blog.generalrelativity.org/</a></p>
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://digitechlog.com/2010/01/30/glaze-2d-rigid-body-dynamics-game-engine-for-actionsctipt-3.html" title="glaze: ActionScript用2D物理演算エンジン">glaze: ActionScript用2D物理演算エンジン</a></li>
<li><a href="http://digitechlog.com/2009/08/25/phpobject-is-a-flash-remoting-alternative-for-php.html" title="PHPObject: PHPとFlashのActionScript連携パッケージ">PHPObject: PHPとFlashのActionScript連携パッケージ</a></li>
<li><a href="http://digitechlog.com/2009/05/05/ape-actionscript-physics-engine-is-an-as3-open-source-2d-physics-engine-for-use-in-flash-and-flex.html" title="APE(ActionScript Physics Engine): FlashやFlexで利用できるAS3で書かれたオープンソースの2D物理エンジン">APE(ActionScript Physics Engine): FlashやFlexで利用できるAS3で書かれたオープンソースの2D物理エンジン</a></li>
<li><a href="http://digitechlog.com/2009/01/18/ajax-animator-an-extjs-based-open-source-web-application-creator.html" title="「Ajax Animator」:ExtJSを基づいてWebベースのアニメーションを作成するオープンソース・ソフトウェア">「Ajax Animator」:ExtJSを基づいてWebベースのアニメーションを作成するオープンソース・ソフトウェア</a></li>
<li><a href="http://digitechlog.com/2010/03/12/7-asynchronous-processing-open-source-actionscript-library.html" title="７+ AS3で非同期処理のオープンソースのライブラリ一覧">７+ AS3で非同期処理のオープンソースのライブラリ一覧</a></li>
<li><a href="http://digitechlog.com/2010/02/21/sazamek-flash-based-online-audio-manipulating-platform-with-as3-open-source-library.html" title="Sazameki: Flashを使ったオーディオ操作のためのオンラインプラットホーム">Sazameki: Flashを使ったオーディオ操作のためのオンラインプラットホーム</a></li>
<li><a href="http://digitechlog.com/2010/02/13/as3unit-actionscript-3-junit-for-flash.html" title="AS3Unit: ActionScript 3.0上JUnit4の移植、単体テストを行うためのフレームワーク">AS3Unit: ActionScript 3.0上JUnit4の移植、単体テストを行うためのフレームワーク</a></li>
<li><a href="http://digitechlog.com/2010/01/26/flartoolkit-open-source-augmented-reality-in-flash.html" title="FLARToolKit: AR（拡張現実）ってのをFlashで簡単に作ることができるライブラリ">FLARToolKit: AR（拡張現実）ってのをFlashで簡単に作ることができるライブラリ</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2010/02/07/foam-as3-2d-rigid-body-physics-engine.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PotrAs: ２色のラスタ画像（BitmapData）からベクタ変換するActionScript 3ライブラリ</title>
		<link>http://digitechlog.com/2010/01/29/potras-convert-bitmap-data-vector-in-actionscript3.html</link>
		<comments>http://digitechlog.com/2010/01/29/potras-convert-bitmap-data-vector-in-actionscript3.html#comments</comments>
		<pubDate>Thu, 28 Jan 2010 15:16:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash Project]]></category>
		<category><![CDATA[BitmapData]]></category>
		<category><![CDATA[Portrace]]></category>
		<category><![CDATA[PotrAs]]></category>
		<category><![CDATA[ベクタ]]></category>
		<category><![CDATA[ラスタ画像]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2010/01/29/potras-convert-bitmap-data-vector-in-actionscript3.html</guid>
		<description><![CDATA[PotrAsとは、日本人で開発され、２色のラスタ画像（BitmapData?）からベクタ変換するPortraceをActionScript 3に移植したオープンソースライブラリです。GPLライセンスで発表されていました。
PotrAsを利用してBitmapDataから、ベクターによるシェイプを生成することができます。
プレゼン資料はリアルタイムで変換しながら表示しているので、CPU 消費量が少し高めです。あと、Mac でどう表示されるかが分からないのがちょっと不安です（アンチエイリアスがらみ）。

という問題もありそうです。
 
 
新たなモーションタイポの可能性 
Flash でモーションタイポするには、問題点がいろいろありました。デバイスフォントは回転・透過ができなくて表現力が低すぎるし、BitmapData に転写すると処理が煩雑になってしまいます。フォントを埋め込めば自由にできるのですが、日本語フォントは権利関係が難しいし、ファイルサイズも大きくなってしまいます。 
それに対する解が、この PotrAs です。デバイスフォントを BitmapData に描画し、それをトレースしてベクタ変換します。アクロバティックですが、ローカルのフォントを使っているので権利関係も（たぶん）問題ありません。回転縮小アルファも自由自在。塗りや線のスタイルを少し変えるだけで文字の表情も変わります。また、あえて低い解像度でトレースすると、味のある見た目になります。上のスライドの１枚目がそれです。 
新たなモーションタイポの表現が可能になる気がしています。みんな遊んでね。

関連情報：
以下より入手できます。
http://snippets.libspark.org/svn/as3/PotrAs/src/com/nitoyon/potras
参考資料の一つ：ラスタ→ベクタ変換する AS ライブラリ &#34;PotrAs&#34;
参考資料の２番目： String型の文字列をチラシ文字のような画像を作成
デモの四つがある：http://www.libspark.org/svn/as3/PotrAs/samples/potras/demo20070929/bin/
公式サイト：http://www.libspark.org/wiki/nitoyon/PotrAs
最後はそんなに関係ないですが、ActionScriptのノウハウをみんなで共有しよう＠Spark projectでSpark projectの紹介していくつか優秀のASプロジェクトも挙げているので、自分が興味あるものを見つけるかの知れないね。
Related Posts

8 Adobe ActionScriptのチュートリアルフラッシュ
７+ AS3で非同期処理のオープンソースのライブラリ一覧
AS3Unit: ActionScript 3.0上JUnit4の移植、単体テストを行うためのフレームワーク
FOAM-AS3: ActionScript 3で開発されたオープンソースの２D物理エンジン
Flash CS3とアクションプロジェクト向けベーシックのArrayBinderクラス
ActionScriptのクッキー（Cookie）操作クラス
ActionScriptで実現するテキストサーチエンジンクラス
フラッシュのAS2からAS3に移行：動的なMovieClipを作成する

]]></description>
			<content:encoded><![CDATA[<p>PotrAsとは、日本人で開発され、２色のラスタ画像（BitmapData?）からベクタ変換するPortraceをActionScript 3に移植したオープンソースライブラリです。GPLライセンスで発表されていました。</p>
<p>PotrAsを利用してBitmapDataから、ベクターによるシェイプを生成することができます。</p>
<blockquote><p>プレゼン資料はリアルタイムで変換しながら表示しているので、CPU 消費量が少し高めです。あと、Mac でどう表示されるかが分からないのがちょっと不安です（アンチエイリアスがらみ）。</p>
</blockquote>
<p>という問題もありそうです。</p>
<p><a href="http://digitechlog.com/wp-content/uploads/2010/01/PotrAsconvertbitmapdatavectorinactionscript3.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="PotrAs-convert-bitmap-data-vector-in-actionscript3" border="0" alt="PotrAs-convert-bitmap-data-vector-in-actionscript3" src="http://digitechlog.com/wp-content/uploads/2010/01/PotrAsconvertbitmapdatavectorinactionscript3_thumb.png" width="478" height="356" /></a> </p>
<p> <span id="more-898"></span>
<p><strong>新たなモーションタイポの可能性</strong> </p>
<blockquote><p>Flash でモーションタイポするには、問題点がいろいろありました。デバイスフォントは回転・透過ができなくて表現力が低すぎるし、BitmapData に転写すると処理が煩雑になってしまいます。フォントを埋め込めば自由にできるのですが、日本語フォントは権利関係が難しいし、ファイルサイズも大きくなってしまいます。 </p>
<p>それに対する解が、この PotrAs です。デバイスフォントを BitmapData に描画し、それをトレースしてベクタ変換します。アクロバティックですが、ローカルのフォントを使っているので権利関係も（たぶん）問題ありません。回転縮小アルファも自由自在。塗りや線のスタイルを少し変えるだけで文字の表情も変わります。また、あえて低い解像度でトレースすると、味のある見た目になります。上のスライドの１枚目がそれです。 </p>
<p>新たなモーションタイポの表現が可能になる気がしています。みんな遊んでね。</p>
</blockquote>
<p><strong>関連情報：</strong></p>
<p>以下より入手できます。</p>
<p><a href="http://snippets.libspark.org/svn/as3/PotrAs/src/com/nitoyon/potras">http://snippets.libspark.org/svn/as3/PotrAs/src/com/nitoyon/potras</a></p>
<p>参考資料の一つ：<a href="http://d.hatena.ne.jp/nitoyon/20071002/potrace" name="potrace">ラスタ→ベクタ変換する AS ライブラリ &quot;PotrAs&quot;</a></p>
<p>参考資料の２番目： <a href="http://mfria.blog106.fc2.com/blog-entry-143.html" target="_blank">String型の文字列をチラシ文字のような画像を作成</a></p>
<p>デモの四つがある：<a title="http://www.libspark.org/svn/as3/PotrAs/samples/potras/demo20070929/bin/" href="http://www.libspark.org/svn/as3/PotrAs/samples/potras/demo20070929/bin/">http://www.libspark.org/svn/as3/PotrAs/samples/potras/demo20070929/bin/</a></p>
<p>公式サイト：<a title="http://www.libspark.org/wiki/nitoyon/PotrAs" href="http://www.libspark.org/wiki/nitoyon/PotrAs">http://www.libspark.org/wiki/nitoyon/PotrAs</a></p>
<p>最後はそんなに関係ないですが、<a href="http://www.adobe.com/jp/devnet/flash/articles/spark_project.html" target="_blank">ActionScriptのノウハウをみんなで共有しよう＠Spark project</a>でSpark projectの紹介していくつか優秀のASプロジェクトも挙げているので、自分が興味あるものを見つけるかの知れないね。</p>
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://digitechlog.com/2010/06/06/8-helpfull-adobe-flash-actionscript.html" title="8 Adobe ActionScriptのチュートリアルフラッシュ">8 Adobe ActionScriptのチュートリアルフラッシュ</a></li>
<li><a href="http://digitechlog.com/2010/03/12/7-asynchronous-processing-open-source-actionscript-library.html" title="７+ AS3で非同期処理のオープンソースのライブラリ一覧">７+ AS3で非同期処理のオープンソースのライブラリ一覧</a></li>
<li><a href="http://digitechlog.com/2010/02/13/as3unit-actionscript-3-junit-for-flash.html" title="AS3Unit: ActionScript 3.0上JUnit4の移植、単体テストを行うためのフレームワーク">AS3Unit: ActionScript 3.0上JUnit4の移植、単体テストを行うためのフレームワーク</a></li>
<li><a href="http://digitechlog.com/2010/02/07/foam-as3-2d-rigid-body-physics-engine.html" title="FOAM-AS3: ActionScript 3で開発されたオープンソースの２D物理エンジン">FOAM-AS3: ActionScript 3で開発されたオープンソースの２D物理エンジン</a></li>
<li><a href="http://digitechlog.com/2009/12/28/basic-arraybinder-class-for-flash-cs3-and-actionscript-projects.html" title="Flash CS3とアクションプロジェクト向けベーシックのArrayBinderクラス">Flash CS3とアクションプロジェクト向けベーシックのArrayBinderクラス</a></li>
<li><a href="http://digitechlog.com/2009/12/10/actionscript-cookie-util-class-free-download.html" title="ActionScriptのクッキー（Cookie）操作クラス">ActionScriptのクッキー（Cookie）操作クラス</a></li>
<li><a href="http://digitechlog.com/2009/12/03/textsearchengine-flash-text-search-engine-class.html" title="ActionScriptで実現するテキストサーチエンジンクラス">ActionScriptで実現するテキストサーチエンジンクラス</a></li>
<li><a href="http://digitechlog.com/2009/11/04/flash-as2-move-to-as3-dynamic-movieclip-creation.html" title="フラッシュのAS2からAS3に移行：動的なMovieClipを作成する">フラッシュのAS2からAS3に移行：動的なMovieClipを作成する</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2010/01/29/potras-convert-bitmap-data-vector-in-actionscript3.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

