2013-02-25 71 views
1

我創建了一個包含帶有一個組件(按鈕)的.MXML文件的Flex庫項目。 它在myLibrary.views包中被稱爲Button.mxml。如何將Flex庫中的mxml組件包含到不同的Flex項目中?

然後我創建了一個不同的Flex移動項目,其中我想包括我的庫項目中的按鈕。 該項目引用了以前創建的庫。

我無法找到如何實現這一目標的答案。

我可以添加它像MXML組件嗎?

<?xml version="1.0" encoding="utf-8"?> 
    <   s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
      xmlns:s="library://ns.adobe.com/flex/spark" 

      applicationDPI="240"> 
<fx:Declarations> 
    <!-- Place non-visual elements (e.g., services, value objects) here --> 
</fx:Declarations> 

<fx:Script> 
    <![CDATA[ 
     import myPackage.views.Button; // this is the package containing Button.mxml 

    ]]> 
</fx:Script> 
<myPackage.Views.Button id="myButton" /> // is this possbile somehow ??? 

    </s:Application> 

謝謝!

回答

3

首先一定要將其他項目添加到您的庫路徑。您可以通過將生成的SWC添加到libs文件夾或將其添加到庫路徑來完成此操作。如果兩個項目都在同一個Flash Builder工作區中,則可以使用庫選項卡上的「添加項目」按鈕。

接下來,要在MXML中使用新的Button文件,必須在頂級MXML標記中導入名稱空間;這樣的事情:

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:myPackage="myPackage.views.*" 
       applicationDPI="240"> 

語法是非常類似於什麼Flex爲自己的包。除非您可能還沒有完成創建名稱空間URL的過程,因此您使用包名稱。在大多數情況下,不創建名稱空間URL是很好的,它比它值得的更令人頭疼。

然後你可以使用你的自定義按鈕是這樣的:

<myPackage:Button id="myButton" /> 

此相同的語法與其他Flex組件;這是namespace:ComponentName

您不能在ActionScript中使用基於導入語句的MXML中的Component;但你有正確的想法。

+0

這是一個非常有用的答案。使用庫是否是一個好習慣?我想在這些庫中提取常見的功能和視圖,所以我可以在多個項目中使用它們。謝謝! – 2013-02-25 20:06:56

+1

是的,如果你想跨多個項目重用一個組件,庫是最好的方法。 – JeffryHouser 2013-02-25 20:42:09

相關問題