そうめんを導入してみる

そうめんがおいしい季節になりました。
http://www.be-interactive.org/index.php?itemid=385
yossyさん制作の「ActionScript Thread Library 1.0 (そうめん) 」を使うとActionScriptで疑似的にマルチスレッドが実現できるらしいです!

ActionScript Thread Library は、名前こそスレッドですが、実体はタスクシステムにスレッドモデルを搭載したものなので、 「スレッド」と考えるよりは、「タスクシステム」だと考えた方が理解が早いでしょう。このドキュメントもその前提でお読みください。

とマニュアルにあるとおり、おもに非同期処理を簡素に書くためのライブラリのようです。ActionScriptでは非同期処理をイベント通知で捌くわけですが、リスナーの登録が面倒な上に全体像がつかみづらいという欠点があります。それを解決できるってんですから、試してみない手はないですぜ。
鎌倉のほうでは講習会が開かれるそうですが、はるか北の大地に住む俺は自力で導入&学習してみたいと思います。(いきたかった…)

1、ダウンロード

まずは、そうめんのページから「Thread-1.0.swc」をダウンロードします。
Thread - Spark project

2、設置

俺はFlexプロジェクトのディレクトリ構成を以下のようにしているので「lib」ディレクトリに「Thread-1.0.swc」を移動します。

  • [root]
    • src - ソース
    • lib - ライブラリ
    • etc - エディタのマクロとか
    • config.xml - コンパイラに渡す設定ファイル

3、コンパイラの設定

次いでmxmlcコンパイルオプションが書かれている「config.xml」に以下の記述を追加。

<compiler>
  ...
  <library-path>
    <path-element>./lib/Thread-1.0.swc</path-element>
  </library-path>
</compiler>

4、これで導入成功! のはずなんですがなぜかエラーが…

mxmlc -load-config+=config.xml src/Novel.as
...
エラー: SWC Thread-1.0.swc をロードできません: 不明なエレメント script が catalog.xml の digests セクションで見つかりました。

いかんですよねー、SDKは最新版を使わないと。

5、Flex SDK を最新版に

http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK
ついでにエディタのマクロに登録
余談ですがエディタはxyzzyを使っています。

6、もう一回コンパイル

今度は成功しました(ほっ


というわけで「そうめん」の導入に成功です。これからドキュメントを読み漁る日々が始まりそうです。そうめんがおいしい季節です。
いじょ。