【问题标题】:How to prevent AIR application from jerking around while dragging?如何防止 AIR 应用程序在拖动时晃动?
【发布时间】:2015-09-04 10:20:15
【问题描述】:

我创建了一个 AIR 应用程序,它似乎工作正常,但是当我拖动标题栏来移动本机窗口时,它会剧烈摇晃,并且在拖动时会癫痫发作。

仅供参考,当我停止移动鼠标时,它最终会到达我想要的位置。

我在 Mac OSX 10.10.5 上使用 Flex 4.6 和 AIR 3.6。这是一个s:WindowedApplication 如果这很重要,我还在应用程序的一部分列表中使用 DragManager,但在用户单击列表并移动超过一定数量的像素之前它不会启用。

这是我的描述符文件减去名称和版本信息:

<application xmlns="http://ns.adobe.com/air/application/3.6">
    <initialWindow>
        <autoOrients>false</autoOrients>
        <fullScreen>false</fullScreen>
        <visible>false</visible>
    </initialWindow>
</application>

在初始化时我运行这个:

protected function initializeHandler(event:FlexEvent):void {

    width = Capabilities.screenResolutionX * .96;
    height = Capabilities.screenResolutionY * .9;

    nativeWindow.x = (Screen.mainScreen.bounds.width - width)/2;
    nativeWindow.y = (Screen.mainScreen.bounds.height - height)/2;

}

更新:
我删除了主视图组件,因此它是一个空的应用程序,并且可以顺畅地拖动。

更新 2:
我重新添加了主视图,并在此过程中逐步拖动。当我将第二个应用程序(称为子应用程序)加载到主应用程序中时,它似乎开始发生。不过我不确定。

【问题讨论】:

  • 错字:应该更正。
  • 我从未见过这种行为。你能用一个简单的例子重现它吗?
  • 我也没有看到这个。我正在使用较新版本的 Air 和 Flex,但不记得旧版本中的类似内容。顺便说一句:这发生在哪个操作系统(和版本)上?窗口上的自定义皮肤?窗口 Chrome 设置?
  • 当 DisplayObject 的位置改变其父对象的“边界”时,我遇到过这种行为。基本上,如果您移动属于另一个对象边界的一部分,这些边界将会改变,并且宽度和高度将不再是可靠的“中心”点。这可能不是您的问题,但症状是相同的。您可以尝试将 Screen.mainScreen.bounds.width/height 保存在变量中,并在交互过程中使用这些值。
  • 有很多地方我的宽度高度为 100%。我会尝试在几个地方设置固定尺寸,看看是否有帮助。所以当我移动它时,有些东西正在调整大小,而其他东西正试图让自己居中?我经常使用水平和垂直中心。我也会尝试固定位置。这是一个有趣的应用程序。同时还有其他事情发生,如果我不在线,大多数面板和文本都会消失。所以我的待办事项清单上就是把所有的东西都取下来,然后一块一块地加回来。

标签: actionscript-3 apache-flex air


【解决方案1】:

这发生在我的许多应用程序中。这可能是因为我的应用程序文件中有一个组件,其大小设置为应用程序的 100%。但我还没有在我所有的应用程序上验证这一点。

解决方案是调整 AIR 应用程序的大小。调整大小后,它工作正常。我可以拖动它,它按预期工作。我认为这是一个 AIR 错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-03
    • 1970-01-01
    • 2021-03-07
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多