Wenn das Wörtchen wenn nicht wäre…

posted in: Allgemein

momentan arbeiten wir parallel schon in Flash unsere Navigation aus…
doch leider klappt es noch nicht so ganz wie es soll. Mit Hilfe eines Sliders wollen wir zu verschiedenen Frames springen, jenachdem an welcher Position der Slider losgelassen wird.
Aber irgendwie kommt er noch nicht mit den if Anwesungen klar und nimmt jede als true an.

Kleiner Codeauszug.
Vielleicht findet ja jemand den Fehler.
Besser wäre natürlich mit Case das zu lösen. Allderdings wusste ich nicht, wie das mit dem größer und kleiner als funktionieren soll.
//draggen stoppen und an Position springen
zoom.slider.onRelease = function() {
stopDrag();
var pos = zoom.slider._x;
trace(pos);
if (pos <30){ trace(“kleiner 30″); gotoAndStop(1); } else if (pos <60 ) { trace(“kleiner 60 größer als 30″); gotoAndStop(5); } else if (pos < 90) { gotoAndStop(10); } else if (pos < 120) { gotoAndStop(15); } else if (pos < 150) { gotoAndStop(20); } else { trace(“größer al 150″); gotoAndStop(5); } }

This entry was posted on 6. Juli 2010 at 10:51 and is filed under Allgemein (Tags: , ). You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Comments (5)

  • Jürgen sagt:

    Hi,

    Bei euren if-Abfragen fehlt noch eine kleine aber entscheidende Änderung. Die Ifs werden alle als “true” ausgewertet, weil z.B. x=30 ja kleiner ist als x=90 und ebenfalls kleiner als x=120, etc.

    Ihr müsstet also abfragen, ob der x-Wert des Sliders zwischen den Werten liegt. Also “kleinder als” und “nicht größer als”:

    if (pos 90){
    }

    … dann müsste es eigentlich klappen ;-)

  • Judith sagt:

    Sowohl mit dieser Variante
    1. Variante
    trace(pos);
    if (pos <30){
    trace("kleiner 30");
    gotoAndStop(1);
    }
    if (30 < pos <60 ) {
    trace("kleiner 60 größer als 30");
    gotoAndStop(5);
    }
    if (60< pos < 90) {
    gotoAndStop(10);
    }
    if (90< pos < 120) {
    gotoAndStop(15);
    }
    if (120< pos < 150) {
    gotoAndStop(20);
    }

    else {
    trace("größer al 150");
    gotoAndStop(5);
    }

    als auch mit dieser funktioniert es nicht.
    Die Ausgabe bei der zweiten Variante ist:
    27
    kleiner 30
    kleiner 60 größer als 30

    2. Variante
    var pos = zoom.slider._x;
    trace(pos);
    if (pos <30){
    trace("kleiner 30");
    gotoAndStop(1);
    }
    else if (pos <60 ) {
    trace("kleiner 60 größer als 30");
    gotoAndStop(5);
    }
    else if (pos < 90) {
    gotoAndStop(10);
    }
    else if (pos < 120) {
    gotoAndStop(15);
    }
    else if (pos < 150) {
    gotoAndStop(20);
    }

    else {
    trace("größer al 150");
    gotoAndStop(5);
    }

  • Jürgen sagt:

    Sorry, bei meinem ersten Kommentar ist die if-Abfrage wohl irgendwie “verschluckt” worden.

    Die Syntax, die ihr braucht ist folgende:

    if (pos>=30 && pos=60 && pos<90){
    trace ("größer/gleich 60, kleiner 90");
    }

    … das sollte klappen!?

  • Jürgen sagt:

    Ah, ich seh schon die Kommentar-Funktion filtert wohl einige Zeichen etc. raus. So stimmt’s nämlich wieder nicht.

    Schreibt am Besten mal ins Moodle Forum, dann antworte ich da ;-)

  • Judith sagt:

    ok ich habs bei Moodle gepostet.

Leave a Reply

Security Code: