Label einer Combobox abfragen und vergleichen

DJTrancelight

Erfahrenes Mitglied
Hallo zusammen,

ich möchte gerne eine Combobox (Flashkomponente) erstellen bei der ich sagen kann, wenn das Label x ausgewählt ist, dann tu das...

Das funktioniert prima, wenn ich das mit der Index-Positon realisiere, oder die Labelbeschriftung nur aus einem Wort besteht.

PHP:
if (combo.getSelectedIndex() == 0) {
		//tu etwas
}

oder mit dem Label

if(combo.getSelectedItem().label == "neu"){
		trace("es geht")
}

Wenn das Label jedoch z.B. "Aufgaben hier lösen" heißt, so verweigert Flash mir den Dienst.

Ich kann zwar momentan damit leben, wenn ich aber später die Liste in der Combobox erweitern und sortieren möchte, so habe ich natürlich ein Problem mit den Index-Nummern.

Gibt es da vielleicht einen Trick, wie ich das doch mit den längeren Labels hinbekommen kann?

Vielen Dank für eure Hilfe.

Schöne Grüße
DJ Trancelight
 
Hi,

mit einem Event-Listener habe ich keine Probleme, auch längere Strings mit Umlauten zu vergleichen:
Code:
var t = "Aufgaben hier lösen";

var l = new Object();

l.change = function(eo) {
	var l = eo.target.selectedItem.label;
	if (l == t) trace("ja");
}

combo.addEventListener("change", l);

Gruß
.
 
Hi Tobias,

vielen Dank für deine schnelle Antwort.
Ui, da muss ich erst mal schauen, ob das überhaupt in Flash MX geht.
Sorry, hatte vergessen das dazuzuschreiben.

Also addEventListener habe ich bis jetzt noch nicht in der Referenz für MX gesehen.
Ich habe das mit der Combobox so gelöst gehabt.
PHP:
combo.setChangeHandler("funktionsname");
Viele Grüße
 
Zuletzt bearbeitet:
Hi,

nein, mit Flash 6 (MX) kommst Du da nicht weiter. Ich hatte mich auf die 8er-Komponenten bezogen.

Leider kann ich mit Flash 8 keine 6er-Komponenten erzeugen - poste bitte einmal Deine Datei (samt Kombobox) und ich schau es mir gerne mal an.

Gruß
.
 
Hi Tobias,

das ist total nett von dir!

Einzel zu lösende Probleme, lagere ich immer aus, sprich - ich teste es in einer kleinen Flashdatei, wie die angehängte. Somit ist es für dich auch übersichtlicher.

Vielen lieben Dank und schöne Grüße!
 

Anhänge

  • combotest.zip
    50,9 KB · Aufrufe: 27
Hi,

bei mir funktionierts mit Deinem Ansatz problemlos.

Zur Sicherheit könntest Du die label-Eigenschaft noch explizit in einen String umwandeln:
Code:
function comboListener() {
	switch(combo.getSelectedItem().label.toString()) {
		case "Aufgabe lösen": trace("lösen"); break;
		case "Aufgabe stellen": trace("stellen"); break;
		case "neu": trace("neu"); break;
	}
}

Gruß
.
 
Einfach genial Tobias Genau die Lösung mit .toString() habe ich gesucht. Nur hab ich in der Komponenten Referenz ComboBox nach so einer "vorprogrammierten" Lösung geschaut und an .toString() nicht mehr gedacht, hihi :)
Super, es klappt jetzt.

Vielen lieben Dank und schöne Grüße
DJ Trancelight
 
Zurück