ComboBox dynamisch mit Inhalt füllen

visionsign

Mitglied
Hallo Community,

habe folgendes Anliegen!

Ich möchte gerne eine ComboBox dynamisch füllen.
Und zwar nach folgendem Muster:
Code:
  //Also das is kein code sondern so sieht man was ich will
  //Wenn language de ist, soll die box mit anderen inhalten gefüllt werden, also wenn language z.B. en ist!
  
  if($language = de){
  COMBO MIT DEUTSCHEM INHALT
  }

Ich hoffe das war jetzt verständlich ausgedrückt!
 
Hallo!

Sprichst du von der UI-Komponente der MX oder der MX2004-Version?

Grundsätzlich verstehe ich deine Frage nicht ganz. In deiner Flash-Hilfe sollten eigentlich die Befehle aufgeführt sein, mit denen du die ComboBox via ActionScript instanzieren und auch füllen kannst. Die Bedingung ist da nur zweitrangig, d.h. wird nach der Lektüre der Flash-Hilfe kein Problem mehr sein. Gib doch einfach mal deine Version von Flash an, weil das schon einen Unterschied macht. Solltest du MX besitzen, muss ich passen, weil das hab ich nicht mehr und hab auch nicht mehr alle Komponenten und deren Methoden so auf Abruf im Kopf. Andrerseits helf ich dir gerne weiter, lies einfach mal die Flash-Hilfe und probiers mal auf diesem Weg.

Gruss
 
Also, ich nutze Flash MX 6.0 (ist Pflicht, da Kundenwunsch)

Also ich versuche das ganze nochmal etwas sinniger zu erklären.
Sinn und zweck der Sache ist einfach, dass der User auf einer Website zwischen Deutsch und Englisch wählen kann. Tut er das, wird eine PHP Variable befüllt. In dem Fall ist es $language = 'de' oder 'en', je nach sprache. Da ich nicht für alle Sprachen einzelne swfs machen möchte, hätte ich es gerne so, das die Inhalter der ComboBox mit deutschen Inhalten gefüllt werden, wenn $language = 'de' ist, oder entsprechend mit Englischen, wenn $language = 'en' is! So ich denke das war jetzt etwas besser formuliert und einfach zu verstehen!

lg
 
Hi,

Zuerst musst Du die Variable von PHP an Flash übergeben, am besten als FlashVars:
PHP:
echo('<param name="flashvars" value="language='.$language.'">');

Dann würde ich für die verschiedenen Sprachen Arrays mit den Bezeichnungen und Werten für die Einträge anlegen:
PHP:
var names_de = new Array(); // Namen auf Deutsch hier hinein
var names_en = new Array(); // Namen auf Englisch
var data_de = new Array(); // Daten auf Deutsch
var data_en = new Array(); // Daten auf Englisch
Wenn $language bekannte Werte (z.B. "de" oder "en") annehmen kann, kannst Du Dir eine if-Abfrage sparen, wenn Du die Arrays entsprechend benennst und die Kombobox in einer Schleife füllen:
PHP:
// Wenn nix übergeben wurde: Deutsch
if (language == undefined) language = "de";

for (var i=0; i<this["names_" + language].length; i++) {
	meine_combo.addItem(this["names_" + language][i], this["data_" + language][i])
}

Gruß

P.S.: hätte nicht gedacht, dass ich nochmal Flash 6 rauskrame... ;)

EDIT @lue_the_duke: Sorry, ich will Dir echt nicht immer dazwischenpfuschen... :-(
.
 
Zuletzt bearbeitet:
Hallo!

Also wie schon gesagt, die MX-Komponenten hab ich nicht mehr so frisch, die funktionieren auch anders als in MX2004. Wenn du mal deine Flash-Hilfe nach dem Begriff "ComboBox-Klasse" bzw. class durchsuchst, solltest du eine Auflistung aller Funktionen der ComboBox kriegen. Dort solltest du eigentlich auch die Funktionen "ComboBox.addItem()" usw. ausgegeben bekommen. Nun gehst du nach folgendem Muster vor:

Du setzst eine ComboBox auf die Stage und definierst deren Eigenschaften im ersten Keyframe des Films. Da solltest du auch die Bedingung einbauen. Das könnte etwa wie folgt aussehen:

PHP:
//du holst dir die Daten aus z.B. einer PHP-Datei
if (sprache == "en") {
 for (i=0;i<anzahl; i++) {
      meineCombo.addItem ("en_titel"+i, "en_data"+i);
  }
} else {
  for (i=0;i<anzahl; i++) {
      meineCombo.addItem ("en_titel"+i, "en_data"+i);
  }
}

Wenn du die ComboBox bloss als Textfenster benutzen willst, dann sollte es etwa so aussehen:
PHP:
if (sprache == "en") {
 meineCombo.text = en_text;
} else {
  meineCombo.text = de_text;
}

Leider kann ich dir hier nicht mehr bieten, als diesen Denkanstoss, da ich die Komponenten-Methoden der MX-Version nicht mehr präsent habe.

Gruss

EDIT:

Mal wieder zu langsam...
 
Zuletzt bearbeitet:
Hallo zurück,

hehe ja das mit Flash 6 ist sone sache aber wenns gewünscht ist!

Vielen dank für die Kompetente Antwort, das ist exact die Lösung meines Problems!

MERCI!
 

Neue Beiträge

Zurück