Flex AIR アプリでは、メインのアプリ ウィンドウがかなり狭いという問題があります。これは、警告ダイアログ ボックスが両側で切り刻まれ、右クリック メニューが切り取られていることを意味します。これらのウィンドウがメイン ウィンドウによってトリミングされないようにするにはどうすればよいでしょうか。
4 に答える
メインの AIR ウィンドウを非表示の透明なウィンドウに変更し、アプリのプライマリ作業ウィンドウを非表示のウィンドウの子にします。次に、AIR アプリの起動時に、非表示ウィンドウをデスクトップを囲むサイズにします。その後、このデスクトップ領域に必要な数のウィンドウとダイアログを配置することができます。現在起こっているように、それらが切り取られることを心配する必要はありません。
複数の画面表示をサポートする場合 (表示されているアプリ ウィンドウを表示から表示へドラッグできるようにする場合)、非表示のウィンドウをグラフィックス座標系全体のサイズにして、すべての表示画面を包含するようにします。
非表示のウィンドウ アプローチを使用すると、ネイティブ アプリケーションのようなウィンドウ動作を実現できます。
アラートをどのように表示していますか? Alert.show() を使用している場合は、デフォルトの幅が使用されます。ただし、Alert オブジェクトを作成し、幅を手動で (または動的に) 設定し、PopUpManager を使用して表示、配置、非表示にすることで、これを回避できます。もう少しコードが必要ですが、より多くの柔軟性が得られます。
ここに小さなサンプルがあります:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="creationCompleteHandler();">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.managers.PopUpManager;
private function creationCompleteHandler():void
{
var alert:Alert = new Alert();
alert.width = 100;
alert.text = "this Alert is\n100px wide";
PopUpManager.addPopUp(alert, this);
PopUpManager.centerPopUp(alert);
Alert.show("this Alert uses the default width");
}
]]>
</mx:Script>
</mx:WindowedApplication>
adobe airのdojo拡張機能は、あなたが求めていることを実行できるはずです。自分で使用したことはなく、トレードオフがどうなるかはわかりませんが、一見の価値があるかもしれません。
Flash Player 内で実行されている Flex アプリケーションでは、ステージの外にウィンドウを表示することはできません。したがって、これを機能させる唯一の方法は、アプリを大きくすることです。
代わりに flex/ajax ブリッジを使用して JavaScript アラート ボックスを呼び出すこともできますが、それらはステージに拘束されません。ただし、アプリケーションの残りの部分のようにスキンが適用されるわけではなく、特にユーザーが [OK] ボタンをクリックするのを聞いている場合は、夢中になるまでにさらに作業が必要になります...