勉強ではなくて、ただの愚痴エントリ。Actionscript 3について中途半端な知識を持っただけのままで愚痴る。
Flash製作をしていて、自前でHTTPを喋る為に幾度と無く使ってきたURLLoader。しかしこいつが使いにくいことこの上無い。
データ受信の不便さ
load()で取得したデータは、Event.COMPLETEイベントが飛んでくるとdataプロパティを使って取得できる。しかし、Event.COMPLETEイベントが飛んでくるのを待つ為には、一旦Flashに制御を移さないといけない。
つまり、load()した関数の中で受信したデータを取得することが出来ない。なので、データの取得をリクエストする関数と、実際に取得する関数を別にするという設計にせざるを得ない。Flashにマルチスレッドだとか継続だとかいう概念があれば、関数の途中でFlash側に処理を渡す事も出来るんだろうけど。
この辺りは、URLLoaderの愚痴というよりも、Flash環境に対する愚痴といった方が正しい。
multipart/form-dataなPOSTによるファイルアップロードの機能が無い。
自分で実装すればいいだけの話だし、実際自前で書いた物を使いまわしてるけど。しかしこの位は自前で持っていて欲しい…。実際flash.net.FileReferenceだと出来るわけだし。ただし、FileReferenceだとユーザーがダイアログから指定したファイルのアップロードしか出来ないという罠。プログラム側で勝手にデータをアップロードする事は出来ない。
終わりに
実は何か良い方法があるのかもしれませんが、あったら教えて下さい。よろしくお願いします。