2010-10-20 101 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組分,但我建議看看其他的解決方案

相關問題