在Flex Air應用程序中,如何在活動窗口後面打開窗口?活動窗口後面的Flex打開窗口
我試過下面,我似乎無法得到它的工作
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationComplete="onCreationComplete(event)">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
import spark.components.Window;
private var window1:Window = new Window();
private var window2:Window = new Window();
private var timer:Timer = new Timer(3000,1);
private function onCreationComplete(event:FlexEvent):void
{
window1 = new Window();
window1.title = "Window 1";
window1.width = 200;
window1.height = 200;
window1.open(false);
window1.orderInBackOf(this);
window2 = new Window();
window2.title = "Window 2";
window2.width = 200;
window2.height = 200;
timer.addEventListener(TimerEvent.TIMER_COMPLETE, openWindow2, false, 0, true);
timer.start();
}
private function openWindow2(event:TimerEvent):void
{
window2.open(false);
window2.orderInBackOf(window1);
}
]]>
</fx:Script>
</s:WindowedApplication>
有了這個代碼,我希望窗口1到主應用程序窗口的後面打開,並在3秒,窗口2將開放的背後窗口1。但是,如果執行此操作,window1將在主窗口頂部打開,而window2將在window1頂部打開,主應用程序將保留焦點。這看起來像是Flex中的一個錯誤。如果是的話,是否有解決這個問題的方法?
耶將useWeakReference WASN沒有必要,但是TIMER_COMPLETE是正確的。如果你看看我的代碼,我將計時器設置爲僅重複一次。所以在第一次運行後,它會觸發TIMER_COMPLETE。 嗯,我想問題是,我打電話orderInBackOf窗口之前可見。將window1.orderInBackOf(this)移動到openWindow2,將window1移動到主應用程序的後面。然而,這不是我想要的行爲。我想在主應用程序未打開窗口1後面打開window1,然後將其移到後面。我希望有openInBackOf()函數..或打開(false)應該打開它在活動窗口後面 – lordofthefobs 2010-07-09 18:45:16
@Sang:嘗試使用打開(true) - 打開窗口焦點時,看看是否有所作爲。你對計時器事情是對的,我不知道爲什麼我第一次誤讀它。無論如何,我會嘗試使用TIMER事件來查看是否有任何變化。 – gMale 2010-07-09 20:21:39
@Sang:這是來自Adobe的[示例應用](http://www.adobe.com/devnet/air/flex/quickstart/controlling_display_order_windows.html) – gMale 2010-07-09 20:31:49