外部ASファイルでの問題

やはり、ソースは外部のテキストにしておきたいのが人情と言うもの(?)
いろいろトライしてみると、よく分からない問題が発生しました。
問題の中身は

mx.data.components.WebServiceConnectorがClass Not Foundになってしまう。

というもの。
外部スクリプトじゃなくて、flaの内部に書けば問題ない・・・それって気持ち悪い。
一応クラスパスなんかも調べてみる・・
$(UserConfig)/Classes以下にActionScriptのソースが入っているが、中身を確認してみるとWebServiceConnector.asが存在しない・・・なんで?


で、いろいろ調べてみると・・・こんなの発見。
http://www.macromedia.com/cfusion/knowledgebase/index.cfm?id=tn_19174

WebServiceConnectorなどのData Connector Component classを外部ASファイルで使用するとコンパイルできません

などと悲しい事が書いてある・・(笑)
対処法は、

  • アプリがインストールされたディレクトリの「First Run/Components」以下に「*.swc」がある
  • swcをWinZipで解凍し、出来た*.asiファイルを*.asに変える
  • *.asを「First Run/Classes」以下にコピー。ただし、解凍したファイル名はパッケージ名がついているので、それを適切なディレクトリに変更してやる。*1

かなりイケテナイぞ〜。
でもswcファイルってzipアーカイブなのね。jarみたい。

*1:mx.data.components.WebServiceConnector.asならmx/data/componentsディレクトリにWebServiceConnector.asをコピーしてやる