Flashプログラミングの最近のブログ記事

Flash でナニカ作ったことのある人はご存じのことですが、Flash はシングルスレッドであり、イベント駆動型です。
これをマルチスレッドっぽくするライブラリを yossy 氏が開発しました。
http://snippets.libspark.org/trac/wiki/Thread
このライブラリを使うと実現出来ちゃうんです!

デフォルトで、直列・並列処理用のライブラリもあるので、それを使うだけでマルチスレッドっぽく作れちゃうんです。
例えば、通信でデータ持ってきている間にそこで処理とめておいて、通信終わったら次の処理を開始する~とか、
●●と○○へ同時に通信し、その2つが終わったら、次へ~とかが出来ちゃうんです。

いやーベンリ便利ベンリィヽ(*´∀`)ノ

え?本当にマルチスレッドっぽく出来るのかよ!!って?
いやいやこれが出来るんですってば。
そんなわけでサンプルを作ってみました。

複数のスレッドがテキストエリアに対してメッセージを追加していく、超てきとーなサンプルです。
(Threadのなかみ時間なくてあんまし見ていないので、使い方を間違っていたらごめんなさい。)
サンプルのダウンロードはここから。
使い方は、テキストを入力して[スレッド作成]ボタンで適当にスレッドをいくつか作ります、
いくつかスレッドを作ったら、[スレッド開始]を押してみましょう。
メッセージがテキストエリアに表示されていくので、マルチスレッドになっているのがわかります。

サンプルの Flash です。

ここにSWFが表示されるようにしております。しかし、もしこの文章が表示されている場合はJavaScriptの使用をOFFにしている可能性があります。SWFの表示にJavaScriptを使用しておりますので、JavaScriptをONにしてください。またはここをクリックして直接SWFを開いてください。


ところで、このライブラリ微妙にバグってますね^^;

[org.libspark.utils.concurrent]パッケージにある[ParallelDelayExecutor]クラスにちょっとしたバグがw

以下3つのメソッドの戻り値が[Void]になっていらっしゃる。
このままでは「ParallelDelayExecutor」を使うと「Adobe Flash CS3 Professional」でパブリッシュできないので注意が必要です。修正が必要なメソッドは
initialize、execute、waitAllThreads
の3つです。(あれ?それともVoidっと大文字でも良かったんだっけ?・・・設定がわるくてパブリッシュ出来ないだけなのか??)

そんな日。

※追記
やヴぇ。このサンプル、スレッドを止めるようにしてなかったorz
まぁいいか。。。

新着記事

    戯言ブックマーク