2011-06-15 36 views
0

我有一個嵌套在選項卡導航器中的手風琴組件。每個手風琴窗格都有一個窗體。這些表格有兩個網格,在eachother和幾個按鈕之間來回傳輸數據來幫助他們。我有控制表單的動作。 *感謝The_asMan幫助我理清這一部分。Trying include'* .as'而不是<fx:script>

在包 「形式」,FormFunctions.as:

import mx.collections.ArrayCollection; 

[Bindable] 
public var originalData:ArrayCollection; 

[Bindable] 
public var changingData:ArrayCollection; 

public function init():void 
{ 
    this.changingData = new ArrayCollection(); 
    this.originalData = new ArrayCollection(); 
    for(var i:int = 0;i<100;i++) 
    { 
     var obj:Object = new Object(); 
     obj.label = 'slot '+ i; 
     obj.value = 's'+i; 
     originalData.addItem(obj); 
    } 
} 

public function addItem():void 
{ 
    this.changingData.addItem(myStaticDataGrid.selectedItem); 
    this.originalData.removeItemAt(myStaticDataGrid.selectedIndex); 
} 

public function clearList():void 
{ 
    this.changingData.removeAll(); 
    init(); 
} 
public function removeItem():void 
{ 
    this.changingData.removeItemAt(bdgFormData.selectedIndex); 
    this.originalData.addItem(bdgFormData.selectedItem); 
} 

我的標籤導航/手風琴看起來是這樣的:

<mx:TabNavigator id="myTabNav"> 
    <s:NavigatorContent id="myFirstTab"> 
     <mx:Accordion id="myFirstAccordNav"> 
      <s:NavigatorContent id="myFirstAccordPane"> 
       <forms:DualGridStyle id="myFirstForm"/> 
      </s:NavigatorContent> 
      <s:NavigatorContent id="mySecondAccordPane"> 
       <forms:DualGridStyle id="mySecondForm"/> 
      </s:NavigatorContent> 
     </mx:Accordion> 
     </s:NavigatorContent> 
     <s:NavigatorContent id="mySecondTab"> 
     <mx:Accordion id="mySecondAccordNav"> 
      <s:NavigatorContent id="myThirdAccordPane"> 
       <forms:DualGridStyle id="myThirdForm"/> 
      </s:NavigatorContent> 
      <s:NavigatorContent id="myFourthAccordPane"> 
       <forms:DualGridStyle id="myFouthForm"/> 
      </s:NavigatorContent> 
     </mx:Accordion> 
     </s:NavigatorContent> 
</mx:TabNavigator> 

的標籤是我的自定義窗體組件。這裏是代碼:

<s:Form 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="800" height="400"> 
<s:layout> 
    <s:BasicLayout/> 
</s:layout> 
<fx:Declarations> 
    <!-- Place non-visual elements (e.g., services, value objects) here --> 
</fx:Declarations> 
<s:Label id="lblFilter" x="40" y="24" text="Filter:"/> 
<s:TextInput id="txtFilter" x="83" y="20" width="145"/> 

<s:DataGrid id="myStaticDataGrid" left="40" top="60" width="188" 
      creationComplete="init()" dataProvider="{originalData}"/> 
<s:DataGrid id="bdgFormData" top="60" width="284" dataProvider="{changingData}" 
      horizontalCenter="110"/> 
<s:Button id="btnAdd" label="Add" top="90" left="262" 
      click="addItem()"/> 
<s:Button id="btnRemove" label="Remove" top="90" horizontalCenter="310" 
      click="removeItem()" /> 
<s:Button id="btnClear" label="Clear" top="120" horizontalCenter="310" 
      click="clearList()"/> 

</s:Form> 

我的問題可能是一個簡單的答案。如何讓自定義窗體識別FormFunctions.as中的AS功能?

+0

請給你的問題的描述性名稱。 – jhocking 2011-06-15 20:46:26

+1

不知道你在問什麼,但我想你想讓它成爲一個文檔類。 http://www.albertx.mx/blog/flash-builder-projects/ – 2011-06-15 21:07:29

+0

我只是想簡化代碼,以便我不必在標記中具有.as文件。我可以使用它的唯一方法是將它放在標籤下。當我嘗試包含.as時,我會收到未知的屬性錯誤。雖然感謝那個鏈接。它會幫助我做其他事情。 – smulholland2 2011-06-15 21:16:02

回答

1

設置點擊事件爲:

click="addItem(event)" 

和的addItem功能:

private function addItem(e:MouseEvent):void 
{