<?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; ライブラリ</title>
	<atom:link href="http://digitechlog.com/tag/%e3%83%a9%e3%82%a4%e3%83%96%e3%83%a9%e3%83%aa/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>AS3のTween系ライブラリ「TweenLite」の紹介の纏め</title>
		<link>http://digitechlog.com/2011/02/27/as3%e3%81%aetween%e7%b3%bb%e3%83%a9%e3%82%a4%e3%83%96%e3%83%a9%e3%83%aa%e3%80%8ctweenlite%e3%80%8d%e3%81%ae%e7%b4%b9%e4%bb%8b%e3%81%ae%e7%ba%8f%e3%82%81.html</link>
		<comments>http://digitechlog.com/2011/02/27/as3%e3%81%aetween%e7%b3%bb%e3%83%a9%e3%82%a4%e3%83%96%e3%83%a9%e3%83%aa%e3%80%8ctweenlite%e3%80%8d%e3%81%ae%e7%b4%b9%e4%bb%8b%e3%81%ae%e7%ba%8f%e3%82%81.html#comments</comments>
		<pubDate>Sun, 27 Feb 2011 14:11:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Tween]]></category>
		<category><![CDATA[TweenLite]]></category>
		<category><![CDATA[ライブラリ]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2011/02/27/as3%e3%81%aetween%e7%b3%bb%e3%83%a9%e3%82%a4%e3%83%96%e3%83%a9%e3%83%aa%e3%80%8ctweenlite%e3%80%8d%e3%81%ae%e7%b4%b9%e4%bb%8b%e3%81%ae%e7%ba%8f%e3%82%81.html</guid>
		<description><![CDATA[TweenLiteというライブラリは、AS3のTween系の高速・軽量ライブラリです。基本は１ファイルしかありません。現時点まで最新版は１１．６２です。インターネット中ちょっと探してみましたが、日本語資料はあまりないようです。ここは見つかったTweenLiteについて日本語関連資料を纏めてみます。何か漏れれたらご遠慮なくコメントください。
 
TweenLite/TweenMaxで自前パラメータをTweenさせる

Tweenerを使わない理由を分析してから、TweenLiteを使ったサンプルソースコードを挙げて説明しました。
&#160;
blendmode.add＆blur円の浮遊

 spriteを使って、tweenLiteで動作をコントロールするサンプルです。
&#160;
高速・軽量がウリのTweenLite(AS3)がリリース

 TweenLiteというものの簡単の紹介文
&#160;
gTween とTweenLite/Max が合体する？！

 著名なトゥイーンライブラリ「TweenLite/Max」と「gTween」が合体するようについてエントリのまとめ
&#160;
TweenLite.to とTweenLite.fomの違い

 実際サンプルソースコードでTweenLite.to とTweenLite.fomの違い説明文
&#160;
TweenLiteを試してみる

YuichiさんがＴｗｅｅｎＬｉｔｅを試してみた感想メモ
&#160;
http://www.greensock.com/tweenlite/
日本語ＵＲＬではないですが、ＴｗｅｅｎＬｉｔｅの公式ＵＲＬです。
Related Posts

FZip: ZIP読込み、作成用AS3のライブラリ
オープンソースのASライブラリBetweenAS3のチュートリアル
as3httpclient: オープンソースのHTTP/HTTPS AS3クライアント
７+ AS3で非同期処理のオープンソースのライブラリ一覧
as3soundeditorlib: オープンソースのActionScript 3サウンド編集ライブラリ
Box2DFlashAS3: 物理演算シミュレーションを可能にするActionScriptライブラリ
FLARToolKit: AR（拡張現実）ってのをFlashで簡単に作ることができるライブラリ
WOW-Engine: オープンソースのActionScript3用3D物理エンジンライブラリ

]]></description>
			<content:encoded><![CDATA[<p>TweenLiteというライブラリは、AS3のTween系の高速・軽量ライブラリです。基本は１ファイルしかありません。現時点まで最新版は１１．６２です。インターネット中ちょっと探してみましたが、日本語資料はあまりないようです。ここは見つかったTweenLiteについて日本語関連資料を纏めてみます。何か漏れれたらご遠慮なくコメントください。</p>
<p> <span id="more-1152"></span>
<p><a href="http://labs.torques.jp/2009/09/13/512/" target="_blank">TweenLite/TweenMaxで自前パラメータをTweenさせる</a></p>
<hr />
<p>Tweenerを使わない理由を分析してから、TweenLiteを使ったサンプルソースコードを挙げて説明しました。</p>
<p>&#160;</p>
<p><a href="http://www.curvedstraightline.com/blog/2011/01/blendmode-add%ef%bc%86blur%e5%86%86%e3%81%ae%e6%b5%ae%e9%81%8a/" target="_blank">blendmode.add＆blur円の浮遊</a></p>
<p>
<hr /> spriteを使って、tweenLiteで動作をコントロールするサンプルです。</p>
<p>&#160;</p>
<p><a href="http://www.logicalyze.net/blog/?p=177" target="_blank" rel="nofollow">高速・軽量がウリのTweenLite(AS3)がリリース</a></p>
<p>
<hr /> TweenLiteというものの簡単の紹介文</p>
<p>&#160;</p>
<p><a href="http://www.logicalyze.net/blog/?p=1945" target="_blank">gTween とTweenLite/Max が合体する？！</a></p>
<p>
<hr /> 著名なトゥイーンライブラリ「TweenLite/Max」と「gTween」が合体するようについてエントリのまとめ</p>
<p>&#160;</p>
<p><a href="http://whaison.jugem.jp/?eid=73" target="_blank">TweenLite.to とTweenLite.fomの違い</a></p>
<p>
<hr /> 実際サンプルソースコードでTweenLite.to とTweenLite.fomの違い説明文</p>
<p>&#160;</p>
<p><a href="http://connect2.jp/weblog/2008/01/tweenlite.html" target="_blank">TweenLiteを試してみる</a></p>
<hr />
<p>YuichiさんがＴｗｅｅｎＬｉｔｅを試してみた感想メモ</p>
<p>&#160;</p>
<p><a title="http://www.greensock.com/tweenlite/" href="http://www.greensock.com/tweenlite/">http://www.greensock.com/tweenlite/</a></p>
<p>日本語ＵＲＬではないですが、ＴｗｅｅｎＬｉｔｅの公式ＵＲＬです。</p>
<h3>Related Posts</h3>
<ul class="related_post">
<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/05/17/open-source-library-betweenas3-tutorials.html" title="オープンソースのASライブラリBetweenAS3のチュートリアル">オープンソースのASライブラリBetweenAS3のチュートリアル</a></li>
<li><a href="http://digitechlog.com/2010/03/22/actionscript3-utils-classes-to-extend-http-https-flash-player-9.html" title="as3httpclient: オープンソースのHTTP/HTTPS AS3クライアント">as3httpclient: オープンソースのHTTP/HTTPS AS3クライアント</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/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/01/28/box2dflashas3-open-source-physics-library-box2d.html" title="Box2DFlashAS3: 物理演算シミュレーションを可能にするActionScriptライブラリ">Box2DFlashAS3: 物理演算シミュレーションを可能にするActionScriptライブラリ</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>
<li><a href="http://digitechlog.com/2010/01/25/wow-engine-free-as3-open-source-physics-engine.html" title="WOW-Engine: オープンソースのActionScript3用3D物理エンジンライブラリ">WOW-Engine: オープンソースのActionScript3用3D物理エンジンライブラリ</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2011/02/27/as3%e3%81%aetween%e7%b3%bb%e3%83%a9%e3%82%a4%e3%83%96%e3%83%a9%e3%83%aa%e3%80%8ctweenlite%e3%80%8d%e3%81%ae%e7%b4%b9%e4%bb%8b%e3%81%ae%e7%ba%8f%e3%82%81.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FZip: ZIP読込み、作成用AS3のライブラリ</title>
		<link>http://digitechlog.com/2010/04/19/fzip-actionscript-3-open-source-class-library.html</link>
		<comments>http://digitechlog.com/2010/04/19/fzip-actionscript-3-open-source-class-library.html#comments</comments>
		<pubDate>Sun, 18 Apr 2010 15:09:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash Project]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[FZip]]></category>
		<category><![CDATA[ZIP]]></category>
		<category><![CDATA[オープンソース]]></category>
		<category><![CDATA[ライブラリ]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2010/04/19/fzip-actionscript-3-open-source-class-library.html</guid>
		<description><![CDATA[Flash技術はウェブ上に良く使われているのです。データ量が大きい場合、圧縮しなくてそのまま送受信するとネットの効果に影響があります。その前、Adobe AIRアプリケーション中に圧縮機能（ZIP:ByteArray）を利用してデータを通信(ActionScriptとJava)しますにアドビAIRアプリケーション中に使える圧縮機能を紹介しました。今回紹介するのはZIPファイルを読み込み、作成用AS3のオープンソースライブラリです。
  
実はnochumpにも一つのAS3 zipライブラリをリリースしていました、そのライブラリの圧縮スピードは結構早そうですが、FZipならファイルをロードしながら中身をアクセスできます。
2009の年末にリリースしたFZip 1.5バージョンには、Mac OS XにSWCs, JARsなども解析できました。
使い方は簡単です。
１、パッケージ導入
import deng.fzip.FZip;
import&#160;deng.fzip.FZipFile;
２、圧縮ファイルロードで展開できる
zip = new FZip();
zip.load(new&#160;URLRequest(&#34;sample.zip&#34;));
３、圧縮ファイルにファイル追加API
addFile(name:String, content:ByteArray = null):FZipFile&#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160; 
addFileAt(index:uint, name:String, content:ByteArray = null):FZipFile&#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160; 
addFileFromString(name:String, content:String, charset:String = &#34;utf-8&#34;):FZipFile&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160; 
addFileFromStringAt(index:uint, name:String, content:String, charset:String = &#34;utf-8&#34;):FZipFile
もっと詳しい情報はFZipの公式サイトにアクセスしてください。
Related Posts

AS3のTween系ライブラリ「TweenLite」の紹介の纏め
オープンソースのASライブラリBetweenAS3のチュートリアル
as3httpclient: オープンソースのHTTP/HTTPS AS3クライアント
７+ AS3で非同期処理のオープンソースのライブラリ一覧
as3soundeditorlib: [...]]]></description>
			<content:encoded><![CDATA[<p>Flash技術はウェブ上に良く使われているのです。データ量が大きい場合、圧縮しなくてそのまま送受信するとネットの効果に影響があります。その前、<a href="http://digitechlog.com/2008/11/01/how-to-use-zip-compression-in-adobe-air-with-actionscript-and-java.html">Adobe AIRアプリケーション中に圧縮機能（ZIP:ByteArray）を利用してデータを通信(ActionScriptとJava)します</a>にアドビAIRアプリケーション中に使える圧縮機能を紹介しました。今回紹介するのはZIPファイルを読み込み、作成用AS3のオープンソースライブラリです。</p>
<p><span id="more-948"></span>  </p>
<p>実はnochumpにも<a href="http://nochump.com/blog/?p=15" target="_blank">一つのAS3 zipライブラリ</a>をリリースしていました、そのライブラリの圧縮スピードは結構早そうですが、FZipならファイルをロードしながら中身をアクセスできます。</p>
<p>2009の年末にリリースしたFZip 1.5バージョンには、Mac OS XにSWCs, JARsなども解析できました。</p>
<p>使い方は簡単です。</p>
<p>１、パッケージ導入</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;">deng</span><span style="color: Gray;">.</span><span style="color: Blue;">fzip</span><span style="color: Gray;">.</span><span style="color: Blue;">FZip</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">deng</span><span style="color: Gray;">.</span><span style="color: Blue;">fzip</span><span style="color: Gray;">.</span><span style="color: Blue;">FZipFile</span><span style="color: Gray;">;</span></li></ol></div>
<p>２、圧縮ファイルロードで展開できる</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: Blue;">zip</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">FZip</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">zip</span><span style="color: Gray;">.</span><span style="color: Teal;">load</span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">URLRequest</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">sample.zip</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li></ol></div>
<p>３、圧縮ファイルにファイル追加API</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: Blue;">addFile</span><span style="color: Olive;">(</span><span style="color: Teal;">name</span><span style="color: Gray;">:</span><span style="color: Teal;">String</span><span style="color: Gray;">, </span><span style="color: Blue;">content</span><span style="color: Gray;">:</span><span style="color: Blue;">ByteArray</span><span style="color: Gray;"> = </span><span style="color: Green;">null</span><span style="color: Olive;">)</span><span style="color: Gray;">:</span><span style="color: Blue;">FZipFile</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span></li>
<li><span style="color: Blue;">addFileAt</span><span style="color: Olive;">(</span><span style="color: Teal;">index</span><span style="color: Gray;">:</span><span style="color: Blue;">uint</span><span style="color: Gray;">, </span><span style="color: Teal;">name</span><span style="color: Gray;">:</span><span style="color: Teal;">String</span><span style="color: Gray;">, </span><span style="color: Blue;">content</span><span style="color: Gray;">:</span><span style="color: Blue;">ByteArray</span><span style="color: Gray;"> = </span><span style="color: Green;">null</span><span style="color: Olive;">)</span><span style="color: Gray;">:</span><span style="color: Blue;">FZipFile</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span></li>
<li><span style="color: Blue;">addFileFromString</span><span style="color: Olive;">(</span><span style="color: Teal;">name</span><span style="color: Gray;">:</span><span style="color: Teal;">String</span><span style="color: Gray;">, </span><span style="color: Blue;">content</span><span style="color: Gray;">:</span><span style="color: Teal;">String</span><span style="color: Gray;">, </span><span style="color: Blue;">charset</span><span style="color: Gray;">:</span><span style="color: Teal;">String</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: Olive;">)</span><span style="color: Gray;">:</span><span style="color: Blue;">FZipFile</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span></li>
<li><span style="color: Blue;">addFileFromStringAt</span><span style="color: Olive;">(</span><span style="color: Teal;">index</span><span style="color: Gray;">:</span><span style="color: Blue;">uint</span><span style="color: Gray;">, </span><span style="color: Teal;">name</span><span style="color: Gray;">:</span><span style="color: Teal;">String</span><span style="color: Gray;">, </span><span style="color: Blue;">content</span><span style="color: Gray;">:</span><span style="color: Teal;">String</span><span style="color: Gray;">, </span><span style="color: Blue;">charset</span><span style="color: Gray;">:</span><span style="color: Teal;">String</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: Olive;">)</span><span style="color: Gray;">:</span><span style="color: Blue;">FZipFile</span></li></ol></div>
<p>もっと詳しい情報は<a href="http://codeazur.com.br/lab/fzip/" target="_blank">FZipの公式サイト</a>にアクセスしてください。</p>
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://digitechlog.com/2011/02/27/as3%e3%81%aetween%e7%b3%bb%e3%83%a9%e3%82%a4%e3%83%96%e3%83%a9%e3%83%aa%e3%80%8ctweenlite%e3%80%8d%e3%81%ae%e7%b4%b9%e4%bb%8b%e3%81%ae%e7%ba%8f%e3%82%81.html" title="AS3のTween系ライブラリ「TweenLite」の紹介の纏め">AS3のTween系ライブラリ「TweenLite」の紹介の纏め</a></li>
<li><a href="http://digitechlog.com/2010/05/17/open-source-library-betweenas3-tutorials.html" title="オープンソースのASライブラリBetweenAS3のチュートリアル">オープンソースのASライブラリBetweenAS3のチュートリアル</a></li>
<li><a href="http://digitechlog.com/2010/03/22/actionscript3-utils-classes-to-extend-http-https-flash-player-9.html" title="as3httpclient: オープンソースのHTTP/HTTPS AS3クライアント">as3httpclient: オープンソースのHTTP/HTTPS AS3クライアント</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/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/01/28/box2dflashas3-open-source-physics-library-box2d.html" title="Box2DFlashAS3: 物理演算シミュレーションを可能にするActionScriptライブラリ">Box2DFlashAS3: 物理演算シミュレーションを可能にするActionScriptライブラリ</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>
<li><a href="http://digitechlog.com/2010/01/25/wow-engine-free-as3-open-source-physics-engine.html" title="WOW-Engine: オープンソースのActionScript3用3D物理エンジンライブラリ">WOW-Engine: オープンソースのActionScript3用3D物理エンジンライブラリ</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2010/04/19/fzip-actionscript-3-open-source-class-library.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>as3soundeditorlib: オープンソースのActionScript 3サウンド編集ライブラリ</title>
		<link>http://digitechlog.com/2010/02/28/as3soundeditorlib-actionscript-3-library-for-sound-playback-spectrum-display-and-cue-point-display.html</link>
		<comments>http://digitechlog.com/2010/02/28/as3soundeditorlib-actionscript-3-library-for-sound-playback-spectrum-display-and-cue-point-display.html#comments</comments>
		<pubDate>Sun, 28 Feb 2010 12:25:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash Project]]></category>
		<category><![CDATA[MIT]]></category>
		<category><![CDATA[オープンソース]]></category>
		<category><![CDATA[サウンド]]></category>
		<category><![CDATA[ライブラリ]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2010/02/28/as3soundeditorlib-actionscript-3-library-for-sound-playback-spectrum-display-and-cue-point-display.html</guid>
		<description><![CDATA[as3soundeditorlibとは、MITライセンスを基づいて発表され、オープンソースのActionscript 3のサウンド編集ライブラリです。
MP3ファイルのスペクトラムやキューポインタを表示できて、キューポイントの間にナビとプレーバックもできるようです。
Application displays a spectrum of the mp3 file, displays cue points from a file, and allows navigation and playback of mp3 and navigation between cue points. MIT-license.

 

MIT Licenseは、マサチューセッツ工科大学を起源とする、ソフトウェアライセンスの代表的なものである。X11 LicenseまたはX Licenseと表記されることもある。MIT LicenseはGPLなどと違いコピーレフトでは無く、オープンソースであるか無いかに関わらず再利用を認めている。BSDライセンスをベースに作成されたBSDスタイルのライセンスの一つである。MIT Licenseは、数あるライセンスの中で非常に制限の緩いライセンスと言える。X Window System (X11)などのソフトウェアに適用されている。

as3soundeditorlibでサウンドファイルのキューポイントをXML形式でエクスポートも出来ます。
※最近発表されたHTML 5標準でもビデオ、声などを全部標準化するようになるようですね。AdobeのFlashに対して、将来的にはどうになるかもちょっと微妙だなー。
関連情報
・グーグルコードURL：http://code.google.com/p/as3soundeditorlib/
Related Posts

FZip: ZIP読込み、作成用AS3のライブラリ
７+ AS3で非同期処理のオープンソースのライブラリ一覧
Box2DFlashAS3: 物理演算シミュレーションを可能にするActionScriptライブラリ
FLARToolKit: AR（拡張現実）ってのをFlashで簡単に作ることができるライブラリ
WOW-Engine: オープンソースのActionScript3用3D物理エンジンライブラリ
FluorineFx: Flexと.NET間でAMF通信できるライブラリ
PNGPong: フィルタもしくは複雑なJavaScriptとCSSを使用せず透明PNG表示する問題を解決するオープンソースのライブラリ
SWFAddress: SWFObject と共にFlashの各コンテンツの遷移に対してパーマリンク提供する便利なライブラリ

]]></description>
			<content:encoded><![CDATA[<p>as3soundeditorlibとは、MITライセンスを基づいて発表され、オープンソースのActionscript 3のサウンド編集ライブラリです。</p>
<p>MP3ファイルのスペクトラムやキューポインタを表示できて、キューポイントの間にナビとプレーバックもできるようです。</p>
<blockquote><p>Application displays a spectrum of the mp3 file, displays cue points from a file, and allows navigation and playback of mp3 and navigation between cue points. MIT-license.</p>
</blockquote>
<p> <span id="more-938"></span><br />
<blockquote>
<p>MIT Licenseは、マサチューセッツ工科大学を起源とする、ソフトウェアライセンスの代表的なものである。X11 LicenseまたはX Licenseと表記されることもある。MIT LicenseはGPLなどと違いコピーレフトでは無く、オープンソースであるか無いかに関わらず再利用を認めている。BSDライセンスをベースに作成されたBSDスタイルのライセンスの一つである。MIT Licenseは、数あるライセンスの中で非常に制限の緩いライセンスと言える。X Window System (X11)などのソフトウェアに適用されている。</p>
</blockquote>
<p>as3soundeditorlibでサウンドファイルのキューポイントをXML形式でエクスポートも出来ます。</p>
<p>※最近発表されたHTML 5標準でもビデオ、声などを全部標準化するようになるようですね。AdobeのFlashに対して、将来的にはどうになるかもちょっと微妙だなー。</p>
<p><strong>関連情報</strong></p>
<p>・グーグルコードURL：<a title="http://code.google.com/p/as3soundeditorlib/" href="http://code.google.com/p/as3soundeditorlib/">http://code.google.com/p/as3soundeditorlib/</a></p>
<h3>Related Posts</h3>
<ul class="related_post">
<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/03/12/7-asynchronous-processing-open-source-actionscript-library.html" title="７+ AS3で非同期処理のオープンソースのライブラリ一覧">７+ AS3で非同期処理のオープンソースのライブラリ一覧</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>
<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>
<li><a href="http://digitechlog.com/2010/01/25/wow-engine-free-as3-open-source-physics-engine.html" title="WOW-Engine: オープンソースのActionScript3用3D物理エンジンライブラリ">WOW-Engine: オープンソースのActionScript3用3D物理エンジンライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/09/30/fluorine-flash-remoting-for-dot-net.html" title="FluorineFx: Flexと.NET間でAMF通信できるライブラリ">FluorineFx: Flexと.NET間でAMF通信できるライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/06/08/pngpong-an-open-source-solution-to-display-transparent-pngs-in-ie-firefox-and-safari.html" title="PNGPong: フィルタもしくは複雑なJavaScriptとCSSを使用せず透明PNG表示する問題を解決するオープンソースのライブラリ">PNGPong: フィルタもしくは複雑なJavaScriptとCSSを使用せず透明PNG表示する問題を解決するオープンソースのライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/06/02/swfaddress-a-small-but-powerful-library-provides-deep-linking-for-flash-and-ajax.html" title="SWFAddress: SWFObject と共にFlashの各コンテンツの遷移に対してパーマリンク提供する便利なライブラリ">SWFAddress: SWFObject と共にFlashの各コンテンツの遷移に対してパーマリンク提供する便利なライブラリ</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2010/02/28/as3soundeditorlib-actionscript-3-library-for-sound-playback-spectrum-display-and-cue-point-display.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Box2DFlashAS3: 物理演算シミュレーションを可能にするActionScriptライブラリ</title>
		<link>http://digitechlog.com/2010/01/28/box2dflashas3-open-source-physics-library-box2d.html</link>
		<comments>http://digitechlog.com/2010/01/28/box2dflashas3-open-source-physics-library-box2d.html#comments</comments>
		<pubDate>Wed, 27 Jan 2010 15:11:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash Project]]></category>
		<category><![CDATA[Box2DFlashAS3]]></category>
		<category><![CDATA[オープンソース]]></category>
		<category><![CDATA[ライブラリ]]></category>
		<category><![CDATA[物理演算]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2010/01/28/box2dflashas3-open-source-physics-library-box2d.html</guid>
		<description><![CDATA[Box2Dという物理エンジンを使ったActionScript3プログラミングをすれば、難解な数学や物理法則を理解する必要なくて実装できませね。Box2DをFlashで利用できるようにするため、「Box2DFlashAS3」というオープンソースのActionScript 3のライブラリが開発されました。
実際にどれだけ威力があるかというのはデモを見ればわかるほどの出来栄えで、ピタゴラスイッチ風なものとか、ドミノ倒しとか、いろいろなことができます。

世界の作成 
床の作成 
積み木の作成 
シミュレーションの開始 
描画 

の様の流れで、Box2DFlashAS3 の単純なサンプルと使い方を解説するチュートリアルを参考できます。
 
  
開発用エンジンですから、利用方法は例を参考すればどうしても分かれるともいますね。
以下はにとよんさんが作られたサンプルです。
package {
&#160; &#160; import&#160;Engine.Dynamics.*;
&#160; &#160; import&#160;Engine.Collision.*;
&#160; &#160; import&#160;Engine.Collision.Shapes.*;
&#160; &#160; import&#160;Engine.Common.Math.*;
&#160; &#160; import&#160;flash.events.Event
&#160; &#160; import&#160;flash.display.*;
&#160; &#160; import&#160;flash.text.TextField;
&#160;
&#160; &#160; [SWF(backgroundColor=&#34;#ffffff&#34;, width=&#34;350&#34;, height=&#34;200&#34;)]
&#160; &#160; public&#160;class Box2dSimpleSample extends Sprite {
&#160; &#160; &#160; &#160; private&#160;var m_world:b2World;
&#160; &#160; &#160; &#160; private&#160;var m_physScale:Number = 10;
&#160; &#160; &#160; &#160; private&#160;var count:int = 0;&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Box2Dという物理エンジンを使ったActionScript3プログラミングをすれば、難解な数学や物理法則を理解する必要なくて実装できませね。Box2DをFlashで利用できるようにするため、「Box2DFlashAS3」というオープンソースのActionScript 3のライブラリが開発されました。</p>
<p>実際にどれだけ威力があるかというのはデモを見ればわかるほどの出来栄えで、ピタゴラスイッチ風なものとか、ドミノ倒しとか、いろいろなことができます。</p>
<ol>
<li>世界の作成 </li>
<li>床の作成 </li>
<li>積み木の作成 </li>
<li>シミュレーションの開始 </li>
<li>描画 </li>
</ol>
<p>の様の流れで、<a href="http://d.hatena.ne.jp/nitoyon/20071127/box2d_simple_sample" name="box2d_simple_sample">Box2DFlashAS3 の単純なサンプルと使い方</a>を解説するチュートリアルを参考できます。</p>
<p><a href="http://digitechlog.com/wp-content/uploads/2010/01/box2dflashas300_m.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="box2dflashas300_m" border="0" alt="box2dflashas300_m" src="http://digitechlog.com/wp-content/uploads/2010/01/box2dflashas300_m_thumb.png" width="400" height="300" /></a> </p>
<p><span id="more-892"></span>  </p>
<p>開発用エンジンですから、利用方法は例を参考すればどうしても分かれるともいますね。</p>
<p>以下はにとよんさんが作られたサンプルです。</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: Blue;">package</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">Engine</span><span style="color: Gray;">.</span><span style="color: Blue;">Dynamics</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">Engine</span><span style="color: Gray;">.</span><span style="color: Blue;">Collision</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">Engine</span><span style="color: Gray;">.</span><span style="color: Blue;">Collision</span><span style="color: Gray;">.</span><span style="color: Blue;">Shapes</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">Engine</span><span style="color: Gray;">.</span><span style="color: Blue;">Common</span><span style="color: Gray;">.</span><span style="color: Teal;">Math</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Teal;">flash</span><span style="color: Gray;">.</span><span style="color: Blue;">events</span><span style="color: Gray;">.</span><span style="color: Blue;">Event</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Teal;">flash</span><span style="color: Gray;">.</span><span style="color: Teal;">display</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Teal;">flash</span><span style="color: Gray;">.</span><span style="color: Teal;">text</span><span style="color: Gray;">.</span><span style="color: Teal;">TextField</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">[</span><span style="color: Blue;">SWF</span><span style="color: Olive;">(</span><span style="color: Teal;">backgroundColor</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#ffffff</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: Teal;">width</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">350</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: Teal;">height</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">200</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)]</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><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;">Box2dSimpleSample</span><span style="color: Gray;"> </span><span style="color: Green;">extends</span><span style="color: Gray;"> </span><span style="color: Blue;">Sprite</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><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;">m_world</span><span style="color: Gray;">:</span><span style="color: Blue;">b2World</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><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;">m_physScale</span><span style="color: Gray;">:</span><span style="color: Teal;">Number</span><span style="color: Gray;"> = </span><span style="color: Maroon;">10</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><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;">count</span><span style="color: Gray;">:</span><span style="color: Teal;">int</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;">;&nbsp; </span><span style="color: #ffa500;">// loop counter</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">Box2dSimpleSample</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">stage</span><span style="color: Gray;">.</span><span style="color: Teal;">scaleMode</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">noScale</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">stage</span><span style="color: Gray;">.</span><span style="color: Teal;">align</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">TL</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</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;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Teal;">text</span><span style="color: Gray;">:</span><span style="color: Teal;">TextField</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Teal;">TextField</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: Teal;">text</span><span style="color: Gray;">.</span><span style="color: Teal;">text</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">CLICK TO START!!!</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Teal;">text</span><span style="color: Gray;">.</span><span style="color: Teal;">x</span><span style="color: Gray;"> = </span><span style="color: Teal;">text</span><span style="color: Gray;">.</span><span style="color: Teal;">y</span><span style="color: Gray;"> = </span><span style="color: Maroon;">100</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">addChild</span><span style="color: Olive;">(</span><span style="color: Teal;">text</span><span style="color: Olive;">)</span><span style="color: Gray;">;</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: Blue;">stage</span><span style="color: Gray;">.</span><span style="color: Blue;">addEventListener</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">click</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">event</span><span style="color: Gray;">:</span><span style="color: Blue;">Event</span><span style="color: Olive;">)</span><span style="color: Gray;">:</span><span style="color: Green;">void</span><span style="color: Gray;">&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: Teal;">text</span><span style="color: Gray;">.</span><span style="color: Teal;">visible</span><span style="color: Gray;"> = </span><span style="color: Green;">false</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Teal;">init</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><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">addEventListener</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">enterFrame</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">event</span><span style="color: Gray;">:</span><span style="color: Blue;">Event</span><span style="color: Olive;">)</span><span style="color: Gray;">:</span><span style="color: Green;">void</span><span style="color: Gray;">&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;">Update</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><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&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: Teal;">init</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span><span style="color: Green;">void</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">count</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;">;</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: #ffa500;">// Construct a world object</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">worldAABB</span><span style="color: Gray;">:</span><span style="color: Blue;">b2AABB</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">b2AABB</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: Blue;">worldAABB</span><span style="color: Gray;">.</span><span style="color: Blue;">minVertex</span><span style="color: Gray;">.</span><span style="color: Blue;">Set</span><span style="color: Olive;">(</span><span style="color: Gray;">-</span><span style="color: Maroon;">100.0</span><span style="color: Gray;">, -</span><span style="color: Maroon;">100.0</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: Blue;">worldAABB</span><span style="color: Gray;">.</span><span style="color: Blue;">maxVertex</span><span style="color: Gray;">.</span><span style="color: Blue;">Set</span><span style="color: Olive;">(</span><span style="color: Maroon;">100.0</span><span style="color: Gray;">, </span><span style="color: Maroon;">100.0</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: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">gravity</span><span style="color: Gray;">:</span><span style="color: Blue;">b2Vec2</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">b2Vec2</span><span style="color: Olive;">(</span><span style="color: Maroon;">0.0</span><span style="color: Gray;">, </span><span style="color: Maroon;">10.0</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: Blue;">m_world</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">b2World</span><span style="color: Olive;">(</span><span style="color: Blue;">worldAABB</span><span style="color: Gray;">, </span><span style="color: Blue;">gravity</span><span style="color: Gray;">, </span><span style="color: Green;">true</span><span style="color: Olive;">)</span><span style="color: Gray;">;</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: #ffa500;">// Create floor</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">wallSd</span><span style="color: Gray;">:</span><span style="color: Blue;">b2BoxDef</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">b2BoxDef</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: Blue;">wallSd</span><span style="color: Gray;">.</span><span style="color: Blue;">extents</span><span style="color: Gray;">.</span><span style="color: Blue;">Set</span><span style="color: Olive;">(</span><span style="color: Maroon;">300</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">/</span><span style="color: Red;"> m_physScale </span><span style="color: #8b0000;">/</span><span style="color: Gray;"> </span><span style="color: Maroon;">2</span><span style="color: Gray;">, </span><span style="color: Maroon;">10</span><span style="color: Gray;"> </span><span style="color: #8b0000;">/</span><span style="color: Red;"> m_physScale);</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; wallSd.localRotation = Math.random() * Math.PI </span><span style="color: #8b0000;">/</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">8</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">wallBd</span><span style="color: Gray;">:</span><span style="color: Blue;">b2BodyDef</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">b2BodyDef</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: Blue;">wallBd</span><span style="color: Gray;">.</span><span style="color: Teal;">position</span><span style="color: Gray;">.</span><span style="color: Blue;">Set</span><span style="color: Olive;">(</span><span style="color: Maroon;">300</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">/</span><span style="color: Red;"> m_physScale </span><span style="color: #8b0000;">/</span><span style="color: Gray;"> </span><span style="color: Maroon;">2</span><span style="color: Gray;">, </span><span style="color: Maroon;">250</span><span style="color: Gray;"> </span><span style="color: #8b0000;">/</span><span style="color: Red;"> m_physScale);</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; wallBd.AddShape(wallSd);</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; m_world.CreateBody(wallBd);</span></li>
<li><span style="color: Red;">&nbsp;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #8b0000;">//</span><span style="color: Red;"> Add bodies</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var sd:b2BoxDef = new b2BoxDef();</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sd.density = 1;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sd.friction = 0.2;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var bd:b2BodyDef = new b2BodyDef();</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bd.AddShape(sd);</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for (var i:int = 0; i &lt; 10; i++) {</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sd.extents.Set(30 </span><span style="color: #8b0000;">/</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">m_physScale</span><span style="color: Gray;">, </span><span style="color: Maroon;">10</span><span style="color: Gray;"> </span><span style="color: #8b0000;">/</span><span style="color: Red;"> m_physScale);</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bd.position.Set(100 </span><span style="color: #8b0000;">/</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">m_physScale</span><span style="color: Gray;">, </span><span style="color: Olive;">(</span><span style="color: Maroon;">160</span><span style="color: Gray;"> - </span><span style="color: Maroon;">40</span><span style="color: Gray;"> - </span><span style="color: Blue;">i</span><span style="color: Gray;"> * </span><span style="color: Maroon;">20</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: #8b0000;">/</span><span style="color: Red;"> m_physScale);</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; m_world.CreateBody(bd);</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; }</span></li>
<li><span style="color: Red;">&nbsp;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; public function Update():void {</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!m_world) {</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</span></li>
<li><span style="color: Red;">&nbsp;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #8b0000;">//</span><span style="color: Red;"> Update physics</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; count++;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(count &gt; 300) {</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; init();</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; m_world.Step(1 </span><span style="color: #8b0000;">/</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">30</span><span style="color: Gray;">, </span><span style="color: Maroon;">10</span><span style="color: Olive;">)</span><span style="color: Gray;">;</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: #ffa500;">// Render</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">graphics</span><span style="color: Gray;">.</span><span style="color: Teal;">clear</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: Green;">for</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">bb</span><span style="color: Gray;">:</span><span style="color: Blue;">b2Body</span><span style="color: Gray;"> = </span><span style="color: Blue;">m_world</span><span style="color: Gray;">.</span><span style="color: Blue;">m_bodyList</span><span style="color: Gray;">; </span><span style="color: Blue;">bb</span><span style="color: Gray;">; </span><span style="color: Blue;">bb</span><span style="color: Gray;"> = </span><span style="color: Blue;">bb</span><span style="color: Gray;">.</span><span style="color: Blue;">m_next</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">for</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</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;">b2Shape</span><span style="color: Gray;"> = </span><span style="color: Blue;">bb</span><span style="color: Gray;">.</span><span style="color: Blue;">GetShapeList</span><span style="color: Olive;">()</span><span style="color: Gray;">; </span><span style="color: Blue;">s</span><span style="color: Gray;"> != </span><span style="color: Green;">null</span><span style="color: Gray;">; </span><span style="color: Blue;">s</span><span style="color: Gray;"> = </span><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">GetNext</span><span style="color: Olive;">())</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">DrawShape</span><span style="color: Olive;">(</span><span style="color: Blue;">s</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</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></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">DrawShape</span><span style="color: Olive;">(</span><span style="color: Blue;">shape</span><span style="color: Gray;">:</span><span style="color: Blue;">b2Shape</span><span style="color: Olive;">)</span><span style="color: Gray;">:</span><span style="color: Green;">void</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">shape</span><span style="color: Gray;">.</span><span style="color: Blue;">m_type</span><span style="color: Gray;"> == </span><span style="color: Blue;">b2Shape</span><span style="color: Gray;">.</span><span style="color: Blue;">e_polyShape</span><span style="color: Olive;">)</span><span style="color: Gray;">&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: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">poly</span><span style="color: Gray;">:</span><span style="color: Blue;">b2PolyShape</span><span style="color: Gray;"> = </span><span style="color: Blue;">shape</span><span style="color: Gray;"> </span><span style="color: Blue;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">b2PolyShape</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">tV</span><span style="color: Gray;">:</span><span style="color: Blue;">b2Vec2</span><span style="color: Gray;"> = </span><span style="color: Blue;">b2Math</span><span style="color: Gray;">.</span><span style="color: Blue;">AddVV</span><span style="color: Olive;">(</span><span style="color: Blue;">poly</span><span style="color: Gray;">.</span><span style="color: Blue;">m_position</span><span style="color: Gray;">, </span><span style="color: Blue;">b2Math</span><span style="color: Gray;">.</span><span style="color: Blue;">b2MulMV</span><span style="color: Olive;">(</span><span style="color: Blue;">poly</span><span style="color: Gray;">.</span><span style="color: Blue;">m_R</span><span style="color: Gray;">, </span><span style="color: Blue;">poly</span><span style="color: Gray;">.</span><span style="color: Blue;">m_vertices</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">graphics</span><span style="color: Gray;">.</span><span style="color: Teal;">beginFill</span><span style="color: Olive;">(</span><span style="color: Maroon;">0</span><span style="color: Blue;">x999999</span><span style="color: Gray;">, </span><span style="color: Blue;">count</span><span style="color: Gray;"> &gt; </span><span style="color: Maroon;">290</span><span style="color: Gray;"> ? </span><span style="color: Olive;">(</span><span style="color: Maroon;">300</span><span style="color: Gray;"> - </span><span style="color: Blue;">count</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">/</span><span style="color: Red;"> 10.0 : 1);</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; graphics.lineStyle(1,0xffffff,1);</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; graphics.moveTo(tV.x * m_physScale, tV.y * m_physScale);</span></li>
<li><span style="color: Red;">&nbsp;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for (var i:int = 0; i &lt; poly.m_vertexCount; ++i) {</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var v:b2Vec2 = b2Math.AddVV(poly.m_position, b2Math.b2MulMV(poly.m_R, poly.m_vertices[i]));</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; graphics.lineTo(v.x * m_physScale, v.y * m_physScale);</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; graphics.lineTo(tV.x * m_physScale, tV.y * m_physScale);</span></li>
<li><span style="color: Red;">&nbsp;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; graphics.endFill();</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; }</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; }</span></li>
<li><span style="color: Red;">}</span></li></ol></div>
<p><strong>関連情報</strong></p>
<ol>
<li><a href="http://gigazine.net/index.php?/news/comments/20071118_box2dflashas3/" target="_blank">Flashで物理演算シミュレーションを可能にする「Box2DFlashAS3」</a></li>
<li><a href="http://d.hatena.ne.jp/nitoyon/20071127/box2d_simple_sample" name="box2d_simple_sample">Box2DFlashAS3 の単純なサンプルと使い方</a></li>
<li><a href="http://gihyo.jp/dev/feature/01/box2d" target="_blank">Box2DでActionScript物理プログラミング</a></li>
<li><a href="https://www.adobe.com/jp/devnet/flash/articles/box2dflashas3.html" target="_blank">物理演算ライブラリ「Box2DFlashAS3」を活用する</a></li>
<li><a href="http://www.ficc.jp/labs/archives/ando/box2dflashas3/" target="_blank">Box2DFlashAS3での衝突判定</a></li>
<li><a href="http://hokori.net/2009/02/18/box2dflashas3_base/">物理エンジンライブラリ Box2DFlashAS3（基本）</a></li>
<li><a href="http://www.horned.org/log/">共振フラフラこんにちわ</a></li>
<li><a href="http://box2dflash.sourceforge.net/" target="_blank">最後は公式サイト</a></li>
</ol>
<h3>Related Posts</h3>
<ul class="related_post">
<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/03/12/7-asynchronous-processing-open-source-actionscript-library.html" title="７+ AS3で非同期処理のオープンソースのライブラリ一覧">７+ 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/01/26/flartoolkit-open-source-augmented-reality-in-flash.html" title="FLARToolKit: AR（拡張現実）ってのをFlashで簡単に作ることができるライブラリ">FLARToolKit: AR（拡張現実）ってのをFlashで簡単に作ることができるライブラリ</a></li>
<li><a href="http://digitechlog.com/2010/01/25/wow-engine-free-as3-open-source-physics-engine.html" title="WOW-Engine: オープンソースのActionScript3用3D物理エンジンライブラリ">WOW-Engine: オープンソースのActionScript3用3D物理エンジンライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/09/30/fluorine-flash-remoting-for-dot-net.html" title="FluorineFx: Flexと.NET間でAMF通信できるライブラリ">FluorineFx: Flexと.NET間でAMF通信できるライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/06/08/pngpong-an-open-source-solution-to-display-transparent-pngs-in-ie-firefox-and-safari.html" title="PNGPong: フィルタもしくは複雑なJavaScriptとCSSを使用せず透明PNG表示する問題を解決するオープンソースのライブラリ">PNGPong: フィルタもしくは複雑なJavaScriptとCSSを使用せず透明PNG表示する問題を解決するオープンソースのライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/06/02/swfaddress-a-small-but-powerful-library-provides-deep-linking-for-flash-and-ajax.html" title="SWFAddress: SWFObject と共にFlashの各コンテンツの遷移に対してパーマリンク提供する便利なライブラリ">SWFAddress: SWFObject と共にFlashの各コンテンツの遷移に対してパーマリンク提供する便利なライブラリ</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2010/01/28/box2dflashas3-open-source-physics-library-box2d.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

