AIRやFLASHなどを表示するのに不便なので、ブログから自作サイトに移転します。 『N2-Works移転先 』 今後はこちらで更新を行っていきます。 エラーダイアログを作成しようとした時に大ハマリしたのでメモしておきます。
しばらく調査してみたのですが、モーダルダイアログを簡単に作成するようなAPIは、用意されていないようです。
ならNativeWindowでダイアログを作成してしまうことにしたのですが、そこで変な挙動を確認しのです。
私はmxmlを使用せず、全てActionScriptで記述しているのですが、エントリポイントになるクラスから初期ウインドウにアタッチする方法は皆様はご存知でしょうか?
以下のようなコードです。
例としてwidthとheightの取得を挙げましたが、エントリポイントのクラスが保持しているStage.nativeWindowのメソッドやプロパティから色々と操作できます。 話が逸れましたが、エラーダイアログ作成時に何が起きたかというと、新たに作成したnativeWindowに配置したSpriteが意図した大きさにならなかったのです。 それどころか、そのSpriteに配置したTextFieldも設定した値とかけ離れた大きさになってしまいました。 これは何が原因かというと、nativeWindowは新規に作成した場合、Stage.scaleModeとStage.alignが正しく設定されていないからです。 ただしここでいう正しい設定というのは、左上隅が(0, 0)になりwidthやheightの単位がpixel単位で表示されるということです。AIRの仕様書にはこれがデフォルトであると載っています。
この設定を行わないと、こちらの意図した座標系とはなりませんので注意が必要です。 しかしHowTo本には何も設定していないウインドウの作成までしか載っていないので解決が 大変でした。もう少し突っ込んだ内容の本は売ってないもんですかね(笑) |