Попытка включить '* .as' вместо - PullRequest
0 голосов
/ 15 июня 2011

У меня есть компонент аккордеона, вложенный в навигатор по вкладкам.Каждая панель аккордеона имеет форму внутри.Формы имеют две сетки, которые передают данные вперед и назад между друг другом и несколькими кнопками, чтобы помочь им.У меня есть actionScript, который контролирует форму.* Спасибо The_asMan за помощь в выяснении этой части.

В пакете "формы", 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 );
}

Моя вкладка nav / accordian выглядит следующим образом:

<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>

Мой вопрос, вероятно, простой ответ.Как получить пользовательскую форму для распознавания функций AS из FormFunctions.as?

1 Ответ

1 голос
/ 16 июня 2011

Установите событие клика как:

click="addItem(event)"

и функция addItem:

private function addItem(e:MouseEvent):void
{
...