Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-11-2008, 13:35   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Beiträge: 41
Addieren von Slider-Komponenten-Werte

Hallo zusammen,

vorneweg, ich habe von AS3 recht wenig Ahnung, benötige es aber dennoch. Ich habe auf meiner Bühne 4 Slider-Instanzen (Werte von 0 -100) und möchte gerne i einem dynamischen Textfeld die Summe der 4 Werte ausgeben. Nur weiß ich nicht, wie das geht - habe schon alles probiert, aber irgendwie hauts nicht hin. Hier mal mein AS-Code:

HTML-Code:
import fl.controls.Slider;
import fl.events.SliderEvent;
//import fl.controls.Label;

reg01.addEventListener(SliderEvent.CHANGE, changeHandler);
reg02.addEventListener(SliderEvent.CHANGE, changeHandler2);
reg03.addEventListener(SliderEvent.CHANGE, changeHandler3);
reg04.addEventListener(SliderEvent.CHANGE, changeHandler4);
//erg_num.addEventListener(SliderEvent.CHANGE, erg);

function changeHandler(event:SliderEvent):void {
    reg01_text.text = event.value + "%";
}

function changeHandler2(event:SliderEvent):void {
	reg02_text.text = event.value + "%";
}

function changeHandler3(event:SliderEvent):void {
    reg03_text.text = event.value + "%";
}

function changeHandler4(event:SliderEvent):void {
	reg04_text.text = event.value + "%";
}



/*function erg(reg01_text:String, reg02_text:String):void {
	erg_num.text = reg01_text + reg02_text;
	}*/
Ich habe meinem dyn. Textfeld den Instanznamen "erg_num" gegeben. Kann mir jemand einen hilfreichen Tipp geben? Das wäre super…

Ich bedanke mich im Voraus für eure Hilfe,
Basti
basti_b ist offline   Mit Zitat antworten
Alt 04-11-2008, 13:41   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
Ein eventListener reicht und in dem kommt dann sowas wie:
ActionScript:
  1. erg_num.text = reg01.value + reg02.value;
Omega Psi ist offline   Mit Zitat antworten
Alt 04-11-2008, 13:51   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Beiträge: 41
Zitat:
Zitat von Omega Psi Beitrag anzeigen
Ein eventListener reicht und in dem kommt dann sowas wie:
ActionScript:
  1. erg_num.text = reg01.value + reg02.value;
Danke für die schnelle Antwort, nur stehe ich komplett auf dem Schlauch - wie meinst du das? Kannst du mir das kurz anhand eines Quellcode-Beispiels zeigen?
basti_b ist offline   Mit Zitat antworten
Alt 04-11-2008, 13:56   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
ActionScript:
  1. import fl.controls.Slider;
  2. import fl.events.SliderEvent;
  3.  
  4. reg01.addEventListener(SliderEvent.CHANGE, eventListener);
  5. reg02.addEventListener(SliderEvent.CHANGE, eventListener);
  6. reg03.addEventListener(SliderEvent.CHANGE, eventListener);
  7. reg04.addEventListener(SliderEvent.CHANGE, eventListener);
  8.  
  9. function eventListener(event:Event):void {
  10.     erg_num.text = reg01.value + reg02.value + reg03.value + reg04.value;
  11. }
Ausserdem rate ich dir zu vernünftigen Bezeichnern... sowas liest sich nicht sehr schön.
Omega Psi ist offline   Mit Zitat antworten
Alt 04-11-2008, 14:09   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Beiträge: 41
Zitat:
Zitat von Omega Psi Beitrag anzeigen
ActionScript:
  1. import fl.controls.Slider;
  2. import fl.events.SliderEvent;
  3.  
  4. reg01.addEventListener(SliderEvent.CHANGE, eventListener);
  5. reg02.addEventListener(SliderEvent.CHANGE, eventListener);
  6. reg03.addEventListener(SliderEvent.CHANGE, eventListener);
  7. reg04.addEventListener(SliderEvent.CHANGE, eventListener);
  8.  
  9. function eventListener(event:Event):void {
  10.     erg_num.text = reg01.value + reg02.value + reg03.value + reg04.value;
  11. }
Ausserdem rate ich dir zu vernünftigen Bezeichnern... sowas liest sich nicht sehr schön.
Hm, da bringt er mir folgende Fehlermeldung:

1067: Implizite Umwandlung eines Werts des Typs Number in einen nicht verwandten Typ String.

Ausserdem möchte ich gerne hinter jedem Slider den jeweiligen Wert sehen PLUS eben den Gesamtwert. Ist das mit dieser Lösung machbar? Soll ich dir die .fla mal schicken?

Geändert von basti_b (04-11-2008 um 14:11 Uhr)
basti_b ist offline   Mit Zitat antworten
Alt 04-11-2008, 14:13   #6 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
ActionScript:
  1. import fl.controls.Slider;
  2. import fl.events.SliderEvent;
  3.  
  4. reg01.addEventListener(SliderEvent.CHANGE, eventListener);
  5. reg02.addEventListener(SliderEvent.CHANGE, eventListener);
  6. reg03.addEventListener(SliderEvent.CHANGE, eventListener);
  7. reg04.addEventListener(SliderEvent.CHANGE, eventListener);
  8.  
  9. function eventListener(event:Event):void {
  10.     erg_num.text = (reg01.value + reg02.value + reg03.value + reg04.value) as String;
  11. }
Die Labels hattest du nicht erwähnt - da verfährst du wie in deinem ersten Code. Das ist schon der richtige Weg.
Omega Psi ist offline   Mit Zitat antworten
Alt 04-11-2008, 14:21   #7 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Beiträge: 41
Zitat:
Zitat von Omega Psi Beitrag anzeigen
ActionScript:
  1. import fl.controls.Slider;
  2. import fl.events.SliderEvent;
  3.  
  4. reg01.addEventListener(SliderEvent.CHANGE, eventListener);
  5. reg02.addEventListener(SliderEvent.CHANGE, eventListener);
  6. reg03.addEventListener(SliderEvent.CHANGE, eventListener);
  7. reg04.addEventListener(SliderEvent.CHANGE, eventListener);
  8.  
  9. function eventListener(event:Event):void {
  10.     erg_num.text = (reg01.value + reg02.value + reg03.value + reg04.value) as String;
  11. }
Die Labels hattest du nicht erwähnt - da verfährst du wie in deinem ersten Code. Das ist schon der richtige Weg.
Sorry, hatte ich vergessen zu erwähnen...
Also ich habe jetzt diesen AS-Code hier:

HTML-Code:
import fl.controls.Slider;
import fl.events.SliderEvent;
//import fl.controls.Label;

reg01.addEventListener(SliderEvent.CHANGE, changeHandler);
reg02.addEventListener(SliderEvent.CHANGE, changeHandler2);
reg03.addEventListener(SliderEvent.CHANGE, changeHandler3);
reg04.addEventListener(SliderEvent.CHANGE, changeHandler4);

function changeHandler(event:SliderEvent):void {
    reg01_text.text = event.value + "%";
}

function changeHandler2(event:SliderEvent):void {
	reg02_text.text = event.value + "%";
}

function changeHandler3(event:SliderEvent):void {
    reg03_text.text = event.value + "%";
}

function changeHandler4(event:SliderEvent):void {
	reg04_text.text = event.value + "%";
}

function eventListener(event:Event):void {
    erg_num.text = (reg01.value + reg02.value + reg03.value + reg04.value) as String;
}
Aber es funktioniert leider immer noch nicht - kann doch eigentlich nicht so schwer sein
basti_b ist offline   Mit Zitat antworten
Alt 04-11-2008, 14:23   #8 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
ActionScript:
  1. import fl.controls.Slider;
  2. import fl.events.SliderEvent;
  3.  
  4. reg01.addEventListener(SliderEvent.CHANGE, changeHandler);
  5. reg01.addEventListener(SliderEvent.CHANGE, eventListener);
  6. reg02.addEventListener(SliderEvent.CHANGE, changeHandler2);
  7. reg02.addEventListener(SliderEvent.CHANGE, eventListener);
  8. reg03.addEventListener(SliderEvent.CHANGE, changeHandler3);
  9. reg03.addEventListener(SliderEvent.CHANGE, eventListener);
  10. reg04.addEventListener(SliderEvent.CHANGE, changeHandler4);
  11. reg04.addEventListener(SliderEvent.CHANGE, eventListener);
  12.  
  13.  
  14. function changeHandler(event:SliderEvent):void {
  15.     reg01_text.text = event.value + "%";
  16. }
  17.  
  18. function changeHandler2(event:SliderEvent):void {
  19.     reg02_text.text = event.value + "%";
  20. }
  21.  
  22. function changeHandler3(event:SliderEvent):void {
  23.     reg03_text.text = event.value + "%";
  24. }
  25.  
  26. function changeHandler4(event:SliderEvent):void {
  27.     reg04_text.text = event.value + "%";
  28. }
  29.  
  30. function eventListener(event:Event):void {
  31.     erg_num.text = (reg01.value + reg02.value + reg03.value + reg04.value) as String;
  32. }
Und so?
Omega Psi ist offline   Mit Zitat antworten
Alt 04-11-2008, 14:24   #9 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Beiträge: 41
Zitat:
Zitat von Omega Psi Beitrag anzeigen
ActionScript:
  1. import fl.controls.Slider;
  2. import fl.events.SliderEvent;
  3.  
  4. reg01.addEventListener(SliderEvent.CHANGE, changeHandler);
  5. reg01.addEventListener(SliderEvent.CHANGE, eventListener);
  6. reg02.addEventListener(SliderEvent.CHANGE, changeHandler2);
  7. reg02.addEventListener(SliderEvent.CHANGE, eventListener);
  8. reg03.addEventListener(SliderEvent.CHANGE, changeHandler3);
  9. reg03.addEventListener(SliderEvent.CHANGE, eventListener);
  10. reg04.addEventListener(SliderEvent.CHANGE, changeHandler4);
  11. reg04.addEventListener(SliderEvent.CHANGE, eventListener);
  12.  
  13.  
  14. function changeHandler(event:SliderEvent):void {
  15.     reg01_text.text = event.value + "%";
  16. }
  17.  
  18. function changeHandler2(event:SliderEvent):void {
  19.     reg02_text.text = event.value + "%";
  20. }
  21.  
  22. function changeHandler3(event:SliderEvent):void {
  23.     reg03_text.text = event.value + "%";
  24. }
  25.  
  26. function changeHandler4(event:SliderEvent):void {
  27.     reg04_text.text = event.value + "%";
  28. }
  29.  
  30. function eventListener(event:Event):void {
  31.     erg_num.text = (reg01.value + reg02.value + reg03.value + reg04.value) as String;
  32. }
Und so?

Da bringt er mir diese Fehlermeldung:

TypeError: Error #2007: Parameter text darf nicht 'null' sein.
at flash.text::TextField/set text()
at gewinnspiel_de_fla::MainTimeline/eventListener()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at fl.controls::Slider/doSetValue()
at fl.controls::Slider/calculateValue()
at fl.controls::Slider/doDrag()
basti_b ist offline   Mit Zitat antworten
Alt 04-11-2008, 14:28   #10 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
ActionScript:
  1. import fl.controls.Slider;
  2. import fl.events.SliderEvent;
  3.  
  4. reg01.addEventListener(SliderEvent.CHANGE, changeHandler);
  5. reg01.addEventListener(SliderEvent.CHANGE, eventListener);
  6. reg02.addEventListener(SliderEvent.CHANGE, changeHandler2);
  7. reg02.addEventListener(SliderEvent.CHANGE, eventListener);
  8. reg03.addEventListener(SliderEvent.CHANGE, changeHandler3);
  9. reg03.addEventListener(SliderEvent.CHANGE, eventListener);
  10. reg04.addEventListener(SliderEvent.CHANGE, changeHandler4);
  11. reg04.addEventListener(SliderEvent.CHANGE, eventListener);
  12.  
  13.  
  14. function changeHandler(event:SliderEvent):void {
  15.     reg01_text.text = event.value + "%";
  16. }
  17.  
  18. function changeHandler2(event:SliderEvent):void {
  19.     reg02_text.text = event.value + "%";
  20. }
  21.  
  22. function changeHandler3(event:SliderEvent):void {
  23.     reg03_text.text = event.value + "%";
  24. }
  25.  
  26. function changeHandler4(event:SliderEvent):void {
  27.     reg04_text.text = event.value + "%";
  28. }
  29.  
  30. function eventListener(event:Event):void {
  31.     erg_num.text = "" + (reg01.value + reg02.value + reg03.value + reg04.value);
  32. }
Omega Psi ist offline   Mit Zitat antworten
Alt 04-11-2008, 14:31   #11 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Beiträge: 41
Zitat:
Zitat von Omega Psi Beitrag anzeigen
ActionScript:
  1. import fl.controls.Slider;
  2. import fl.events.SliderEvent;
  3.  
  4. reg01.addEventListener(SliderEvent.CHANGE, changeHandler);
  5. reg01.addEventListener(SliderEvent.CHANGE, eventListener);
  6. reg02.addEventListener(SliderEvent.CHANGE, changeHandler2);
  7. reg02.addEventListener(SliderEvent.CHANGE, eventListener);
  8. reg03.addEventListener(SliderEvent.CHANGE, changeHandler3);
  9. reg03.addEventListener(SliderEvent.CHANGE, eventListener);
  10. reg04.addEventListener(SliderEvent.CHANGE, changeHandler4);
  11. reg04.addEventListener(SliderEvent.CHANGE, eventListener);
  12.  
  13.  
  14. function changeHandler(event:SliderEvent):void {
  15.     reg01_text.text = event.value + "%";
  16. }
  17.  
  18. function changeHandler2(event:SliderEvent):void {
  19.     reg02_text.text = event.value + "%";
  20. }
  21.  
  22. function changeHandler3(event:SliderEvent):void {
  23.     reg03_text.text = event.value + "%";
  24. }
  25.  
  26. function changeHandler4(event:SliderEvent):void {
  27.     reg04_text.text = event.value + "%";
  28. }
  29.  
  30. function eventListener(event:Event):void {
  31.     erg_num.text = "" + (reg01.value + reg02.value + reg03.value + reg04.value);
  32. }
PERFEKT, VIELEN DANK!! lag das nur an den Anführungszeichen bzw. dass es keinen Text gab?
basti_b ist offline   Mit Zitat antworten
Alt 04-11-2008, 14:57   #12 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
Der letzte Fehler ja...

Davor hattest du keine EventListener registriert.
Omega Psi ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
eventlistener, slider

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 12:52 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele