1&1 DSL
Flashhilfe.de - Flash Community

Multiple Change-Anweisungen in DataGrid unterbringen. [Flash 10]

Forum > Apache Flex / Adobe AIR > Multiple Change-Anweisungen in DataGrid unterbringen.

 


AntwortenRegistrieren Seite1

 15.04.2009, 13:25 
Beiträge: 7
Registriert: Feb 2009

Multiple Change-Anweisungen in DataGrid unterbringen.
Guten Tag,

Habe erst vor knapp 2 Monaten mit Flex angefangen, habe nun meine Anwendung fast fertig. Fast - ein Wort das viele Probleme verursachen kann.

Ich habe mehrere dataGrids, die in einem Accordion eingearbeitet sind.
Diese datagrids erhalten ihren Content aus einer xml-Datei heraus. Ausserhalb des Accordions befindet sich ein Panel, deren Inhalt ich aus den dataGrid abrufe. Ändert sich das aktive dataGrid, ändert sich auch ein mx:image in dem Panel.
Allerdings auch nur das mx:image...

Nun ist meine Frage: Wie kann ich in den Change-Befehl des DataGrids mehrere zu ändernde Objekte kriegen? Also quasi eine Liste von zu ändernden Objekten.

<mx:Accordion id="accordion">

<mx:VBox label="News|Themen" >
<mx: DataGrid id="myDataGrid1" dataProvider="{myVideos.News.video}"
change="previewPicture1.source=myVideos.News.video[selectedVideoIndex].Vorschau">
<mx:columns>
<mx: DataGridColumn id="titleColumn1" headerText="Videos"

</mx: DataGridColumn>
</mx:columns>
<mx: DataGrid>
</mx:VBox>

Nun steht in dem Change-befehl nur das mx:image.
Ich brauche allerdings noch eine Änderung zweier mx:text.
Nur habe ich keine Ahnung wie ich die da mit rein kriegen soll. Einen zweiten change-Parameter aufmachen ist ja auch nicht möglich.

Kann mir da jemand helfen, wie ich quasi eine Aufreihung von change-anweisungen machen kann?

MfG
Geändert von JimmyD2 am 15.04.09 um 13:27 Uhr

 15.04.2009, 13:50Re1
Benutzerbild von springerFlashhilfe.de Moderator
Beiträge: 4883
Wohnort: zuhaus
Registriert: Apr 2004

hi,
wieso machst du das nicht mit databinding?

bsp:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
   <![CDATA[
      [Bindable]
      private var _videos:Array = [{label:"pic1",url:"_images/a.png"},{label:"pic2",url:"_images/b.png"}]
   ]]>
</mx:Script>
   <mx:Image width="100" height="100" horizontalCenter="0" top="10" source="{this.grid.selectedItem.url}"/>
   <mx:Label width="250" horizontalCenter="0" top="125" text="{this.grid.selectedItem.label}"/>
   <mx:DataGrid id="grid" horizontalCenter="0" top="150" width="250" height="300" dataProvider="{this._videos}">
      <mx:columns>
         <mx:DataGridColumn headerText="Name" dataField="label"/>
         <mx:DataGridColumn headerText="Pfad" dataField="url"/>
      </mx:columns>
   </mx:DataGrid>
</mx:WindowedApplication>


oder du kannst bei change eine funktion aufrufen, und darin machen was du möchtest:

ActionScript:
1
2
3
4
5
6
7
8
<mx:Script>
   <![CDATA[
      private function test(event:Event):void{
         trace(this.grid.selectedItem.toString())
      }
   ]]>
</mx:Script>
<mx:DataGrid change="funktion(event)">
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
 15.04.2009, 14:06Re2
Beiträge: 7
Registriert: Feb 2009

Themenautor/in

Hi Springer

DataBinding habe ich bereits versucht. Bloss bekam ich dann ich dann Probleme mit den Video-Aufrufen innerhalb der Anwendung.

Und Data-Binding für 12 DataGrids, die jeweils 10-20 Einträge enthalten, ist nicht witzig. Problem ist auch, dass ich die Zuweisung der Informationen nicht in die Anwendung schreiben kann, weil in mehr oder minder regelmässigen Abständen neue Einträge in die Datagrids kommen, weswegen ich die Datenquelle auch ausserhalb der Anwendung lagern muss. Deswegen erscheint mir ein DataBinding nicht sehr durchführbar.

Kann ich diese Anwendung auch als function in die Anwendung schreiben?
Müsste eigentlich, weil ich ja bereits mehrere functions in der Anwendung habe.

Danke für die Antwort, werde mal schaun inwiefern ich eine Funktion hinbekomme.
 
nicht sichtbar bei eingeloggten Mitgliedern
 15.04.2009, 14:45Re3
Benutzerbild von springerFlashhilfe.de Moderator
Beiträge: 4883
Wohnort: zuhaus
Registriert: Apr 2004

warum sollte databinding nicht witzig sein ? damit ersparst du dir viel arbeit...

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
  <![CDATA[
      [Bindable]
      private var _videos:Array = [{label:"pic1",url:"_images/a.png"},{label:"pic2",url:"_images/b.png"}];
      [Bindable]
      private var _videos2:Array = [{label:"pic3",url:"_images/c.png"},{label:"pic4",url:"_images/d.png"}];
      [Bindable]
      private var _videos3:Array = [{label:"pic5",url:"_images/e.png"},{label:"pic5",url:"_images/e.png"},{label:"pic6",url:"_images/f.png"},{label:"pic6",url:"_images/g.png"}];
      [Bindable]
      private var _activeGrid:DataGrid;
     
      private function dataGridChange(event:Event):void{
         this._activeGrid = DataGrid(event.currentTarget);
      }
  ]]>
</mx:Script>
  <mx:Image width="100" height="100" horizontalCenter="0" top="10" source="{this._activeGrid.selectedItem.url}"/>
  <mx:Label width="250" horizontalCenter="0" top="125" text="{this._activeGrid.selectedItem.label}"/>
  <mx:DataGrid change="dataGridChange(event)" id="grid" horizontalCenter="0" top="150" width="250" height="100" dataProvider="{this._videos}">
      <mx:columns>
        <mx:DataGridColumn headerText="Name" dataField="label"/>
        <mx:DataGridColumn headerText="Pfad" dataField="url"/>
      </mx:columns>
  </mx:DataGrid>
  <mx:DataGrid change="dataGridChange(event)" id="grid1" horizontalCenter="0" top="260" width="250" height="100" dataProvider="{this._videos2}">
      <mx:columns>
        <mx:DataGridColumn headerText="Name" dataField="label"/>
        <mx:DataGridColumn headerText="Pfad" dataField="url"/>
      </mx:columns>
  </mx:DataGrid>
  <mx:DataGrid change="dataGridChange(event)" id="grid2" horizontalCenter="0" top="370" width="250" height="100" dataProvider="{this._videos3}">
      <mx:columns>
        <mx:DataGridColumn headerText="Name" dataField="label"/>
        <mx:DataGridColumn headerText="Pfad" dataField="url"/>
      </mx:columns>
  </mx:DataGrid>
</mx:WindowedApplication>


woher die daten stammen ist doch eigentlich egal, und auch ist es egal ob da jetzt 100 einträge drin sind oder nicht.... oder ?
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
Geändert von springer am 15.04.09 um 14:45 Uhr

 27.04.2009, 18:55Re4
Beiträge: 7
Registriert: Feb 2009

Themenautor/in

so, mal ausprobiert.
Das mit dem Active Grid hab ich jetzt inzwischen verstanden. Bloss wie bekomme ich die Daten statt aus nem Array aus einer (!!!) .xml-Datei.
Weil bisher habe ich das über "private var myVideos:XML" gemacht und dann halt in Dot-Syntax myVideos.Thema1.Titel1 gemacht. Oder halt "Thema1.Titel[selectedIndex]"
Wie kann ich das in die Arrays eintragen, dass ich quasi
[Bindable]
      private var _videos:Array = [{label:"myVideos.Thema1.Titel[selectedIndex]",
                                                  url:"myVideos.Thema1.Titel[selectedIndex].Bild"}
als Ergebnis habe? Dass ich für jedes Thema eine  [Bindable]private var  machen muss, ahne ich schon. Mir geht es halt nur um das Einbinden der externen XML in die Datenstruktur. Weil ich nich mit Arrays arbeiten kann, wo ich jedesmal um die Daten zu erweitern erst neu kompilieren muss. oder wäre es ratsam, mit private var_videos1:XML; zu arbeiten und dann für jedes Grid eine neue XML-datei zu schreiben. Frage ist, wie das machbar wäre.


MfG
 28.04.2009, 09:51Re5
Benutzerbild von springerFlashhilfe.de Moderator
Beiträge: 4883
Wohnort: zuhaus
Registriert: Apr 2004

hi,
du kannst auch die xml als dataprovider nutzen, war nur als beispiel gedacht...
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
 
nicht sichtbar bei eingeloggten Mitgliedern
 
Themen
Ähnliche Beiträge zum Thema
 
AntwortenRegistrieren Seite1

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de