Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 19
  1. #1
    HTML 4 YOU ist offline Haudegen
    registriert
    23-07-2010
    Beiträge
    508

    Script erst NACH Schleife weiterladen

    Hey Leute,

    ist es iwie möglich ein Script erst weiterauszuführen, wenn eine Schleife beendet ist

    also so stell ich mir das vor:

    PHP-Code:
    function() {


        while() {            
    // Wird ausgeführt 
        
        
    }

       function 
    xyz() {     // Wird erst ausgeführt, wenn die Schleife beendet ist

       
    }

        


    Ist das iwie so möglich?
    Geändert von HTML 4 YOU (23-07-2010 um 21:55 Uhr)

  2. #2
    Avatar von Arcsinh
    Arcsinh ist offline Kaiser
    registriert
    03-06-2010
    Beiträge
    1.392

    AW: Script erst NACH Schleife weiterladen

    Einfach außerhalb der Schleife schreiben.
    Wenn du die Funktion xyz() ausführen willst, musst du die auch schon aufrufen...
    Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Goethe)

  3. #3
    HTML 4 YOU ist offline Haudegen
    registriert
    23-07-2010
    Beiträge
    508

    AW: Script erst NACH Schleife weiterladen

    Nein das mit function xyz() war nur so als platzhalter gemeint, ich meinte, dass danach iwelche befehle kommen.

    Also:

    PHP-Code:
    while() {

    }

    // iwelche Befehle die NACH der schleife ausgeführt werden:
    document.write('Test'); 

  4. #4
    Avatar von Arcsinh
    Arcsinh ist offline Kaiser
    registriert
    03-06-2010
    Beiträge
    1.392

    AW: Script erst NACH Schleife weiterladen

    Und wo ist dein Problem?
    Einfach die Anweisung nach der Schleife schreiben, z.B.:

    PHP-Code:
    var number 13;

    while(
    number 24) {
        
    document.write(number "<br />");
        
    number++;
    }
    document.write("ENDE"); 
    Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Goethe)

  5. #5
    Avatar von Albu
    Albu ist offline Super Moderator
    registriert
    04-07-2001
    Beiträge
    13.501

    AW: Script erst NACH Schleife weiterladen

    Zitat Zitat von HTML 4 YOU Beitrag anzeigen
    ich meinte, dass danach iwelche befehle kommen.
    Jetzt muss ich mal fragen: was meinst Du mit iWelche Befehle? Willst Du ein iPad oder iPhone ansteuern?
    1. Get people to play Space Taxi
    2. Sell real estates on neptun
    3. Profit!

    IE is not a browser, it is a scream.


    Outside of a dog, a book is man's best friend. Inside of a dog, it's too dark to read.

  6. #6
    HTML 4 YOU ist offline Haudegen
    registriert
    23-07-2010
    Beiträge
    508

    AW: Script erst NACH Schleife weiterladen

    ich schreib mal mein Problem:

    also, ich habe mir einen MooTools Code geschrieben, der ein paar Bilder so animiert, dass sie bei einem mouseover (mouseenter) sich vergrößern und nach rechts bewegen und beim mouseout (mouseleave) sich wieder verkleinern und an die richtige Stelle bewegen. Dann hab ich es auch noch so gemacht, dass wenn man nur kurz drüber geht, dass sich das Bild dann von der aktuellen Größe wieder zurückbewegt etc.
    Jetzt beende ich aber beim mouseenter und mouseleave alle Animationen, damit wenn man schnell mit der Mouse herüberfährt nicht kurz der vergrößerungs und verkleinerungs Prozess gleichzeitig laufen. Jetzt will ich mit einer for Schleife nachdem ich alle Animationen beendet habe, überpüfen, ob ein Bild noch groß ist und dieses dann wieder vekleinern lassen. Danach wenn alles überprüft ist (die for Schleife ein paarmal durchgelaufen ist), DANN soll der mouseover-Effekt einsetzen und das Bild soll sich weiter vergrößern. Aber leider laüft es net so wie gedacht, sondern alles verkleinert sich und vergrößert und flackert etc.


    Hier mein "experimenteller" code:

    PHP-Code:
    window.addEvent('domready', function() {

                var 
    alt_nav   = $('alt-nav'),
                    
    apps      alt_nav.getElementsByTagName('img');     // Alle apps in einem array abspeichern




                    // Globale Variablen:
                    
    fx_width  0,
                    
    fx_height 0,
                    
    fx_mleft  0,
                    
    fx_text   0;



                for(
    0apps.lengthi++) {                       // Allen imgs events zuweisen
                    
    var app apps[i];                                   // einzelnes Bild

                    
    app.addEvents({


                        
    mouseenter: function() {

                            if(
    fx_width != 0fx_width.cancel();
                            if(
    fx_height != 0fx_height.cancel();
                            if(
    fx_mleft != 0fx_mleft.cancel();
                            if(
    fx_text != 0fx_text.cancel();


                            for(
    0apps.lengthi++) {
                                var 
    app apps[i];

                                if(
    app.style.marginLeft != 60) {
                                    
    fx_width  = new Fx.Tween(this);
                                    
    fx_height = new Fx.Tween(this);
                                    
    fx_mleft  = new Fx.Tween(this);
                                    
    fx_text   = new Fx.Tween($(this.id '_text'), {
                                        
    'duration'300
                                    
    });


                                    
    fx_text.start('opacity'10);
                                    
    fx_width.start('width'this.style.width'80');
                                    
    fx_height.start('height'this.style.height'80');
                                    
    fx_mleft.start('margin-left'this.style.marginLeft'60');
                                }
                            }


                            
    fx_width  = new Fx.Tween(this);
                            
    fx_height = new Fx.Tween(this);
                            
    fx_mleft  = new Fx.Tween(this);
                            
    fx_text   = new Fx.Tween($(this.id '_text'), {
                                
    'duration'300
                            
    });

                            
    fx_text.start('opacity'01);
                            
    fx_width.start('width'this.style.width'100');
                            
    fx_height.start('height'this.style.height'100');
                            
    fx_mleft.start('margin-left'this.style.marginLeft'80');

                        },


                        
    mouseleave: function() {

                            if(
    fx_width != 0fx_width.cancel();
                            if(
    fx_height != 0fx_height.cancel();
                            if(
    fx_mleft != 0fx_mleft.cancel();
                            if(
    fx_text != 0fx_text.cancel();

                            for(
    0apps.lengthi++) {
                                var 
    app apps[i];

                                if(
    app.style.marginLeft != 60) {
                                    
    fx_width  = new Fx.Tween(this);
                                    
    fx_height = new Fx.Tween(this);
                                    
    fx_mleft  = new Fx.Tween(this);
                                    
    fx_text   = new Fx.Tween($(this.id '_text'), {
                                        
    'duration'300
                                    
    });


                                    
    fx_text.start('opacity'10);
                                    
    fx_width.start('width'this.style.width'80');
                                    
    fx_height.start('height'this.style.height'80');
                                    
    fx_mleft.start('margin-left'this.style.marginLeft'60');
                                }
                            }

                            
    fx_width  = new Fx.Tween(this);
                            
    fx_height = new Fx.Tween(this);
                            
    fx_mleft  = new Fx.Tween(this);
                            
    fx_text   = new Fx.Tween($(this.id '_text'), {
                                
    'duration'300
                            
    });


                            
    fx_text.start('opacity'10);
                            
    fx_width.start('width'this.style.width'80');
                            
    fx_height.start('height'this.style.height'80');
                            
    fx_mleft.start('margin-left'this.style.marginLeft'60');
                        },


                        
    click: function() {
                            
    weiterleiten('http://localhost/Homepage/m-remy.de%20s/Original/html/?page=' this.id);
                        }

                    });


                }





            }); 

    Vlt. gibt es ja auch noch eine andere Lösung..

  7. #7
    HTML 4 YOU ist offline Haudegen
    registriert
    23-07-2010
    Beiträge
    508

    AW: Script erst NACH Schleife weiterladen

    Zitat Zitat von Albu Beitrag anzeigen
    Jetzt muss ich mal fragen: was meinst Du mit iWelche Befehle? Willst Du ein iPad oder iPhone ansteuern?
    nene hab mal Code gepostet

  8. #8
    HTML 4 YOU ist offline Haudegen
    registriert
    23-07-2010
    Beiträge
    508

    AW: Script erst NACH Schleife weiterladen

    Ich eröffne mal einen neuen Thread, es kommt hier nämlich alles vom Thema ab, da ich jetzt eine andere Idee hab, wie es funktionieren muss und es zu stark vom thema abkommt.

    hier der link: http://forum.jswelt.de/javascript/51...ouseleave.html
    Geändert von HTML 4 YOU (26-07-2010 um 14:05 Uhr)

  9. #9
    HTML 4 YOU ist offline Haudegen
    registriert
    23-07-2010
    Beiträge
    508

    MooTools - Bilder vergrößern/verkleinern beim mouseenter/mouseleave

    Hey Leute,

    hab mal wieder eiin Problem, und zwar habe ich ein JScript geschrieben, dass ein paar Bilder vergröert, verkleinert und auch bewegt.

    Funktioniert auch alles wunderbar, nur wenn ich innerhalt der duration zeit zu einem anderen Bild wechsle (was auch animiert wird), dann bleibt das alte stehen, weil ich bei einem mouseleave und mouseenter alle "Prozesse" stoppe, damit man nicht kurzzeitig das verhrößern und verkleinern gleichzeitig sieht.
    Ich habe mir überlegt, dass ich in ein Array mache (Bild 1 hatt dann [0], Bild 2 [1], etc.) in dem ich dann das Fx.Tween speichere, um dann gezielt nur den eigenen "Prozess" zu beenden und nicht die anderen. Doch dies funktioniert nicht.

    Hier mein Code:

    PHP-Code:
    window.addEvent('domready', function() {

                var 
    alt_nav   = $('alt-nav'),
                    
    apps      alt_nav.getElementsByTagName('img');     // Alle apps in einem array abspeichern


                // Globale Variablen:
                
    var fx_width  = new Array(apps.length 1),              // Arrays erstellen
                    
    fx_height = new Array(apps.length 1),              // - 1, weil sonst
                    
    fx_mleft  = new Array(apps.length 1),              // eins zu viel da wäre
                    
    fx_text   = new Array(apps.length 1);

                for(
    0fx_width.lengthi++) {                   // Arrays den Wert 0 zuweisen
                    
    fx_width[i] = 0;
                    
    fx_height[i] = 0;
                    
    fx_mleft[i] = 0;
                    
    fx_text[i] = 0;
                }



                for(
    0apps.lengthx++) {                       // Allen imgs events zuweisen
                    
    var app apps[i];                                   // einzelnes Bild

                    
    app.addEvents({                                      // Events jedem Bild zuweisen


                        
    mouseenter: function() {

                            if(
    fx_width[i] != 0fx_width[i].cancel();   // Eigenen "Prozess" beenden
                            
    if(fx_height[i] != 0fx_height[i].cancel(); //    ""      ""      ""
                            
    if(fx_mleft[i] != 0fx_mleft[i].cancel();   //    ""      ""      ""
                            
    if(fx_text[i] != 0fx_text[i].cancel();     //    ""      ""      ""


                            
    fx_width[i]  = new Fx.Tween(this);           // Tweens in die Globalen Variablen/Arrays speichern
                            
    fx_height[i] = new Fx.Tween(this);
                            
    fx_mleft[i]  = new Fx.Tween(this);
                            
    fx_text[i]   = new Fx.Tween($(this.id '_text'), {
                                
    'duration'300
                            
    });

                            
    fx_text[i].start('opacity'01);           // Animieren
                            
    fx_width[i].start('width'this.style.width'100');
                            
    fx_height[i].start('height'this.style.height'100');
                            
    fx_mleft[i].start('margin-left'this.style.marginLeft'80');

                        },


                        
    mouseleave: function() {

                            if(
    fx_width[i] != 0fx_width[i].cancel();
                            if(
    fx_height[i] != 0fx_height[i].cancel();
                            if(
    fx_mleft[i] != 0fx_mleft[i].cancel();
                            if(
    fx_text[i] != 0fx_text[i].cancel();


                            
    fx_width[i]  = new Fx.Tween(this);
                            
    fx_height[i] = new Fx.Tween(this);
                            
    fx_mleft[i]  = new Fx.Tween(this);
                            
    fx_text[i]   = new Fx.Tween($(this.id '_text'), {
                                
    'duration'300
                            
    });


                            
    fx_text[i].start('opacity'10);
                            
    fx_width[i].start('width'this.style.width'80');
                            
    fx_height[i].start('height'this.style.height'80');
                            
    fx_mleft[i].start('margin-left'this.style.marginLeft'60');
                        },


                        
    click: function() {              // Beim klicken weiterleiten (die funktion weiterleiten() hab ich mir selber gemacht)
                            
    weiterleiten('http://localhost/Homepage/m-remy.de%20s/Original/html/?page=' this.id);
                        }

                    });


                }


            }); 


    HTML Teil:

    HTML-Code:
    <div id="alt-nav">
    
                       <img src="../images/iPhone App Icon Gr&uuml;n.png"
                            id="index"
                            style="margin-top: 20px; margin-left: 60px; height: 80px; width: 80px; position: absolute;"
                            name="20"
                        />
    
                        <img src="../images/iPhone App Icon Blau.png"
                             id="schwebebahnraetsel"
                             style="margin-top: 50px; margin-left: 60px; height: 80px; width: 80px; position: absolute;"
                        />
    
                        <img src="../images/iPhone App Icon Orange.png"
                             id="hobbys"
                             style="margin-top: 80px; margin-left: 60px; height: 80px; width: 80px; position: absolute;"
                        />
    
                        <img src="../images/iPhone App Icon Lila.png"
                             id="kontakt"
                             style="margin-top: 110px; margin-left: 60px; height: 80px; width: 80px; position: absolute;"
                        />
    
                        <h2 id="index_text" style="font-family: Arial; margin-top: 100px; margin-left: 260px; position: absolute; opacity: 0;">Startseite</h3>
                        <h2 id="kontakt_text" style="font-family: Arial; margin-top: 100px; margin-left: 260px; position: absolute; opacity: 0;">Kontakt</h2>
                        <h2 id="schwebebahnraetsel_text" style="font-family: Arial; margin-top: 100px; margin-left: 260px; position: absolute; opacity: 0;">Schwebebahnr&auml;tsel</h2>
                        <h2 id="hobbys_text" style="font-family: Arial; margin-top: 100px; margin-left: 260px; position: absolute; opacity: 0;">Hobbys</h2>
    
                    </div>
    Die Fehlerkonsole sagt, dass fx_width[i] nicht definiert ist, wieso?

    Hat jemand ne Lösung?

  10. #10
    Avatar von Albu
    Albu ist offline Super Moderator
    registriert
    04-07-2001
    Beiträge
    13.501

    AW: Script erst NACH Schleife weiterladen

    Zitat Zitat von HTML 4 YOU Beitrag anzeigen
    Ich eröffne mal einen neuen Thread, es kommt hier nämlich alles vom Thema ab, da ich jetzt eine andere Idee hab, wie es funktionieren muss und es zu stark vom thema abkommt.

    hier der link: http://forum.jswelt.de/javascript/51...ouseleave.html
    Und zusammengeführt.
    1. Get people to play Space Taxi
    2. Sell real estates on neptun
    3. Profit!

    IE is not a browser, it is a scream.


    Outside of a dog, a book is man's best friend. Inside of a dog, it's too dark to read.

  11. #11
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.650

    AW: Script erst NACH Schleife weiterladen

    Lass' dir doch mal vor der Zeile, die den Fehler wirft das i per alert ausgeben, dann weißt du, was dein Problem ist (Stichwort Closures).
    Vereinfachte Problemdarstellung:
    Code:
    for (var i = 0; i < 5; i++){
    	window.setTimeout(function(){alert(i);}, i*100);
    }

  12. #12
    HTML 4 YOU ist offline Haudegen
    registriert
    23-07-2010
    Beiträge
    508

    AW: Script erst NACH Schleife weiterladen

    Bei mir ist immer noch der selbe Fehler und die Ausgabe funktioniert nicht. Es ist zwar (laut Fehlerkonsole) kein Fehler aufgetreten, aber es funktioniert trotzdem nicht.

  13. #13
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.635

    AW: Script erst NACH Schleife weiterladen

    Zitat Zitat von HTML 4 YOU Beitrag anzeigen
    Bei mir ist immer noch der selbe Fehler und die Ausgabe funktioniert nicht. Es ist zwar (laut Fehlerkonsole) kein Fehler aufgetreten, aber es funktioniert trotzdem nicht.
    es ist noch der selbe fehler, aber es steht kein fehler mehr in der fehlerkonsole?
    was denn nun?
    den fehler mit dem index hast du also mit einer closure (siehe kkapsner) gelöst?
    dann solltest du den code hier einstellen.

  14. #14
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.650

    AW: Script erst NACH Schleife weiterladen

    @hesst: Die Closure löst hier nicht das Problem, sonder ruft es hervor...
    @HTML 4 YOU: Was erwartest du bei der Ausgabe und was bekommst du?
    Geändert von kkapsner (27-07-2010 um 14:14 Uhr)

  15. #15
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.635

    AW: Script erst NACH Schleife weiterladen

    Zitat Zitat von kkapsner Beitrag anzeigen
    @hesst: Die Closure löst hier nicht das Problem
    doch, eine closure löst es(oder besser, man kann es mit einer lösen)
    Code:
    function getFunction(idx)
    {
      return function() { alert(idx); };
    }
    for (var i = 0; i < 5; i++)
    {
      window.setTimeout(getFunction(i), i*100);
    }
    Zitat Zitat von kkapsner Beitrag anzeigen
    , sonder ruft es hervor...
    nein, das nun wieder nicht. das problem hat mit closures nichts zu tun. hier wird zur laufzeit einfach auf eine variable in einem übergeordnetem scope zugegriffen, die sich zwischenzeitlich geändert hat.
    das ganze komplett ohne closure aber das gleiche problem:
    Code:
    var a = [];
    for (var i = 0; i < 5; i++)
    {
      a.push(function(){ alert(i); });
    }
    a[0]();

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 17-10-2010, 13:53
  2. Automatisch weiterladen nach x sekunden
    Von Snacke im Forum Serverseitige Programmierung
    Antworten: 9
    Letzter Beitrag: 18-11-2005, 20:12
  3. DSL Verbindung öffnet erst nach 2 Min.
    Von fate im Forum Windows
    Antworten: 0
    Letzter Beitrag: 25-04-2005, 15:06
  4. Bild erst nach 30 sek. anzeigen
    Von Kirstin im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 14-01-2005, 16:49
  5. mp3 erst nach laden spielen??
    Von frogge im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 18-12-2001, 08:10

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •