そうめん(Thread)

2009年6月21日 (日)

そうめんをさわってみた その6

P





















そうめん練習中。

今回は、FlickrAPIとPV3Dを使って以前作った作品をそうめんVerとして書きなおしてみました。

サンプルはこちらです(右クリックでソースが見れます)。




スレッドの流れは、

プログレスバー作成して、それのリサイズイベント用スレッド実行

APIにアクセスして、XMLをロード

XMLを解析して、画像をロード

画像からPV3DのPlaneを作成。リサイズイベント用スレッドは割り込みで停止。

Planeを出現

Planeコントロール用スレッド実行

って感じです。






以前そうめんを使わずに作った時は、イベント系の処理がすごくめんどかった。

なので、そうめんを使ったことでaddEventListenerから解放されたのですごくいい感じにプログラムが組めました。

順序立てて考えができるので、デバッグとかもやりやすかたったし。

ただ、なんとなくソースコードが異様に長くなってしまうような感じがします。

こればっかりはうまく書いていくしかないっすかね。



| | コメント (0) | トラックバック (0)

2009年6月19日 (金)

そうめんをさわってみた その5

A























久々のそうめん。

今日はeventの練習です。

とりあえず、サンプルはこんな感じです(右クリックでソースが見れます)。

そうめんでは、MouseEvent.CLICKなどのイベントはaddEventListenerで受け取りません。

「event(target, "イベント名", function)」みたいに書くそうです。

これで、利用後のremoveEventListenerまでやってくれるとか。

便利です。




今回のサンプルは、「円を作成→円を回す。その中でMouseEvent.CLICKを監視→クリックされたらそれを真ん中に→またクリックされたら元に戻す」っていう流れをスレッドで作成しています。

個人的にはまだ書き方が分からない感じ。

円を動かす過程で、毎回eventを実行しているんですけど、これって毎フレームaddEventListerしている感じなんですかね。

なんか効率いい感じがしない・・・。

誰か正しい書き方教えてほしいです。




---------------------------------------

(追記)

イベントの話。

イベント監視用のスレッドを別に作ればいいんですよね。

こっちではそんな風に作ってみてます。

| | コメント (0) | トラックバック (0)

2009年5月 8日 (金)

そうめんをさわってみた その4

P_4





















絶賛そうめん勉強中です。

そうめんでは、SerialExecutorやParallelExecutorを利用して複数のスレッドをまとめたとき、その進歩状況を獲得することが出来ます。

ロードのプログレスバーを作成する場合などで利用できます。

今回は、まず「画像を複数順々に読み込む→プログレスバーをフェードアウト→画像を順々に表示」ってスレッドを作成して実行します。

そんで、別に進歩状況を見るスレッドを作成して、それでプログレスバーを動かします。

っていうか、サンプルを改造したまんまです。

とりあえず、こんな感じのサンプルを作ってみました。





今日わかったことは、

・複数の進歩状況を見る場合は、MultiProgressってのを利用する。

・IProgressを継承したクラスには、percentっていうプロパティがあって、それで進歩状況を見ることができる。

って感じですか。




以下、ソースです。

画像は、こちらのものを利用しました。


続きを読む "そうめんをさわってみた その4"

| | コメント (0) | トラックバック (0)

そうめんをさわってみた その3

P_3




















絶賛そうめん勉強中。

今回は、TweenerThreadってのを利用してみました。

Tweenerをスレッドとして利用できます。

サンプルとして、「shapeをフェードイン→右へ→左へ→右へ・・・」って流れを作りました。

こんな感じです。

Tweenerのスペシャルプロパティもちゃんと利用できました。





今回学んだことは、

・Tweenerを利用する場合は、TweenerThreadを利用する。

・TweenerThreadはスペシャルプロパティも利用可能。

ってこと。ただ、スペシャルプロパティを利用する場合は、ちゃんとColorShortcuts.init()とかで初期化してあげないといけないです。





以下、ソースです。


続きを読む "そうめんをさわってみた その3"

| | コメント (0) | トラックバック (0)

そうめんをさわってみた その2

P_2






















そうめん練習中。

今回は画像を読み込んでみました。

今回の処理の流れは、「画像のデータが書かれているXMLを読み込む→XMLからデータを取り出して、画像を読み込む準備をする→画像が全部読み終わったら表示させる」 って感じです。

画像やXMLなどの外部ファイルを読み込んだりするスレッドは、URLLoaderThreadを利用します。

「画像を全部読みこむ」って処理は、ParallelExecutorってのを利用します。

これは、「登録された処理を同時開始して、全部終わったら次の処理へ進む」ってが出来ます。

同じようなので、SerialExecutorってのもあります。

これは、「登録された処理を順番に開始して、全部終わったら次の処理へ進む」ってをやります。

読み込み処理をまとめることができるのはすごいうれしいです。





今回覚えたことは、

・joinメソッドで、そのスレッドが終了するまで、その呼び出した側のスレッドを中断させる。

・処理をまとめるのはParallelExecutorとSerialExecutor。

・エラーハンドラはerror()で登録する。





今回はこんな感じ。

以下、ソースです。

画像とか全部まとめたのはこちらです。




続きを読む "そうめんをさわってみた その2"

| | コメント (0) | トラックバック (0)

そうめんをさわってみた その1

P






















後輩と一緒にそうめん勉強中。

サンプルたくさんあったので、それを見ながら勉強中。

ものすごい基本中の基本をやってみました。

こんな感じです。

そうめんってのは、スレッド(処理の流れのこと)を扱うことができる、疑似スレッドライブラリです。

「こうやって、次にああやって、最後にこうする」みたいな、順序立てたプログラミングが簡単にできます。

Javaでスレッドをやったことのある人とかはとっつきやすいかも。

今回は、「円を書く→1秒停止→円の色を変える→1秒停止→円の色を変える→1秒停止→円を消す」ってのをスレッドで操作しています。

こういうのを何も使わずに書くと割りとめんどいのが、そうめん使うと簡単にできます。





今回覚えたこととしては、

・最初にライブラリの初期化を行う。初期化がすでに行われているかどうかは、Thread.isReadyで調べることが出来る。

・Threadクラスを継承したクラスを作成して、runメソッドをオーバーライドする。そんで、startメソッドでスレッド開始。

・nextで次に実行する関数を決定できる。

・次に実行するスレッドが指定されていない場合は、finalizeメソッドが実行される。これは、エラー処理後でも実行される。





とまあこんな感じ。

以下、ソースです。

続きを読む "そうめんをさわってみた その1"

| | コメント (0) | トラックバック (0)