2011-09-01 38 views
0

在我的AIR应用程序中,当用户创建一个新项目时,我想要一个弹出框出现在他们可以在其中输入其项目名称的地方。我明白这是如何通过使我的自己类型的弹出框,但有没有一种方法可以使用NativeWindows来完成此操作?也就是说,我可以使用包含文本字段和按钮的系统chrome出现一个窗口吗?AS3 AIR - NativeWindow弹出框

我在FlashDevelop中使用Flex 4和AIR 2.7。

回答

6

是的,你可以。创建新的NativeWindow时,您可以添加子项并将其移除到舞台上。所以你可以将你的类/组件添加到新窗口并听取他们的事件。

// create NativeWindowInitOptions 
var windowInitOptions:NativeWindowInitOptions = new NativeWindowInitOptions(); 
windowInitOptions.type = NativeWindowType.NORMAL; 
windowInitOptions.minimizable = true; 
windowInitOptions.resizable = false; 
windowInitOptions.maximizable = false; 
windowInitOptions.systemChrome = NativeWindowSystemChrome.STANDARD; 
windowInitOptions.transparent = false; 

// create new NativeWindow 
var newWindow:NativeWindow = new NativeWindow(windowInitOptions); 

// create your class 
var popupBox:Sprite = new Sprite(); 

// resize 
newWindow.width = popupBox.width; 
newWindow.height = popupBox.height; 

// add 
newWindow.stage.addChild(popupBox); 

// configure 
popupBox.addEventListener(YourCustomEvent.CONFIRM, onPopupConfirm); 

// for a popup it might be nice to have it activated and on top 
newWindow.alwaysInFront = true; 
newWindow.activate(); 

在onPopupConfirm函数中,您可以关闭Window和清理引用。 (NativeWindow上的Event.CLOSING,可以派上用场来捕捉alt + F4关闭等)

+0

甜美,感谢的伴侣。我正在考虑尝试像这样的事情,但我只是想过问问题。对制作NativeWindows没有经验。保持良好的工作。 – puggsoy

+0

没问题,很高兴我可以帮忙! –