Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-08-2004, 16:11   #1 (permalink)
Immerzu Lernende
 
Registriert seit: Jul 2004
Beiträge: 23
Question getSelectedItems

Hallo!

Ich habe mittlerweile zwei Formulare und die passenden PHPs erstellt, was alles soweit funktioniert *freu*. Nur mit einem Aspekt habe ich bei beiden Formularen ein Problem, trotz unendlich viel Lesens und Ausprobierens.

In beiden existierten jeweils zwei ListBoxen, je eine, aus der nur ein Wert ausgewählt werden kann, und je eine, in der Mehrfach-Auswahl möglich ist.

Diese ListBoxen lese ich neben anderen Werten mit new LoardVars aus, wobei ich ihnen getSelectedItem().label und getSelectedItems() zugerodnet habe.
Mit getSelectedItem().label (also für die Felder, die nur jeweils eine Auswahlmöglichkeit zulassen) habe ich beste Ergebnisse. Doch getSelectedItems() klappt nicht so, wie ich das gerne hätte.

Stelle ich auf getSelectedItems().labels, kommt gar kein Ergebnis, stelle ich auf getSelectedItems(), bekomme ich in meiner Rückmeldungs-Mail [objekt Objekt] - und zwar so häufig, wie Werte in der ListBox ausgewählt wurden.

ActionScript:
  1. // [...]
  2.  
  3. var daten = new LoadVars();
  4.  
  5. // [...]
  6.  
  7.   daten.buch = buch.getSelectedItem().label;
  8.   daten.spiele = spiele.getSelectedItems();
  9.  
  10. // [...]
  11.  

Wäre super, wenn mir hier geholfen werden könnte.

Sylvia
__________________
http://www.haus-der-kuenste.de

Kunst ist Magie, befreit von der Lüge, Wahrheit zu sein.
Adorno

Geändert von Esanofla (03-08-2004 um 16:14 Uhr)
Esanofla ist offline   Mit Zitat antworten
Alt 05-08-2004, 07:27   #2 (permalink)
glücklich
 
Registriert seit: Mar 2004
Ort: Berlin
Beiträge: 27
Hi,

was bekommst du denn, wenn du nach

PHP-Code:
daten.spiele spiele.getSelectedItems(); 
einen solchen trace machst:

PHP-Code:
trace(daten.spiele[0]); 
gruß brainyartist
brainyartist ist offline   Mit Zitat antworten
Alt 05-08-2004, 09:18   #3 (permalink)
Immerzu Lernende
 
Registriert seit: Jul 2004
Beiträge: 23
Hallo brainyartist!

Es kommt "undefined" im Ausgabefeld.
Die Positionen sind jedoch definiert, und zwar im Parameterfeld der Listbox - was ausreicht, wenn ich getSelectedIndices oder nur ein Feld mit getSelectedItem benutze.

Grüße
Sylvia
__________________
http://www.haus-der-kuenste.de

Kunst ist Magie, befreit von der Lüge, Wahrheit zu sein.
Adorno
Esanofla ist offline   Mit Zitat antworten
Alt 05-08-2004, 10:37   #4 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
statt...

spiele.getSelectedItems();

sollte das hier passen:

spiele.selectedItem.data;

bzw.

spiele.getSelectedItem().data;


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 05-08-2004, 12:55   #5 (permalink)
Immerzu Lernende
 
Registriert seit: Jul 2004
Beiträge: 23
Hallo kelor!

Hatte ich zwar schon mal, aber trotzdem habe ich es jetzt nochmal ganz bewußt ausprobiert. Ich bekomme daraus den ersten angeklickten Wert aus data zugemailt und alle weiteren Werte werden ignoriert.

Momentan steht alles auf getSelectedIndicies. Schon für die Spiel-HP wäre es aufwendig, den Index entsprechend zum Spiel zuzuordnen, aber nachdem das Spiele-Formular weitgehend funktionierte, habe ich auch für meine HP endlich mal ein zur HP passendes Bestellformular erstellt und hierbei könnte es kompliziert werden, immer nur die gerade aktuelle Index-Nr. zu sehen...

Ich finde das schon recht merkwürdig.
Mal so ganz ketzerisch gefragt... könnte es sein, daß mein persönliches Flash MX an dieser Stelle defekt ist??? Nein, wahrscheinlich nicht...

Grüße
Sylvia
__________________
http://www.haus-der-kuenste.de

Kunst ist Magie, befreit von der Lüge, Wahrheit zu sein.
Adorno
Esanofla ist offline   Mit Zitat antworten
Alt 05-08-2004, 15:13   #6 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
eher nicht...

aber davon ab...
getselecteditems soll ein array sein...?
also mehrfachauswahl?

denn das wäre es dann...

greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 05-08-2004, 18:43   #7 (permalink)
Immerzu Lernende
 
Registriert seit: Jul 2004
Beiträge: 23
Hi kelor!

Nun, wenn ich nicht alles gänzlich mißverstanden habe, steht zumindest die Verwendung von getSelectedItems genau so, wie ich es angewandt habe, in der Flash-Hilfe und im einem netten Buch namens "Flash MX und ActionSkript Kompendium", das hier neben mir liegt.

Es wird auch keine Alternative dazu angeboten.
Aber nun, das "völlig ahnunglos" unter meinem Namen ist ja nicht fishing for compliments, sondern die ungeschminkte Realität. Zwar lichtet sich so gaaaaaaaaaaaanz langsam der Nebel, aber ich weiß halt noch lange nicht genug.
Sollte es eine Alternative geben, wäre es toll, wenn Du sie mir verraten könntest.

Grüße
Sylvia
__________________
http://www.haus-der-kuenste.de

Kunst ist Magie, befreit von der Lüge, Wahrheit zu sein.
Adorno
Esanofla ist offline   Mit Zitat antworten
Alt 05-08-2004, 21:18   #8 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 70
Also, ich komm zwar aus Flash MX 2004, aber vielleicht hilft mein Ansatz ja:

ActionScript:
  1. tmpArray  = spiele.getSelectedItems();
  2. for(var i = 0; i < tmpArray.length; i++){
  3.     daten.spiele[i] = tmpArray.label; // oder tmpArray.data
  4. }

Nur so ein Gedanke....
Benjy ist offline   Mit Zitat antworten
Alt 06-08-2004, 07:38   #9 (permalink)
Immerzu Lernende
 
Registriert seit: Jul 2004
Beiträge: 23
Hi Benjy!

Leider kommt weder auf label noch auf data ein Ergebnis. Also gar keines. Nicht mal [objekt Objekt]. Schade.


@ all:
Ich danke Euch allen für Eure Tips und Ratschläge!!!
Sollte noch irgendwas in Euren Köpfen reifen - ich versuche alles!
Benutzt eigentlich jemand von Euch getSelectedItems erfolgreich?


Liebe Grüße
Sylvia
__________________
http://www.haus-der-kuenste.de

Kunst ist Magie, befreit von der Lüge, Wahrheit zu sein.
Adorno
Esanofla ist offline   Mit Zitat antworten
Alt 06-08-2004, 08:37   #10 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 70
mach mal bitte folgendes nach deinem Code von ganz oben:
ActionScript:
  1. for(var child in daten.spiele){
  2.  for(var child2 in daten.spiele[child]){ 
  3. trace("Eigenschaft: "+child2+" Wert: "+daten.spiele[child][child2]);
  4.  }
  5. }

Damit müsste man zumindest herausbekommen was für eigenschaften das [object Object] hat....

Schreib mal was da als Ausgabe rauskam!

P.S.: Das geht aber nur wenn in daten.spiele wirklich [object Object] drinne is...
Benjy ist offline   Mit Zitat antworten
Alt 06-08-2004, 10:52   #11 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
äähhmmm sorry...wenn ich blöd frag:

List

oder ComboBox

ListBoxen jibbet net...! *mal anmerk*

und dann:

Zitat:
List.selectedItems
Verfügbarkeit
Flash Player 6 Version 79.

Edition
Flash MX 2004.

Verwendung
listInstance.selectedItems

Beschreibung
Eigenschaft (schreibgeschützt); ein Array der ausgewählten Elementobjekte. In einer Liste, in der mehrere Elemente ausgewählt werden können, können Sie mit selectedItems auf den Satz der Elemente zugreifen, die als Elementobjekte ausgewählt wurden.

Beispiel
Im folgenden Beispiel wird ein Array ausgewählter Elementobjekte abgerufen:

var meinObjArray = meineList.selectedItems;

bzw. bei comboboxen...

Zitat:
ComboBox.selectedItem
Verfügbarkeit
Flash Player 6 Version 79.

Edition
Flash MX 2004.

Verwendung
meineComboBox.selectedItem

Beschreibung
Eigenschaft; der Wert des ausgewählten Elements in der Dropdown-Liste.

Bei bearbeitbaren Kombinationsfeldern ist der Rückgabewert von selectedItem nicht definiert, wenn Text in das Textfeld eingegeben wird. Der Wert ist nur definiert, wenn ein Element aus der Dropdown-Liste ausgewählt oder der Wert per ActionScript zugewiesen wurde. Bei statischen Kombinationsfeldern ist der Wert von selectedItem immer gültig.

Beispiel
Im folgenden Beispiel wird das ausgewählte Element (selectedItem) angezeigt, wenn der Datenprovider Grunddatentypen enthält:

var item = meineComboBox.selectedItem;
trace("Sie haben das Element " + item + " ausgewählt.");

Im folgenden Beispiel wird das ausgewählte Element (selectedItem) angezeigt, wenn der Datenprovider Objekte mit den Eigenschaften label und data enthält:

var obj = meineComboBox.selectedItem;
trace("Die Bezeichnung der gewählten Farbe lautet: " + obj.label);
trace("Der Hexadezimalwert der gewählten Farbe ist: " + obj.data);

von was reden wir hier nun, sylvia?...
denn bei beiden ist

getSelectedItems() noch nicht mal mehr in der hilfe zu finden....

getSelectedItems() kenn ich pers. nur aus Java ...
wird das tatsächlich so eingestezt...?
und wenn ja, für welche art von feld?
List
Combobox
was anderes?


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 06-08-2004, 11:09   #12 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
wie ich sgte...

kann man auf die Listbox-Elemente so zugreifen:

ActionScript:
  1. //myList ist eine listbox mit multiple=true
  2.  
  3. mc.onPress = function(){
  4.    var arr = myList.selectedItems;
  5.    trace('1.ELEMENT IST : '+arr[0].label);
  6.    trace('1.ELEMENT IST : '+arr[0].data);
  7. }
  8.  
  9.  
  10. //das ganze array
  11. for(var i=0; i<arr.length; i++){
  12.     trace(i+'. Element war : '+ arr[i].label+'\n\tundZiel ist : '+arr[i].data);
  13. }

das ist so...
in das array werden alle auswahlen als objekt abgelegt...mit den properties 'label' und 'data'

also unbenantesObjekt.data und unbenanntesObjekt.label


wenn ich z. bsp. das hier mache:

ActionScript:
  1. var obj = {};
  2. obj.__name = 'karl';
  3. obj.__age = 36;
  4.  
  5. trace(obj);

bekomme ich auch nur [object Object], ebenso ist es hier...

und nicht

getSelectedItems() nutzen...
da sist Java-style...auch wenn er geht...[was nur beweißt wie sehr man sich mittlerweile daran orientiert...]


greetz

kelor

Geändert von kelor (06-08-2004 um 11:13 Uhr)
kelor ist offline   Mit Zitat antworten
Alt 06-08-2004, 16:35   #13 (permalink)
Immerzu Lernende
 
Registriert seit: Jul 2004
Beiträge: 23
Hallo Benjy!

Heraus kommt tatsächlich der korrekte Index, auf Data habe ich für diese Experimentierphase nur mal Buchstaben angegeben, und auch der Labelwert ist korrekt. Sogar die Klickreihenfolge wurde richtig wiedergegeben.

Eigenschaft: __ID__ Wert: 2
Eigenschaft: label Wert: Umwelt-ABC
Eigenschaft: data Wert: c
Eigenschaft: __ID__ Wert: 3
Eigenschaft: label Wert: Bienenkorb
Eigenschaft: data Wert: d
Eigenschaft: __ID__ Wert: 1
Eigenschaft: label Wert: Siedler
Eigenschaft: data Wert: b
Eigenschaft: __ID__ Wert: 5
Eigenschaft: label Wert: Anno1503
Eigenschaft: data Wert: f

Jetzt müsste das "nur" noch gesendet werden...

Liebe Grüße
Sylvia
__________________
http://www.haus-der-kuenste.de

Kunst ist Magie, befreit von der Lüge, Wahrheit zu sein.
Adorno
Esanofla ist offline   Mit Zitat antworten
Alt 06-08-2004, 17:00   #14 (permalink)
Immerzu Lernende
 
Registriert seit: Jul 2004
Beiträge: 23
Hallo kelor!

Hm... also mir wird schon genau dieser Name für die Komponente angezeigt. Warte... mal sehen, ob ich die Definition aus der Hilfe (ActionScript-Lexikon direkt in Flash MX) ziehen kann... Ja, ging. Also es handelt sich um eine scrollbare Listenfeld-Komponente namens FListBox bzw. ListBox.

Direkt danach zitiere ich auch mal die Anwendung für getSelctedItems, wie sie mir in dem ActionScript-Lexikon präsentiert wird. Ich kannte es nur aus Flash. Erst während meiner Recherchen wurde mir bewußt, daß das auch für Java benutzt wird. An Java kann ich mich nicht gewöhnt haben, denn davon kenne ich gerade mal den Namen.

Deinen Vorschlag habe ich natürlich auch sehr sorgfältig ausgeführt und raus kam... leider nichts. Nicht mal das Ausgabefeld öffnete sich.
Ich habe Dich doch richtig verstanden - für jedes Objekt nochmal extra einen Eintrag mit .data und einen mit .label in das Array?!

Unter Umständen wäre das aber realtiv unpraktikabel im Einsatz, da ja auch immer der Eintrag und die komplette Reihenfolge aller Einträge im Script geändert werden müßte, wenn sich die Liste ändert. Wenn es nur so ginge, würde ich wahrscheinlich mit meinem Bestellformular bei Indices bleiben, bei dem Spieleformular wäre das dann noch abzuklären.

Liebe Grüße
Sylvia


Zitat:
ListBox-Komponente

Mithilfe der ListBox-Komponente können Sie scrollbare Listenfelder für die Auswahl von jeweils einem oder mehreren Elementen in einen Flash-Film einbinden. Die Werte für die Anzeige im Listenfeld werden im Dialogfeld Werte hinzugefügt, das erscheint, wenn Sie auf das Feld für den Parameter Labels oder Data klicken. Außerdem haben Sie die Möglichkeit, Einträge mithilfe der Methoden FListBox.addItem und FListBox.addItemAt hinzuzufügen.

Die ListBox-Komponente verwendet einen von Null ausgehenden Index, wobei das Element mit dem Indexwert 0 am Anfang der Liste angezeigt wird. Beim Hinzufügen, Entfernen oder Ersetzen von Listeneinträgen mithilfe der FListBox-Methoden müssen Sie unter Umständen den Indexwert des jeweiligen Listeneintrags angeben.Weitere Informationen hierzu finden Sie unter den folgenden Einträgen in der ActionScript-Referenz: FListBox.addItemAt, FListBox.removeItemAt, FListBox.replaceItemAt.
Zitat:
FListBox.getSelectedItems

Verfügbarkeit

Flash Player 6.

Verwendung

meinListenfeld.getSelectedItems()

Parameter

Keine.

Rückgaben

Ein Array oder undefined.

Beschreibung

Methode; gibt die gegenwärtig ausgewählten Elemente als Objekt-Array mit den Eigenschaften label und data zurück bzw. undefined, wenn kein Element ausgewählt ist. Anhand dieser Methode lassen sich in einem Listenfeld, in dem mehrere Elemente ausgewählt werden können, nur die Elemente abrufen, die gegenwärtig ausgewählt sind. Um in einem Listenfeld, in dem nur ein einzelnes Element ausgewählt werden kann, Informationen über das gegenwärtig ausgewählte Element abzurufen, verwenden Sie FListBox.getSelectedItem.

Beispiel

Der folgende Code ruft die Elemente ab, die gegenwärtig im Listenfeld wunschliste ausgewählt sind, und speichert sie in der Variablen meinObjektarray:

var meinObjektarray = wunschliste.getSelectedItems();
Siehe auch

FListBox.getSelectedItem, FListBox.setSelectMultiple
__________________
http://www.haus-der-kuenste.de

Kunst ist Magie, befreit von der Lüge, Wahrheit zu sein.
Adorno
Esanofla ist offline   Mit Zitat antworten
Alt 06-08-2004, 18:31   #15 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
ooohhh...

ich ahne...

in dem fall hast du natürlich recht...
flasgMX...*hehe *

in flashMX2004 find ich dazu gar nix mehr...*koppkratz*

das ist genau diese sch****...

sorry mein fehler...
das ding gibt´s nimmer im 2004er...und ich hab mittlerweile immer das auf, weil ich am buch schreiben bin...
*sorry for that*

aber es ist genauso, wei ich es oben beschrieben habe...

in mx
FListBox

ist in 2004

List
oder
Combobox

btw...
macht aber keinen unterschied...

das ding sollte dennoch so ansprechbar sein...like:
ActionScript:
  1. mc.onPress = function(){
  2.    var arr = myListBox.getSelectedItems();
  3.    trace('1.ELEMENT IST : '+arr[0].label);
  4.    trace('1.ELEMENT IST : '+arr[0].data);
  5. }
  6.  
  7.  
  8. //das ganze array
  9. for(var i=0; i<arr.length; i++){
  10.     trace(i+'. Element war : '+ arr[i].label+'\n\tundZiel ist : '+arr[i].data);
  11. }

geht das nicht?


und nochmals sorry...wegen der verwirrung

greetz

kelor
kelor ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele