首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >你能得到NativeWindow最小化的事件吗?

你能得到NativeWindow最小化的事件吗?
EN

Stack Overflow用户
提问于 2011-12-31 17:31:52
回答 4查看 3.2K关注 0票数 1

当在AIR中使用NativeWindow时,你能在每次窗口最小化/非最小化时都得到一个事件吗?我试过用DisplayStateChanged连接,但当窗口被最小化时它不会触发。你知道如何获得这样的事件吗?

我使用的是32位的Windows7,运行的是AIR 3.5。

这是初始化代码:

代码语言:javascript
复制
        var init:NativeWindowInitOptions = new NativeWindowInitOptions();
        init.maximizable = true;
        init.resizable = true;
        init.type = NativeWindowType.NORMAL;
        init.minimizable = true;
        window = new NativeWindow(init);
        window.alwaysInFront = true;
        window.addEventListener(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGE, dispChange, false, 0, true);

这是处理程序:

代码语言:javascript
复制
    private function dispChange(e:NativeWindowDisplayStateEvent):void {


        // if minimized / un-minimized
        if (e.beforeDisplayState == NativeWindowDisplayState.NORMAL && e.afterDisplayState == NativeWindowDisplayState.MINIMIZED) {
            trace("MINIMIZED!");

        }else if (e.beforeDisplayState == NativeWindowDisplayState.MINIMIZED && e.afterDisplayState == NativeWindowDisplayState.NORMAL) {
            trace("Un-MINIMIZED!");

        }
    }
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-29 15:53:04

我能得到的最接近最小化事件的是激活事件。每当用户在应用程序外部单击时,该窗口都会被停用。然后,您可以使用minimize()自动最小化窗口。但是,当用户最小化窗口/切换到另一个窗口时,也会调用停用事件。当用户切换回来时,你会得到一个激活的呼叫。

代码语言:javascript
复制
window.addEventListener(Event.ACTIVATE, dispActive, false, 0, true);
window.addEventListener(Event.DEACTIVATE, dispDective, false, 0, true);

private function dispActive(e:Event):void {
    // un-minimized
}
private function dispDective(e:Event):void {
    // deactivated .. minimize again to be sure
    window.minimize();
}
票数 0
EN

Stack Overflow用户

发布于 2012-01-02 05:09:32

窗口实际上是可最小化的吗(检查window.minimizable,而不仅仅是init设置)?

我也想知道以下的结果:

代码语言:javascript
复制
if (e.beforeDisplayState == NativeWindowDisplayState.MINIMIZED) trace("min before");

if (e.afterDisplayState == NativeWindowDisplayState.MINIMIZED) trace("min after");

我也想知道上面“弱引用”评论的结果。这会影响垃圾收集,因此测试总是一件好事。

票数 2
EN

Stack Overflow用户

发布于 2012-07-20 09:31:59

以下代码在64位Windows 7和AIR 3.3 / Flash Player 11.3上运行良好。

代码语言:javascript
复制
import flash.display.NativeWindowDisplayState;
import flash.events.NativeWindowDisplayStateEvent;

~

stage.nativeWindow.addEventListener(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGE, displayStateChangeEventHandler);

~

private function displayStateChangeEventHandler(event:NativeWindowDisplayStateEvent):void
{
    switch (stage.nativeWindow.displayState)
    {
        case NativeWindowDisplayState.MINIMIZED:    trace("window was minimized");
                                                    break;

        case NativeWindowDisplayState.NORMAL:       trace("window is normal");
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8687402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档