2011-06-30 74 views
0

我剛剛開始使用Flex處理照片查看器類型的桌面AIR應用程序。從主窗口我可以啓動子窗口,但在這些子窗口中,我似乎無法訪問我在主窗口中收集的數據。如何在子窗口中使用主窗口中的數據?

我該如何訪問這些數據?
或者,如何將這些數據發送到創建子窗口?它不需要動態鏈接。

myMain.mxml

<?xml version="1.0" encoding="utf-8"?> 
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" 
         width="260" height="200" 
         title="myMain"> 
    <fx:Declarations> 
    </fx:Declarations> 
    <fx:Script> 
     <![CDATA[ 
      public function openWin():void { 
       new myWindow().open(); 
      } 

      public var myData:Array = new Array('The Eiffel Tower','Paris','John Doe'); 
     ]]> 
    </fx:Script> 
    <s:Button x="10" y="10" width="240" label="open a sub-window" click="openWin();"/> 
</s:WindowedApplication> 

myWindow.mxml

<?xml version="1.0" encoding="utf-8"?> 
<mx:Window name="myWindow" 
      title="myWindow" 
      xmlns:mx="http://www.adobe.com/2006/mxml" 
      layout="absolute" 
      width="640" height="360"> 
    <mx:Script> 
     <![CDATA[ 

     ]]> 
    </mx:Script> 
    <mx:Label id="comment" x="10" y="10" text=""/> 
    <mx:Label id="location" x="10" y="30" text=""/> 
    <mx:Label id="author" x="10" y="50" text=""/> 
</mx:Window> 

我意識到這可能是一個非常簡單的問題,但我已經在網上搜索,閱讀和觀看隨機AIR科目的教程幾天沒有找到它。看起來像一個傻瓜的風險現在是值得的,我想與我的第一個應用程序!

回答

2

您可以將屬性添加到您的窗口類,並從應用程序傳遞數據。

與屬性和setter函數:

myWindow.mxml:

<![CDATA[ 
     private var _data : Array; 

     public function set data(data : Array) : void { 
      this._data = data; 
     } 

    ]]> 

主要

<![CDATA[ 
     public function openWin():void { 
      var w : myWindow = new myWindow(); 
      w.data = myData; 
      w.open(); 
     } 

     public var myData:Array = new Array('The Eiffel Tower', 
              'Paris','John Doe'); 
    ]]> 

你也可以做到這一點通過添加一個構造函數的參數到你的窗口,但你將不得不在ActionScript中編寫你的Window組件。 (另外:你可能想使用MyWindow作爲你的組件的名稱而不是myWindow,但這只是常規的挑剔)。

另外,請注意,有一個單例變量Application.application可供應用程序中的所有類訪問;但是我不知道這是否適用於WindowedApplication,並且這兩種方法都不是推薦的方法。

+0

謝謝!我已經開始愛上了。 – Brugman

相關問題