2010-10-20 105 views
0

我正在使用flex4,我正在寻求创建多窗口web应用程序的答案。我的应用程序有些复杂,目前我只知道使用PopupManager创建一个新窗口。 我应该为每个想要实例化的窗口创建每个MXML吗?然后加载mxml并将其放入舞台?有没有任何教程描述?我希望程序模块化,易于管理,扩展。flex:创建多窗口Web应用程序的最佳方式是什么?

我现在使用的方法是使用Group将窗口内的所有控件分组,并且如果用户想打开该窗口,我将显示该组并将其放在前面。这是开窗口的正确方法吗?但我无法支持拖动。

我想知道是否有可拖动的窗口或对话框的本机支持?

到目前为止,所有的控件都放在一个mxml文件中,是否可以将一个窗口(或一个组)放在一个单独的mxml文件中?

+0

你想要什么样的窗户,会不会有任何用户互动,有多少个窗口?任何DisplayObject或DisplayObjectContainer都可以是一个“窗口”。除了PopupManager,Flex还为您提供了很多组件。 你对OOP有什么了解?你说你想让你的程序模块化并且易于管理。定义你想要达到的目标,否则我们只能给你一个模糊的答案作为你的问题。 – PatrickS 2010-10-20 06:38:02

+0

我希望基础结构支持Flash页面内的可拖动窗口,我也想知道如何将控件分隔到不同的mxml文件中,谢谢。我已经编辑了我的问题。 – 2010-10-20 10:05:05

回答

1

要使用PopupManager,您必须首先在您的项目中创建一个mxml组件,并在包含TitleWindow的src文件夹中作为组件容器,该容器很有用,因为它与窗口类似,它具有关闭按钮...

例如:

<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init();" initialize="requestEvent();" width="368" close="close();" height="116" layout="absolute" backgroundAlpha="100" title="Create Folder" showCloseButton="true" x="29" y="21" borderColor="#FFFFFF" cornerRadius="10" alpha="2" themeColor="#FFFFFF"> 

</mx:TitleWindow> 

实例化并从您的应用程序弹出该组件必须使用PopUpManager将 例如为以下代码:

var create_folder_w:create_folder_window = create_folder_window(PopUpManager.createPopUp(this,create_folder_window,true));

PopUpManager.centerPopUp(create_folder_w); create_folder_w.addEventListener(FlexEvent.REMOVE,close_create_folder_refresh);

该代码会显示在窗口组件我告诉你在第一部分

我希望这个简单的exmple帮助ü....

1

在回答你的第一个问题,看看在Flexlib MDI的东西。

在回答第二个问题时,请参阅Flex教程以了解如何管理项目。

+0

我喜欢你的第一部分答案,但你的第二个答案真的不受欢迎。 – 2010-10-20 12:13:13

1

问题并不在于什么进入什么文件,而是如何实现你的对象或类之间的相互关系。如果几个窗口共享相同的结构或共享某种类型的控件,那么您肯定可以为这些窗口创建一个基类,控件也是如此。

对于您可以拖动的组件或关于常用控件集合的组件,没有特别困难。 Gregor Kiddie有一点,为什么你不检查一些Flex教程?

+0

是否有可能在一个项目中有几个mxml文档?我如何加载另一个mxml中的一个mxml作为控件/组件? – 2010-10-20 12:15:43

+0

通常应用程序由多个文档组成。你非常重视文件格式,对概念不够。你的应用程序是由互连的对象组成的,你可以把它看作一堆mxml文档,但是理解对象或组件是什么以及如何在应用程序中使用它们会更有帮助。 – PatrickS 2010-10-20 12:32:53

+0

如果我有几个mxml,如何使用另一个? – 2010-10-20 13:30:24

0

有你至少有三个选项的MDI环境:

  1. mx:TitleWindow - 原生的flex组件。不那么强大
  2. MDI组件在flexlib:功能强大和稳定
  3. appmdi令人惊讶,但没有很好的记录。

I'have chosed的flexlib MDI组分,但我建议看看其他的解决方案

相关问题