Flashhilfe.de - Flash Community

ArrayCollection: auslesen eines best Items, AIR-proj [Flash 10]

 


AntwortenRegistrieren Seite1  

longCrew#1
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

18.11.2009, 12:36

hi

vorweg mal: ich habe ein kl Prob mit Arrays;)

Prob:
ich lade daten in eine ArrayCollection.
mein Datagird bekommt über den dataProvider diese ArrayCollection zugewiesen.
Jetz möchte ich wenn ich auf ein besten Datensatz in meinen DateGird klicke die URL zurückgegeben bekommen und in einer var speichen

vorgehensweise:

mein Datagird
ActionScript:
1
2
3
4
5
6
7
8
9
      <mx:DataGrid id="List"
            dataProvider="_AC_Files"
            doubleClickEnabled="true"
            itemClick="onItemDoubleClick(LEevent)">
      <mx:columns>
            <mx:DataGridColumn width="168" headerText="data" dataField="data"  />
      
            
         </mx:columns


das funkt jetz wird bei click die fkt onItemDoubleClick(..) aufgerufen

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private function onItemDoubleClick(LEevent:ListEvent):void
         {
            
                                // das funktioniert mein ListIndex wird ausgelesen
            var ListIndex:int = songList.selectedIndex;
            trace(ListIndex);

            
         //   das hier nicht wie kann ich auf auf das item url zugreifen ???
            
            var getURL:String = List._AC_Files["url"];
            

         }


ich hoffe es kann mir jemand weiterhelfen

mfg
Die Lösung ist: das Suchen.
LongCrew = 2 people
Geändert von longCrew am 18.11.09 um 12:39 Uhr
Werbung
Beiträge: 0
Registriert: Feb 2016


longCrew#2
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

Themenautor/in

18.11.2009, 12:41

ps folgende Fehlermeld erhalte ich


1061: Aufruf für eine möglicherweise nicht definierte Methode _AC_Filesüber einen Verweis mit statischem Typ mx.controls:DataGrid.   


ich lade daten in meine AC _AC_Files  -> diese werden auch angezeigt in meinen DataGird.
warum behauptet er dann das diese ArrayCollection  wenn ich die meth onItemDoubleClick aufrufe nicht exestiert???? Obwohl diese im Datagird angezeigt werden und ich sogar den richtigen Index auslesen kann??
Die Lösung ist: das Suchen.
LongCrew = 2 people
Geändert von longCrew am 18.11.09 um 12:42 Uhr
springer#3
Benutzerbild von springer
Beiträge: 4909
Wohnort: zuhaus
Registriert: Apr 2004

18.11.2009, 12:42

hi,
wie sehen denn die "items" in der collection aus?
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
longCrew#4
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

Themenautor/in

18.11.2009, 12:45

hi springer,

die sehen so aus
ActionScript:
1_AC_Files.addItem({title: Title, album: Album, artist: Artist, track: Track, year: Year, genre: Genre, duration: Duration, url:URL});
Die Lösung ist: das Suchen.
LongCrew = 2 people
Geändert von longCrew am 18.11.09 um 12:48 Uhr
Werbung
Beiträge: 0
Registriert: Feb 2016


longCrew#5
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

Themenautor/in

18.11.2009, 12:57

die werden erst erstellt aber in ner extra .as-datei
über getter/setter wird auf das _AC_Files zugegriffen
Die Lösung ist: das Suchen.
LongCrew = 2 people
springer#6
Benutzerbild von springer
Beiträge: 4909
Wohnort: zuhaus
Registriert: Apr 2004

18.11.2009, 12:58

hmm,

ActionScript:
1
2
3
4
5
6
private function onItemDoubleClick(event:ListEvent):void
        {
            trace(this.songList.indexToItemRenderer(this.songList.selectedIndex).data.url); // ist etwas schwachsinnig aber geht auch...
            trace(event.itemRenderer.data.url)
            trace(this.songList.selectedItem.url)
        }


ActionScript:
1
2
3
4
5
<mx:DataGrid id="List" // oben steht songList ?
            dataProvider="_AC_Files" // das funktioniert ?
            doubleClickEnabled="true"
            itemClick="onItemDoubleClick(LEevent)"> // dir ist schon bewusst, dass dieses event bei click, und nicht bei doubleClick ausgelöst wird ? LEevent ?
      <mx:columns>
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
longCrew#7
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

Themenautor/in

18.11.2009, 13:07

hi springer,

ja des war noch ein altes beispiel habs nur falsch reinkopiert.

dataProvider wird so hinzugefügt
ActionScript:
1
2
3
4
5
6
7
8
9
10
public function set AC_Files( AC_Files:ArrayCollection ) : void
           {
               _AC_Files= AC_Files;
                    List.dataProvider = _AC_Files;
                
                //is für dne gtter
                 dispatchEvent( new Event( "injectorValueChanged" ) );
                
              
           }


zu 2tens ja is mir wie gesagt schon einiges rumprobiert und deshalb übersieht man solange etwas nicht funkt so schönheitsfehler;) (ich jedenfalls;)

es fkt nicht wenn ich es so mache wie du meinst er schmeisst dann folgende fehlermeld:
#1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
Die Lösung ist: das Suchen.
LongCrew = 2 people
springer#8
Benutzerbild von springer
Beiträge: 4909
Wohnort: zuhaus
Registriert: Apr 2004

18.11.2009, 13:10

hmm, müsste eigentlich gehen.. kannst du nochmals den "aktuellen" code von dir posten...

bei mir gehts so:

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
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Script>
   <![CDATA[
      import mx.events.ListEvent;
      import mx.collections.ArrayCollection;
      [Bindable]
      private var _AC_Files:ArrayCollection;
      
      private function init():void{
         this._AC_Files = new ArrayCollection();
         for(var i:uint = 0; i < 20; i++){
            _AC_Files.addItem({title: "Title"+i, album: "Album"+i, url:"URL"+i,data:"data"+i});
         
         }
         
      }
      
      private function onItemDoubleClick(event:ListEvent):void
        {
           trace(this.songList.indexToItemRenderer(this.songList.selectedIndex).data.url);
            trace(event.itemRenderer.data.url)
            trace(this.songList.selectedItem.url)
        }
   ]]>
</mx:Script>
   <mx:DataGrid id="songList"
            dataProvider="{this._AC_Files}"
            doubleClickEnabled="true"
            itemClick="onItemDoubleClick(event)">
      <mx:columns>
            <mx:DataGridColumn width="168" headerText="data" dataField="data"  />
     
           
        </mx:columns>
    </mx:DataGrid>
</mx:WindowedApplication>
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
longCrew#9
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

Themenautor/in

18.11.2009, 13:12

hi springer jetz funktioniert es....

tausend dank nochmal;)
Die Lösung ist: das Suchen.
LongCrew = 2 people

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de