在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