毎回そうだが、FlashBuilderはバージョンアップすると前のバージョンで作った物がすんなりインポート出来ない。
ANEを扱ってみようと思い、ついでにFlash Builder4.5から4.6へバージョンアップしてみたのだが、今回も4.5で作ったプロジェクトで問題が発生した。
毎回、更新すると、取り敢えず前バージョンで開発終了しているAIRプロジェクトで直近で重要なプロジェクトを読み込んで、チラホラと問題が出た箇所(ネームスペースの問題やsdkのパスやら何やら主にFlash Builderの問題と言われる箇所)を修正して動作確認をしているが、今回気がついたのは、mxコンポーネントの imageコンポーネントで同じsrc以下にある画像を動的に読み込んで表示させているが、これが失敗すると言うやつ=読み込まずにリンク切れの状態で表示される。
ViewはImageコンポーネントで
View.load(“hoge.png”); と言う単純なものだが、
これは、具体的にはサーバに画像が無い場合に代替として表示する画像なのですが、実はサーバから読み込んだイメージは同じ形で表示する。
当然、4.5では何の問題も無く、こんな単純な箇所なので全く原因が分からない。
ネットで色々調べてみたがそれらしい話も載ってない様で、例によってFXUGへ尋ねてみた。
ちなみに、ボタンに利用しているアイコン等が、@Embedを指定しないと表示しないと言う修正(デザイン画面で、Embedへチェックを入れる修正)も必要だった。
取り敢えず、代替画像を@Embedしたimageコンポーネントとサーバからの画像を表示するimageコンポーネントの二つを重ねて配置して、それぞれの表示を制御することで逃げたが、他のプロジェクトでも同様の方法で画像を使っている場所があるので、今のうちに原因か対処方法を確認したい。
4.6は、他にもエディターでカーソルが消えるという怪しい現象も発生した。
これ以外にも、データとサービスを利用している場合、ファイルをインポートすると既に実稼動サーバへデプロイ設定をしているsrc以下のservicesにあるasファイルのendpointが勝手にlocalへ変更される様だ。
やっとわかってきたが、バージョンアップした場合は、ひとまず、旧バージョンのワークスペースからプロジェクトをコピーして、そのプロジェクトをインポートし、必要なservicesのファイルを旧バージョンから新パージョンへ上書きコピーすると言う作業が必要な様だ。
でなければ、WEBルートの関係で自動的にlocalhostへ書き換えられてしまう。
余計なお世話と言う機能だし、以前も書いたが、このデプロイに関する情報が少ないので方法が良くわからないのも困る。