0

我很难找到许多面向桌面应用程序编程的 Flash Builder 4.6 可用资源。

我正在尝试完成一项简单(或至少我认为简单)的任务。我有一个应用程序,应用程序中有一个按钮。当用户单击按钮时,我希望加载一个新窗口,而不是在当前窗口中加载;作为一个完全独立的窗口。

我曾经设法做到这一点,但我使用的代码给出了一个警告(来自 Adob​​e Flash Builder 4.6),告诉我最好使用“界面”,因为新窗口现在是窗口的子窗口打开它。(因为我一直在尝试其他东西,比如 ModuleLoader,所以我丢失了这段代码)。

基本上我的问题是,有人可以提供一个示例,说明如何以可以加载 2 个单独的窗口应用程序并且它们可以通过事件相互通信的方式正确实现接口吗?

作为奖励,如果有人可以向我指出一个好的资源的方向,我也会很感激(书或网站)。:) 我读过一本 Flex 4 书,它对我理解基本知识有很大帮助,但不适合 AIR 桌面编程(也没有提到界面)。

感谢您的时间。

4

1 回答 1

0

我是如何解决这个问题的。这篇文章有帮助:Flex 应用程序中的双显示器支持

在 Adob​​e Flash Builder 4.6 中创建项目后,转到文件 > 新建 > MXML 组件。输入您认为最适合您的应用程序的详细信息,但在“基于”字段下,输入“spark.components.Window”。完成所有详细信息后,单击“完成”。

在您的主应用程序中,使用以下代码将您刚刚创建的新窗口组件拉到一个单独的窗口中。出于此代码的目的,我假设您的新窗口位于“assets.components”下并称为 CompNewWindow。用您自己的替换这些详细信息。

<s:Button x="0" y="0" label="Button" click="_loadNewWindow(event)" />

<fx:Script>
    <![CDATA[

        import assets.components.CompNewWindow;

        private var myNewWindow:CompNewWindow;

        private function _loadNewWindow(event:MouseEvent):void
        {
            if (!myNewWindow) {
                myNewWindow = new CompNewWindow();
                myNewWindow.addEventListener(Event.CLOSE, _onNewWindowClose);
                myNewWindow.open();
            }
         }

        private function _onNewWindowClose(event:Event):void
        {
            myNewWindow.removeEventListener(Event.CLOSE, _onNewWindowClose);
            myNewWindow = null;
        }

    ]]>
</fx:Script>
于 2012-12-01T13:07:24.043 回答