Flexモバイル(4.5)の機能制限のメモ

Flexモバイルプロジェクトは、Flexプロジェクトよりも使えるコンポーネントが減らされており、また、機能しないメソッドがあります。
多くは、モバイル向けにデザインをカスタマイズしたり、省メモリ化、ROMサイズ減が必要となるために、Adobeが優先順位をつけて対応しているものと思われます。
あるいは、上記3点においてモバイルにふさわしくないとAdobeが判断した機能を落としているのでしょう。

気づいた制限事項をメモします。
・Alertが使えない。
 これは結構困ります。iOSではダイアログは使えるのにFlexで面倒くさいのはちょっと。
 こちらでも語られています。
 http://d.aoikujira.com/blog/index.php?Flex%E3%83%A2%E3%83%90%E3%82%A4%E3%83%AB%E3%81%A7Alert%E3%81%8C%E4%BD%BF%E3%81%88%E3%81%AA%E3%81%84%E4%BB%B6%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

・Viewの遷移時に任意のコンポーネントにフォーカスを当てる方法がない。
 画面遷移時にTextInputにフォーカスを当てたかったのですが、
 setFocus()、focusManager.setFocus()、textInput.requestSoftwareKeyboard()を試しましたが全滅です。

・ソフトキーボードが現れたときに、ActionBarまで画面外に。
 前回の記事の続きです。
 iOSはActionBarが残るため、TextArea編集中にソフトキーボードを引っ込めたいときは、ActiveBarのDoneボタンやCancelボタンを押せばいいわけです。そのようにiOSネイティブアプリはデザインされています。
 あ、ActionBarというのは画面上部のCancelボタンとかDoneボタンの入るバーのことを呼んでます。
 しかし、Flexはそうは行かなかった。。。
 ソフトキーボードが現れるときに画面上に残る部分を、 softKeyboardInputAreaOfInterestというRectで指定できますが、あくまでRectなので、TextAreaとActionBarの距離が離れているとTextAreaとActionBarの両方を残すような指定はできません。
 ActionBarを残すようなプロパティを用意してほしい。。。
 結局、僕はTextAreaの下に、フォーカスを移すためのボタンを用意して問題を回避していますが不恰好ですね。

後、これは注意点のメモですが、
・アプリがiOS上でアクティブになったときは、pushViewであたえられるdataはnullになっている。
 アクティブになったとき、ADDイベントやADDED_TO_STAGEイベントが発生しますが、イベントハンドラではdataがnullになることを想定したつくりにせねばなりません。

2011/11/17 追記
destruction_policy=neverにしておくと、Viewのインスタンスが解放されないのでADDイベントが発生しないっぽく感じるのですが、調査中です。