Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 31-05-2006, 21:27   #1 (permalink)
flashfan
 
Registriert seit: May 2006
Beiträge: 253
Zeitverzögerung in Schleife

Hallo,

suche nach einer Möglichkeit, eine Zeitverzögerung in folgende Schleife einzubauen:

ActionScript:
  1. for (i=1; i<41; i++) { 
  2.     this["p"+i]._x = coordx[gezogen[i-1]];
  3.     this["p"+i]._y = coordy[gezogen[i-1]];
  4.     _root["p"+i]._visible = true;
  5. }

Das ganze sollte z.B. 2 Sekunden brauchen, bis die Schleife komplett durchlaufen ist, wobei jeder Schleifendurchlauf die gleiche Zeit haben soll.

Wer kann helfen?

Kerstin
weis-nix ist offline   Mit Zitat antworten
Alt 31-05-2006, 22:01   #2 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
PHP-Code:
for (i=1i<41i++) {
    
_root.attachMovie("Symbol""p"+ii);
    
_root["p"+i]._visible false;
}
//"this" habe ich mit _root ersetzt, weil ich es testen musste;
// innerhalb von setInterval gibts eh kein this, weil das interval this nicht erkennt, das müsstest du vorher definieren;
for (i=1i<41i++) {
    var 
derMC i;
    
_root["p"+i].i;
    
derMC setInterval(delayFunc2000_root["p"+i]);
}
function 
delayFunc(mc) {
    
clearInterval(mc.i);
    
mc._x coordx[gezogen[mc.i-1]];
    
mc._y coordy[gezogen[mc.i-1]];
    
mc._visible true;

__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 01-06-2006, 09:11   #3 (permalink)
flashfan
 
Registriert seit: May 2006
Beiträge: 253
Hallo Andretti,

vielen Dank schonmal für die schnelle Antwort. Leider funktioniert's nicht so wie gewünscht.

Die ganze Flash-Animation ist ein Puzzle, und in der Schleife, die ich verzögern will, werden die Puzzleteile auf zufälligen Koordinaten angeordnet und wieder angezeigt. Mit Deinem Code wird die Schleife vor Ausführung um 2 Sekunden verzögert, was ich aber eigentlich haben möchte, ist ein kleiner Effekt beim Einblenden der Puzzleteile, nämlich das die nicht alle zusammen auf einmal eingeblendet werden, sondern nacheinander, und das ganze sollte 2 Sekunden dauern.

Hab das Puzzle schon mal online gestellt: http://www.akk-leo.de/docs/puzzle.php

Kerstin

Geändert von weis-nix (01-06-2006 um 09:16 Uhr)
weis-nix ist offline   Mit Zitat antworten
Alt 01-06-2006, 12:48   #4 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
hob i ma eh docht'

quasi die 40 teile nacheinander innerhalb von 2000 tausendstel(schreibt ma des so???) sekunden: 2000/40 = 50;

PHP-Code:

for (i=1i<41i++) { 
    
_root.attachMovie("Symbol""p"+ii); 
    
_root["p"+i]._visible false

//"this" habe ich mit _root ersetzt, weil ich es testen musste; 
// innerhalb von setInterval gibts eh kein this, weil das interval this nicht erkennt, das müsstest du vorher definieren; 
for (i=1i<41i++) { 
    var 
derMC i
    
_root["p"+i].i
    
derMC setInterval(delayFunc50*i_root["p"+i]); 

function 
delayFunc(mc) { 
    
clearInterval(mc.i); 
    
mc._x coordx[gezogen[mc.i-1]]; 
    
mc._y coordy[gezogen[mc.i-1]]; 
    
mc._visible true

so?

by the way.....wirklich kneissen tut man des net, glaub ich, wenn jede 50 tausendstel ein puzzleteilchen eingeblendet wird?

wennst fragen zum script hast, dann tu das!
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary

Geändert von andretti (01-06-2006 um 12:53 Uhr)
andretti ist offline   Mit Zitat antworten
Alt 01-06-2006, 17:53   #5 (permalink)
flashfan
 
Registriert seit: May 2006
Beiträge: 253
Zitat:
Zitat von andretti
quasi die 40 teile nacheinander innerhalb von 2000 tausendstel(schreibt ma des so???) sekunden: 2000/40 = 50;
Jo, glaub schon

Zitat:
Zitat von andretti
by the way.....wirklich kneissen tut man des net, glaub ich, wenn jede 50 tausendstel ein puzzleteilchen eingeblendet wird?
Äh, was bitte? Aber es ist wirklich etwas lahm, falls Du das meintest, hab die Sekunden jetzt auch auf 20 tausendstel geändert.

Zitat:
wennst fragen zum script hast, dann tu das!
Na das mach ich doch glatt

Ein Problem hab ich jetzt nämlich noch: wenn ich das Puzzle starte, werden sofort 40 Puzzleteile als "korrekt" angezeigt, was ja eigentlich gar nicht sein kann, denn durcheinander liegen sie ja. Was läuft denn da nu schief ? Könnte beim zählen der korrekten Puzzleteile ja auch 40 abziehen, nur wirklich Sinn macht das ja nich...

Und noch was: wofür brauche ich die erste For-Schleife (oberhalb Deines Kommentares)?

Kerstin

Geändert von weis-nix (01-06-2006 um 17:58 Uhr)
weis-nix ist offline   Mit Zitat antworten
Alt 01-06-2006, 18:16   #6 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
die erste for-schleife kannst streichen, war nur für mich zum testen;sorry;

die puzzlesteine sollen zu beginn IMMER falsch liegen , aber an der selben stelle?(also der erste liegt zb immer falsch au f5/5, der zweite liegt immer falsch auf 18/20, etc, etc), oder bei start des spiels immer verschieden falsch??
ebentuell kannst du nur das puzzle hochladen(die fla)?
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 01-06-2006, 19:11   #7 (permalink)
flashfan
 
Registriert seit: May 2006
Beiträge: 253
Zitat:
Zitat von andretti
die puzzlesteine sollen zu beginn IMMER falsch liegen , aber an der selben stelle?(also der erste liegt zb immer falsch au f5/5, der zweite liegt immer falsch auf 18/20, etc, etc), oder bei start des spiels immer verschieden falsch??
ebentuell kannst du nur das puzzle hochladen(die fla)?
Oh je, da hab ich mich wohl etwas falsch ausgedrückt...

Nein, ganz zu Anfang liegen die Puzzleteile korrekt, sodaß das fertige Bild zu sehen ist. Nach klicken auf "Start" werden die Puzzleteile gemischt. Unten rechts ist ein Zähler eingebaut, der anzeigt, wieviele Puzzleteile korrekt liegen. Dieser Zähler steht nun sofort auf 40, obwohl die Puzzleteile selber alle durcheinander sind.

Hoffentlich war das verständlicher?

Die fla-Datei kann ich leider nicht hier anhängen, ist selbst im rar-Archiv mit 255 kB zu groß. Kannst sie aber hier runterladen: http://www.akk-leo.de/puzzle.rar

Kerstin
weis-nix ist offline   Mit Zitat antworten
Alt 01-06-2006, 22:16   #8 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
i hob ma des jetzt angschaut, weiß aber keine abhilfe;
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 23-06-2006, 22:54   #9 (permalink)
flashfan
 
Registriert seit: May 2006
Beiträge: 253
Lösung

Hallo andretti,

so, hab die Lösung

Die Prüfung, ob die Puzzleteile korrekt liegen, wurde vor kompletter Ausführung der Schleife durchgeführt, in der die Puzzleteile neu sortiert werden. Da liegen sie logischerweise ja noch korrekt.

Die Prüfung habe ich nun in die Schleife selber eingebaut, sodaß diese auch zeitverzögert ausgeführt wird:

PHP-Code:
function verzoegerung() {
    
_root["p"+i]._x coordx[gezogen[i-1]];
    
_root["p"+i]._y coordy[gezogen[i-1]];
    
_root["p"+i]._visible true;
    
i++;
    if (
== 41) {
        
delete i;
        
/* Prüfung auf bereits korrekt liegende Puzzleteile */
        
if ((p1._x == 0) && (p1._y == 0)) {
            
korrekt.push("1");
        }
        if ((
p2._x == 75) && (p2._y == 0)) {
            
korrekt.push("2");
        }
        if ((
p3._x == 150) && (p3._y == 0)) {
            
korrekt.push("3");
        }
                ...
                
usw.
                ...
        if ((
p40._x == 525) && (p40._y == 300)) {
            
korrekt.push("40");
        }
        
clearInterval(timeCall);
    }
}
timeCall setInterval(verzoegerung20);
var 
interval:Number setInterval(updateVerzoegerung1); 
Grüße,
Kerstin
weis-nix ist offline   Mit Zitat antworten
Alt 25-06-2006, 18:29   #10 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
fein!
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti 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 15:38 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele