Flex4.5.1からFlex4.6へ移植して

楽しみにしていたFlashBuilder4.6がリリースされました!

細かい点でいくつか仕様や動きが変わっており、少し移植作業が必要でした。
以下に列挙します。
1.app.xmlの変更
FB4.5.1のままだとビルドエラーとなります。
xmlnsのバージョン記載を3.1にしましょう。(ちなみに4.5.1のときは2.6にしないとビルドできません)
他にもいろいろあったような。。。
ひとつプロジェクトをサンプルとして作ってみて、その中のapp.xmlを自分の4.5.1のときのapp.xmlと比較して、足りないところをコピペするのがいいかと思います。

2.高速化した?
Flex4.6はパフォーマンス50%アップという触れ込みでした。
フットサルボードだと、確かに録画の再生部分のフレームレイトが前より出ているような。。。計測してないですけどね。
ただ、僕が高速化してほしかったのは画面遷移のスピードであり、そこは改善している感じがあまりしません。
flexというよりはairのパフォーマンスアップではないかと。

3.ipaファイル肥大化問題は?
バグトラッカーで解決したと書いてないとおり、解決してません。
むしろ、flexおよびairのswcのサイズが4.6になって大きくなったのか、さらにサイズが増えました。
flex4.5.1で21MBだったフットサルボードがついに23MBに。

4.popViewでaddイベントが2回飛んでくる
フットサルコート画面へのpopView、フットサルコート画面からのpopViewに限り、addイベントが2回発生しています。
4.5.1に戻してビルドしたところ、再現しないのを確認しました。
画面遷移の根本にかかわる部分の動作なので、これが期待通り動かないともうどうしようもありません。

popViewは確かに1回しか呼ばれていません。
もちろん自分の書き方が間違っている可能性もありますが、ADCの記事やAdobeのヘルプにしたがって極力シンプルに書いていることを考えると、Flex4.6のバグである可能性も十分あると考えています。
ただ、必ず再現するわけでなく、フットサルボードに関して言えば、フットサルコート画面でしか再現しません。
ですので、バグトラッカーに報告するのが難しいと考えています。
報告用のサンプルアプリを作らないと。。。

ひとつ考えられる原因としては、デザインとロジックの切り分けのため、IMXMLObjectを使っていて、使っている画面だけで再現していること。
Adobeのヘルプでデザインとロジックの切り分けについて書かれているページでは、IMXMLObjectのことは書いていません。

5.TextInputの高さを高く
その他に気づいたのは、TextInputで、フォントの幅に対しTextInputの高さを4.5.1のときより高くしないと文字が見切れるようになりました。TLFのバージョンが上がったのが理由でしょうか。

6.TextInputがドラッグについてこない。
コマをドラッグアンドドロップすると、コマ画像とTextInputをグルーピングしたコンポーネントドラッグアンドドロップするように作っているのですが、ドラッグ中にTextInputがついてこなくなりました。
ドロップすると初めてTextInputの位置が補正されます。
これは正直困る。デグレッションと言っていいでしょう。


flex4.6リリース直後に、高速化したフットサルボードを華麗にAppStoreにリリース、なんて考えていたのですが、少々、期待がはずれました。
今のところ、flex4.5.1に戻してリリースしようと考えています。
バグ報告は時間に余裕があるときにやろうかなと。

flexオープンソースプロジェクトですが、正直、Adobeflexモバイルに対してどれだけがんばる気があるのかな、と思ったり。
AIRとFlashProffesionalについてはすごく頑張っていると思うのです。
ただ、上みたいなリグレッションが発生するようだと、テストにリソースかけてるのかな、報告してもすぐ対応してくれるのかな、と。
いずれ自分もオープンソースについて貢献できるようになりたいと思いますが、今はAdobeの頑張りに期待するしかありません。
次回flexUserGroup勉強会にはUSからflex開発者が来るらしいので、その辺を質問してみたいです。