Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-11-2005, 16:04   #1 (permalink)
Eternal Newbe
 
Registriert seit: Aug 2002
Ort: Heidelberg
Beiträge: 241
Question Logisches Problemchen: WHILE-Schleife mit Interval

Hi Leute, ich will eine Art WHILE-Schleife bauen, nur mit einer Verzögerung von einer Sekunde am Ende.

Habe mir dabei zunächst theoretisch folgendes gedacht, was allerdings nicht funktioniert. - Irgendwie ist das ein logisches Problem, wo ich nicht dahinter steige. Hat jemand eine Idee?

PHP-Code:
var i:Number 0;
var 
intervalID:Number;

function 
MainFunction(){
    
trace ("mainfunc: "+i)

    
//Code wird ausgeführt - kann einige Sekunden dauern!

    
intervalID setInterval("callMainFunction"1000);
}

function 
callMainFunction(){
    
clearInterval (intervalID);
    
i++;
    
trace ("call: "+i);
    
MainFunction();
}

callMainFunction();

trace("ready!"); 
__________________
JuL!
JuL! ist offline   Mit Zitat antworten
Alt 08-11-2005, 16:09   #2 (permalink)
Neuer User
 
Benutzerbild von Xeef
 
Registriert seit: Sep 2004
Ort: Spain/Ibiza
Beiträge: 942
setInterval hat 2 verschiedene aufrufe !

1.

setInterval (Function:Function,interval:Number)

2.


setInterval (Scope:Object,Function:String,Interval:Number)


PHP-Code:
intervalID setInterval(callMainFunction1000); 
__________________
Languages : (in the order of knowledge/preference)
Read: Flash AS, PHP, JS, Html, DHtml, Basic, C++, DOS, 3DMaxScript, English, Deutsch, Magyar, XML, Pascal, VB, Spanish
Write: Flash AS, Basic, PHP, JS, DHtml, Html, ..., C++, ...., ..., English, ..., ..., ..., ...., Deutsch, ..., Magyar

wen du mein deutsch nicht magst whele eine andere sparache von den obrigen ;)
Xeef ist offline   Mit Zitat antworten
Alt 08-11-2005, 20:37   #3 (permalink)
Eternal Newbe
 
Registriert seit: Aug 2002
Ort: Heidelberg
Beiträge: 241
Inwiefern soll/kann das mir bei dem vorliegendem Problem helfen? Der Knackpunkt hier ist meiner Meinung nach, dass im laufendem Code am besten nur eine Pause eingelegt wird - also der AS-Code nicht weiter ausgeführt wird. Und so weit ich meiss gibt es keine einfache Pause.
Ich sehe irgendwie keinen Ansatz.
__________________
JuL!
JuL! ist offline   Mit Zitat antworten
Alt 08-11-2005, 20:50   #4 (permalink)
Neuer User
 
Benutzerbild von Xeef
 
Registriert seit: Sep 2004
Ort: Spain/Ibiza
Beiträge: 942


was sol den der obere code den tun ???
__________________
Languages : (in the order of knowledge/preference)
Read: Flash AS, PHP, JS, Html, DHtml, Basic, C++, DOS, 3DMaxScript, English, Deutsch, Magyar, XML, Pascal, VB, Spanish
Write: Flash AS, Basic, PHP, JS, DHtml, Html, ..., C++, ...., ..., English, ..., ..., ..., ...., Deutsch, ..., Magyar

wen du mein deutsch nicht magst whele eine andere sparache von den obrigen ;)
Xeef ist offline   Mit Zitat antworten
Alt 08-11-2005, 21:22   #5 (permalink)
Eternal Newbe
 
Registriert seit: Aug 2002
Ort: Heidelberg
Beiträge: 241
Es werden aus einem PHP Daten übergeben, welche anschliessend ein mehrseitiges, zweispaltiges Layout mit Text generieren... quasi eine Art selbst generierendes FlashPapers. Dieser Generierungsvorgang dauert leider je nach Rechenleistung einige Sekunden und daher möchte ich einen Statusanzeige vorschalten, bis der Vorgang vollendet ist. Leider geht das nicht, wenn der FlashPlayer das unter Volllast erzeugt und daher möchte ich quasi ein delay von einigen Sekundenbruchteilen einfügen, was aber reichen könnte, damit nach jedem getanen job die Statusanzeige aktualisiert wird.
Es muss also die AS-Ausführung unterbrochen werden. - Leider weiss ich nicht die Zeit, wie lange jede job-Ausführung braucht. - Daher müssen andere Wege gefunden werden. - Ja, das ist ein heftiges Problem, aber für mich derzeit absolut essentiell. Wenn also einer von euch Profis da draussen einen Ansatz hat - lasst es mich wissen.
__________________
JuL!
JuL! ist offline   Mit Zitat antworten
Alt 08-11-2005, 21:58   #6 (permalink)
Eternal Newbe
 
Registriert seit: Aug 2002
Ort: Heidelberg
Beiträge: 241
Lightbulb

Ich glaube ich habe da eine banale Möglichkeit gefunden, die zwar nicht ganz sauber ist, aber den Zweck erfüllen dürfte. Dies muss jetzt nur noch in der Praxis getestet werden:

PHP-Code:
var i:Number 0;
var 
intervalID:Number 0
var 
finished:Boolean true;

function 
MainFunction(){ 
    
finished false;
    
i++;
    
_root.status_txt.text "begin job "+i;
    
    
//jobs!
    
    
_root.status_txt.text "job "+i" finished";
    
trace ("loop: "+i);
    
finished true;
}

function 
callMainFunction(){
    
trace ("retry "+finished);
    
    if (
finished){
        
trace ("recall:*"+i);
        
MainFunction();
    }
    
    if (
>= 10){
        
trace ("interval killed!");
        
_root.status_txt.text "all jobs successful finished";
        
clearInterval (intervalID);
    }
}

_root.status_txt.text "begin generating process";
intervalID setInterval (callMainFunction1000);

trace ("ready!"); 
__________________
JuL!
JuL! 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 19:02 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele