0

画像を表示するアプリがあります。画面の回転に基づいてサイズを変更し、通常は「picwidth = screen.width」を設定します。ここで、「picwidth」は各画像の幅がバインドされている属性です。

したがって、次のような関数がいくつかあります。

protected function changeOrientation(e:StageOrientationEvent):void
               {
                     picwidth = screen.width;
                     picheight = screen.width*1.467;
               }

また、オブジェクト自体の変数を使用してこれを実行しようとしました:

protected function changeOrientation(e:StageOrientationEvent):void
               {
                   img.width = screen.width;
                   img.height = screen.width*1.467;
               }

エミュレータでは、これらの機能は正常に動作します。しかし、デバイスでは、「screen.width」は常に向きが変わる前に値を取得しているように見え、必要なものとは正反対の寸法を与えます。

注: これは画像だけで発生するのではなく、グループ コンテナー、TextArea、画面のサイズに依存するサイズのものすべてで発生します。

値を取得して反対の変数に割り当てて遅延を考慮して値を単純に切り替えようとしましたが、それらは私のデバイスで動作しますが、エミュレーターでは後方にあり、他のデバイスがエミュレーターはそうし、再び壊れます。

これに対する良い解決策はありますか?

4

1 に答える 1

1

この問題は次の方法で修正されました。

イベントリスナーを次の場所から変更します。

stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE, changeView);

に:

stage.addEventListener(Event.RESIZE, changeView);

Eventの代わりにstageOrientationEvent各ハンドラーメソッドを渡します。

必要なすべてのインスタンスで動作しました。StageOrientationEvent.ORIENTATION_CHANGEより一般的な機能によって実行するように設計された唯一のことを実行できるのは、ちょっと残念です。

于 2012-06-15T18:43:01.167 に答える