Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-10-2005, 21:47   #1 (permalink)
aus dem FF
 
Registriert seit: Jun 2001
Ort: Munich
Beiträge: 1.306
ComboBox dynamisch füllen mit dataProvider - soon Haaaals

Aloa,

ich versuche eine ComboBox dynamisch zu füllen. Da Daten kommen aus einem php Script. Es sind zwei Arrays, id und linkt. Linkt ist das label und id ist data.
Hab hier schon einige threads dazu gefunden, aber die konnten mir nicht so recht weiterhelfen. wie setz ich noch die aktion in die CB?

ActionScript:
  1. //
  2. function mainAuswerten (link, cb, zielFunc, parent)
  3. {
  4.     mainvars = new LoadVars ();
  5.     mainvars.parent = parent;
  6.     mainvars.load (link, parent);
  7.     mainvars.onLoad = function (success)
  8.     {
  9.         if (success)
  10.         {
  11.             linkt = this.linkt.split (",");
  12.             id = this.id.split (",");
  13.             fillComboBox (cb, zielFunc, linkt, id);
  14.             delete linkt;
  15.             delete id
  16.         }
  17.         else
  18.         {
  19.             trace ("Fehler");
  20.         }
  21.     };
  22. }
  23. mainAuswerten (_global.myURL + "getmenu.php", mainCB, "nextCbFunc");
  24. //
  25. // Füllt passende ComboBox mit Daten aus der DB
  26. function fillComboBox (cb, zielFunc, linkt, id)
  27. {
  28.     dp = new Array ();
  29.     for (i = 0; i <= linkt.length - 1; i++)
  30.     {
  31.         trace (linkt[i]);
  32.         dp = ({label:linkt[i], data:id[i]});
  33.         cb.addItem (dp);
  34.     }
  35.     trace (cb);
  36.     cb.dataProvider = dp;
  37. }

bevor ich Daten in der CB benötigt habe, war meine Lösung so:
ActionScript:
  1. function fillComboBox(cb, arrData, zielFunc) {
  2.     cb.setDataProvider(arrData);
  3.     cb.setSelectedIndex(0);
  4.     cb.setChangeHandler(zielFunc, this);
  5. }

greets
pixel
__________________
Erfolg hat nur der, der etwas tut während er auf den Erfolg wartet.

Nicht klicken!
piXeLfanatiker ist offline   Mit Zitat antworten
Alt 13-10-2005, 22:57   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
ActionScript:
  1. lg = 4;//Menge der Einträge
  2. for(var i=0;i<lg;i++){
  3. _level0["item"+i] = {label: linkt[i], data: id[i]};//item-Objekte erstellen
  4. myComboBox.addItem(_level0["item"+i]);//CB befüllen
  5. }
  6.  
  7.  
  8. myComboBoxListener = new Object();
  9. myComboBoxListener.change = function(eventObj){
  10.     var eventSource = eventObj.target;
  11.     var theSelectedItem = eventSource.selectedItem;
  12.     var theSelectedItemLabel = theSelectedItem.label;
  13.     var dat = theSelectedItem.data;       
  14.     trace ( "Label="+theSelectedItemLabel+".");
  15.     trace ( "Data"+dat);
  16.    
  17. }
  18. //listener antackern
  19. myComboBox.addEventListener ("change", myComboBoxListener);
  Mit Zitat antworten
Alt 13-10-2005, 23:36   #3 (permalink)
aus dem FF
 
Registriert seit: Jun 2001
Ort: Munich
Beiträge: 1.306
hoi, öh danke für die hilfe.

ActionScript:
  1. // Füllt passende ComboBox mit Daten aus der DB
  2. function fillComboBox (cb, zielFunc, linkt, id)
  3. {
  4.     for (var i = 0; i < linkt.length; i++)
  5.     {
  6.         _level0["item" + i] = {label:linkt[i], data:id[i]};
  7.         cb.addItem (_level0["item" + i]);
  8.     }
  9. }
  10. // Listener
  11. myComboBoxListener = new Object ();
  12. myComboBoxListener.change = function (eventObj)
  13. {
  14.     var eventSource = eventObj.target;
  15.     var theSelectedItem = eventSource.selectedItem;
  16.     var theSelectedItemLabel = theSelectedItem.label;
  17.     var dat = theSelectedItem.data;
  18.     trace ("Label=" + theSelectedItemLabel + ".");
  19.     trace ("Data" + dat);
  20. };

klappt soweit - man sollte auch auf AS2 und den Flashplayer8 beim Veröffentlichen einstellen - ist halt scho spät.
Wie klatsch ich da jetzt noch eine Aktion rein, das zb eine function aufgerufen wird die an die combobox gegeben wurde?
ActionScript:
  1. mainAuswerten (_global.myURL + "getmenu.php", mainCB, "nextCbFunc");
Diese function muss für mehrer ComboBoxen herhalten ;-)
__________________
Erfolg hat nur der, der etwas tut während er auf den Erfolg wartet.

Nicht klicken!

Geändert von piXeLfanatiker (13-10-2005 um 23:53 Uhr)
piXeLfanatiker ist offline   Mit Zitat antworten
Alt 14-10-2005, 00:05   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
Wie klatsch ich da jetzt noch eine Aktion rein, das zb eine function aufgerufen wird die an die combobox gegeben wurde?
Hab ich noch nicht verstanden...
  Mit Zitat antworten
Alt 14-10-2005, 00:20   #5 (permalink)
aus dem FF
 
Registriert seit: Jun 2001
Ort: Munich
Beiträge: 1.306
sorry, ich versuche es präzise:

Wenn ich in der CB etwas auswähle, soll eine bestimme function aufgerufen werden, die aber bereits hier definiert wird:

ActionScript:
  1. mainAuswerten ([color=#000084]_global[/color].myURL + "[color=#0000ff]getmenu.php[/color]", mainCB, "[color=#0000ff]nextCbFunc[/color]");

Derzeit ist ja so, das dieser Teil des Scriptes es mir möglich macht Aktionen auszuführen.
ActionScript:
  1. myComboBoxListener = [color=#000084]new[/color] [color=#000084]Object[/color]();
  2. myComboBoxListener.change = [color=#000084]function[/color](eventObj){
  3.         [color=#000084]var[/color] eventSource = eventObj.[color=#000084]target[/color];
  4.         [color=#000084]var[/color] theSelectedItem = eventSource.selectedItem;
  5.         [color=#000084]var[/color] theSelectedItemLabel = theSelectedItem.label;
  6.         [color=#000084]var[/color] dat = theSelectedItem.data;
  7.         [color=#000084]trace[/color] ( "[color=#0000ff]Label=[/color]"+theSelectedItemLabel+"[color=#0000ff].[/color]");
  8.         [color=#000084]trace[/color] ( "[color=#0000ff]Data[/color]"+dat);
  9.      
  10.  
  11. }
  12. [color=#878787]//listener antackern
  13. [/color]myComboBox.addEventListener ("[color=#0000ff]change[/color]", myComboBoxListener);
Da ich aber diese function welche das CB füllt dynamisch verwende,
sind das immer unterschiedliche functions die aufgerufen werden.

greets
flo
__________________
Erfolg hat nur der, der etwas tut während er auf den Erfolg wartet.

Nicht klicken!
piXeLfanatiker 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 01:05 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele