Problem mit getSelectedItem()

Dagobert

Mitglied
Hallo!

Ich stehe mal wieder vor einem kleinen Problem und würde mich sehr über Hilfe freuen. Situaltion: Ich habe eine "list" Komponente auf der Bühne, deren Einträge durch eine XML Datei gefüllt werden. Mein Wunsch ist es, der Text der markierten Listenposition auszulesen und in ein Textfeld an die Maus zu haften (ein simuliertes Draggen von einem Eintrag quasi...). Leider scheitert es bei mir schon daran, den markierten Wert zu tracen. Wenn ich folgenden Code auf die Listbox lege:

Code:
on (release) {
selectedid = songList_ls.getSelectedItem();
trace(selectedid);
}

Gibt er mir nur ein "undefined" zurück. Liegt das an der XML Datei oder ist hier schon ein Fehler drin?


Schöne Grüße
 
Hi,

es gibt keine Methode namens "getSelectedItem" - allerdings gibt es eine Eigenschaft "selectedItem", die ein Item-Objekt zurück gibt. Mit
Code:
trace(songList_ls.selectedItem.label);
solltest Du die Beschriftung des ausgewählten Elements ausgegeben bekommen.

Gruß
.
 
In dem Fall müsstest Du bitte die Datei (oder zumindest den kompletten Code) posten. Ich kann ja nicht wissen, ob das Objekt überhaupt an dieser Stelle definiert oder korrekt adressiert ist. Wo steht dieser Code? Wann wird er ausgeführt? Wo befindet sich die Komponente und was ist zu diesem Zeitpunkt in diese eingetragen?

Gruß
.
 
Alles klar, habe den entsprechenden Teil mal in eine ZIP gepackt und mitgeschickt. Die Audiofiles aus der Tabelle sind nicht dabei, müsste aber auch so funktionieren!

Grüße
 

Anhänge

Hi,

wenn ich einen MovieClip auf die Bühe setze (Instanzname "but") und folgenden Code notiere:
Code:
but.onRelease = function() {
	trace(songList_ls.selectedItem.label);
}
, bekomme ich eine Ausgabe.

Wenn Du Deinen Code direkt auf dem Button notiert hast (Du verwendest ja eine on(release)-Funktion), und es sich bei diesem Button um einen MovieClip (kein Schaltflächenobjekt) handelt, musst Du innerhalb der Ereignisfunktion auf _root adressieren, um die List-Komponente anzusprechen:
Code:
on(release) {
	trace(_root.songList_ls.selectedItem.label);
}
(statt _root kann auch _parent verwendet werden - siehe für nähere Erklärungen in der Referenz unter "_parent" und "_root")

Gruß
.
 
Erstmal Danke für die Hilfe, kannst du die veränderte Datei mal online stellen? Irgendwie raff ich das bei mir noch nicht so ganz...


Grüße
 
Zurück