Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-12-2004, 16:07   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2004
Beiträge: 5
Warum wird das Script nicht Punkt für Punkt abgearbeitet?

Hallo,

ich habe mit folgendem Script:

ActionScript:
  1. var platzhalter1 = false, platzhalter2 = false, kart1, kart2, countdown = 5;
  2. function pruefen() {
  3.     trace("jetzt");
  4.         // 5 Sekunden Warteschleife
  5.     do {
  6.         if (countdown > 0) {
  7.             aktuelleZeit = getTimer() / 1000;
  8.             if ((aktuelleZeit - startZeit) > 1) {
  9.                 countdown--;
  10.                 startZeit = int(aktuelleZeit);
  11.                 trace(countdown);
  12.             }
  13.         }
  14.     } while (countdown > 0);
  15.     if (kart2 == kart1) {
  16.         trace("richtig");
  17.     }
  18.     else {
  19.         trace("falsch");
  20.     }
  21. }
  22. function k1f() {
  23.     if (platzhalter1 == false) {
  24.         platzhalter1 = true;
  25.         switch (k[1]) {
  26.         case 1 :
  27.             _root.ka1.gotoAndStop(2);
  28.             kart1 = 1;
  29.             break;
  30.         case 2 :
  31.             _root.ka1.gotoAndStop(3);
  32.             kart1 = 2;
  33.             break;
  34.         }
  35.     }
  36.     else if (platzhalter2 == false) {
  37.         platzhalter2 = true;
  38.         switch (k[1]) {
  39.         case 1 :
  40.             _root.ka1.gotoAndStop(2);
  41.             kart2 = 1;
  42.             break;
  43.         case 2 :
  44.             _root.ka1.gotoAndStop(3);
  45.             kart2 = 2;
  46.             break;
  47.         }
  48.         _root.pruefen();
  49.     }
  50. }

Folgedes Problem:

sobald die 2. Karte angeklickt wird, wird erst mal 5 Sekunden gewartet, dann wird die Karte aufgedeckt und es werden die trace()-werte ausgegeben. Warum wird nicht zuerst die Karte aufgedeckt "jetzt" ausgegeben und dann 5 sekunden gewartet?

Helft mir bitte. Schon mal n dickes Dankeschön.

Gruß Flossi
Angehängte Dateien
Dateityp: zip vorstufeflashKartenDoppelt.zip (3,7 KB, 2x aufgerufen)
Flossi ist offline   Mit Zitat antworten
Alt 14-12-2004, 16:44   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hi!

Warum in deiner funktion nicht erst das trace("jetzt") ausgefürt wird, weiß ich auch nicht. Das soll/kann dir mal einer beantworten, der flash "versteht". Du könntest allerdings die Pause auch mit einem oEF lösen. Dann sollte das gehen. Beispiel:

PHP-Code:
function pruefen() {
    
trace("jetzt");
    
onEnterFrame = function () {
        
aktuelleZeit getTimer()/1000;
        if ((
aktuelleZeit-startZeit)>1) {
            
countdown--;
            
startZeit int(aktuelleZeit);
            
trace(countdown);
        }
        if (
countdown<=0) {
            if (
kart2 == kart1) {
                
trace("richtig");
            } else {
                
trace("falsch");
            }
            
delete this.onEnterFrame;
        }
    };

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 14-12-2004, 16:53   #3 (permalink)
a.k.a maddin79
 
Benutzerbild von madflanderz
 
Registriert seit: Jul 2003
Ort: berlin f-hain
Beiträge: 1.693
bloß die finger weg von for oder while schleifen wenn man ne pause braucht, da kann auch schnell der player aussteigen und den film anbrechen.

pausen realisiert man in der regel mit setInterval, danach darf man halt nur nich vergessen das interval auch wieder zu löschen.

irgendwo gabs hier heute auch schon n thread "Pausen in AS" oder so, mußt ma suchen


gruß madFlanderz
__________________
www.madflanderz.de

ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°` _ addicted to bass _ `°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø
madflanderz ist offline   Mit Zitat antworten
Alt 14-12-2004, 17:03   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
@maddin79: ...und was spricht gegen onEnterFrame? Geht doch auch. Nur mal so gefragt
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 15-12-2004, 09:10   #5 (permalink)
a.k.a maddin79
 
Benutzerbild von madflanderz
 
Registriert seit: Jul 2003
Ort: berlin f-hain
Beiträge: 1.693
Der Antworter:

türlich, geht auch so


und noch was zu dem zu spät geworfenen trace() : ich schätze mal(und so is es auch logisch), daß trace NICHT immer sofort, sondern erst nach ausführung des codes innerhalb eines frames ins ausgabefenster geschrieben wird. alle traces werden sozusagen gesammelt und dann erst ins fenster geschrieben.

schön tach noch ... madFlanderz
__________________
www.madflanderz.de

ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°` _ addicted to bass _ `°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø
madflanderz 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 13:17 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele