Loader.unloadAndStop でエラー : Flash CS4 ムービープレビュー用 Flash Player
自作スクロールバーコンポーネントのインスタンスを生成・表示した swf を Loader.unloadAndStop メソッドで破棄すると以下のエラーが発生する問題に直面。
Error #2044: ハンドルされていない IOErrorEvent : text=Error #2036: 読み込みが未完了です。
Loader.unloadAndStop を用いず Loader.unload メソッドを用いると上記エラーは発生しません。
大抵エラーが発生すると、Flash の出力パネルに、どのクラスのどのメソッドでエラーが発生したか表示されるのですが、上記エラーはどこで発生したかの表示がなされず調査に時間がややかかってしまいました。
自作スクロールバーコンポーネントの何か作りが悪い、あるいは外部 swf 読み込みでのややこしいセキュリティなんたらが原因でエラーが発生しているのかもしれません。
ただし、上記エラーは Flash CS4 内のムービープレビューの Flash Player(以前も記事にした、3D関連処理にバグのある Flash Player) で実行すると起こるようで、バージョンアップしたデバッグ用 Flash Player では上記エラーは発生しませんでした。
Flash Player のバージョンアップにより、Loader.unloadAndStop に関して何らかの問題が解決した可能性もありますが、Flash Player 10 Release Notes には Loader.unloadAndStop に関しての記述はみつからず。
Flash Player 10 Release Notess
http://www.adobe.com/support/documentation/en/flashplayer/10/Flash_Player_10_Release_Notes.pdf
ひとまず最新の Flash Player で問題なく動作するので上記エラーは無いものとすることに。しかし、Flash CS4 で動作確認を行なう際 ムービープレビューとデバッグモードとで動作が異なるというのは避けたいので、Loader.unloadAndStop の使用は一旦とりやめに。
Loader.unloadAndStop はとりあえずとして用いていましたが、内部の作りとしては Loader.unload でも問題ないようになっています。