【Flex】FlashBuilder4.7+FlexSDK4.10の組み合わせでバグ
FlashBuilder4.7でFlexSDK4.10を使用してSparkのプロジェクトを作成した際、生成されるソースに一部問題があるようです。
https://cwiki.apache.org/confluence/display/FLEX/Adobe+Flash+Builder+%27New+Project%27+Bug
実際やってみました。
生成されたmxmlファイルの中身は以下のようになりました。
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" layout="absolute" minWidth="955" minHeight="600"> </s:Application>
このコードを実行しようとすると、「 layout=”absolute”」でエラーとなります。
この書き方はFlexの3.x時のmx用の書き方でSparkでは使えませんね。
対応方法としては、余分なこの記述を削除してしまえばいいのですが、
パッチも提供されていますので、それを当てておいたほうが良いでしょう。
以下のページにその手順が書いてあります。
http://helpx.adobe.com/flash-builder/kb/flex-new-project-issue–.html
codemodel.jarというファイルを置き換えればいいようで、
FlashBuilderインストール先配下の/eclipse/plugins/com.adobe.flexbuilder.codemodel_4.7.0.349722フォルダ内にあるcodemodel.jarを、上記参照ページからダウンロードできるcodemodel.jarで上書きするだけです。
入れ替えたあと、FlashBuilderを再起動すれば適用完了です。
適用後に再度作成してみました。
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"> <fx:Declarations> <!-- 非ビジュアルエレメント (サービス、値オブジェクトなど) をここに配置 --> </fx:Declarations> </s:Application>
absoluteの記述が消えたのと、Declarationsの記述が追加されました。
FlexSDKは以前からバージョンアップする度にしょうもないバグが付いてきます。
こっちは治ったけどそっちがおかしくなった・・・みたいな。。
気づかれてないだけで、他にもこういったことはありえますので、作っていて「これ前と動きが違うなぁ」って事があった場合は、自分が作ったソースを疑うのと同時に、FlexSDK自身のバグではないかも疑ってみましょう。
以前のSDKに戻してみると分かります。
AdobeからApacheに渡って変わるかと思いましたが、相変わらずですね。
== ランキングに参加しています。ぜひクリックお願いします ==
コマンドプロンプトでレジストリの値を参照する ケータイで掛ける相手のキャリアを特定する方法