Zurück   Flashforum > Flash > Flash erweitern > Komponenten und SmartClips

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-10-2008, 11:09   #1 (permalink)
Rhett Butler
 
Benutzerbild von RhettButler
 
Registriert seit: Nov 2006
Beiträge: 522
ComboBox.value Problem

Servus!


Ich habe meine ComboBox (Instanzname: CB) mit folgenden Werten (data) befüllt:
ActionScript:
  1. _level0.mc.hugo3;
  2. _level0.mc.hugo2;
  3. _level0.mc.hugo1;

Jetzt möchte ich diese Inhalte (CB.value) als Parameter in eine Funktion übergeben, wenn ein Inhalt ausgewählt wird:
ActionScript:
  1. function testF(target:Object) {
  2.  trace(target);
  3. }
  4.  
  5. var listenerObject:Object = new Object();
  6. listenerObject.change = function(eventObject:Object) {
  7.         trace("Value: "+CB.value);
  8.     testF(CB.value);
  9. };
  10. CB.addEventListener("change",listenerObject);

Meine Ausgabe der traces sehen jedoch so aus:
ActionScript:
  1. //Value: _level0.mc.hugo3
  2. //undefined
  3.  

Und das ist für mich das erstaunliche. Bei einer Auswahl von CB wird das CB.value richtig getraced. Warum aber nicht, wenn die Funktion testF() aufgerufen und das Objekt als Parameter übergeben wird?
RhettButler ist offline   Mit Zitat antworten
Alt 27-10-2008, 11:36   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
->verschoben

Check mal, ob das Problem auch auftritt, wenn du den ermittelten Wert über das EventObject.target ermittelst.
PHP-Code:
var listenerObject:Object = new Object();
listenerObject.change = function(eventObj:Object) {
   var 
eventSource eventObj.target;
   var 
theSelectedItem eventSource.selectedItem;
    
trace("eventSource: "+eventSource);
    
trace("theSelectedItem: "+theSelectedItem);
    
testF(theSelectedItem);

};
CB.addEventListener("change",listenerObject); 

Geändert von agedoubleju (27-10-2008 um 12:08 Uhr)
  Mit Zitat antworten
Alt 27-10-2008, 11:48   #3 (permalink)
Rhett Butler
 
Benutzerbild von RhettButler
 
Registriert seit: Nov 2006
Beiträge: 522
Zitat:
Zitat von agedoubleju Beitrag anzeigen
->verschoben

Check mal, ob das Problem auch auftritt, wenn du den ermittelten Wert über das EventObject.target ermittelst.


Logischer Weise ja. Denn es exisitiert eventObj.target ja nicht.
target wird erst bei der Funktion testF als Parameter ins Leben gerufen. Innerhalb des Listeners existiert dieser noch nicht.
RhettButler ist offline   Mit Zitat antworten
Alt 27-10-2008, 12:10   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Hab den Objektbezeichner mal angepasst, damit sollte es aber funzen. Wenn nicht: hast du in der CB Instanznamen oder Strings gesetzt? Hast du die über addItem oder den dataProvider gesetzt? Zeig mal die fla...
  Mit Zitat antworten
Alt 28-10-2008, 10:42   #5 (permalink)
Rhett Butler
 
Benutzerbild von RhettButler
 
Registriert seit: Nov 2006
Beiträge: 522
Hab den Fehler gefunden!

Es liegt an einer Typendiskrepanz, welche von Flash jedoch nicht als Fehlermeldung ausgegeben wird. Dieser Bug wird einfach unter den Tisch gekehrt.

Die Lösung:
ActionScript:
  1. testF(target:String) {
  2.    var ta:MovieClip=eval(target);

Mit eval kann man sich helfen.

Jetzt habe ich jedoch noch ein weiteres Problem:
In der Funktion, wenn ich diese ausbaue, soll sich testF() selbstständig, nach einem bestimmten Kriterium, aufrufen.

Beispiel:
ActionScript:
  1. testF(target:String) {
  2.    trace(target);
  3.    var ta:MovieClip=eval(target);
  4.    if(_root.VAR == 1) testF(ta);
  5. }

Wenn die Funktion sich selbst jetzt aufruft und den Parameter ta mitschickt so sieht mein Trace so aus:

ActionScript:
  1. // undefined
  2.  

Wieso schon wieder ein undefined?
RhettButler 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 aus.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 13:36 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele