Zurück   Flashforum > Flash > Stuff

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-05-2006, 10:46   #1 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
[ STUFF ] setTimeOut ( Intervall nur 1 x ausführen )

Hatte gerade zufällig in einem anderen Thread eine Funktion geschrieben mit der man eine Funktion nach Ablauf einer Zeitspanne nur einmal ausführen lassen kann.

Der Aufruf der Funktion ist genauso als würde man eine setInterval Funktion aufrufen.

setTimeOut

Dieser Script dürfte ab Flash MX laufen, wer Flash 8 hat kann die "hauseigene" Variante "setTimeout" nehmen.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 08-05-2006, 18:57   #2 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Habe die Funktion noch etwas überarbeitet, dürfte dadurch auch "etwas" schneller laufen.

PHP-Code:
function setTimeOut()   
{    
    var 
arg arguments;  
   
   if( 
typeof arg[0] != "function" arg[0] = arg.shift()[arg[0]];
  
    var 
func = function()   
    {    
        
clearIntervalNumberarg[1] ) );   
        
arg[0].applynullarg.slice) );   
    }  
       
    
arg[1] = setIntervalfuncarg[1] );      

__________________
ERROR: Signature is too large

Geändert von rendner[i] (09-05-2006 um 06:19 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 08-05-2006, 19:27   #3 (permalink)
Banned
 
Registriert seit: Apr 2006
Beiträge: 246
hmm ich hab mir deinen quelltext jetzt 5 minuten angeschaut,

vielleicht schreibst du etwas dazu?

weil ich versteh nicht ganz was du mit dieser zeile hier machst:

PHP-Code:
arg[0].applynullarg.slice) ); 
wieso übergibst du hier ein array mit den ersten 2 argumenten an die funktion in arg[0] oder ist die zeile gleichbedeutend mit
PHP-Code:
arg[0].applynullarg[2]); 
?

so das man beim aufruf in einem dritten optionalen parameter ein array als parameter angeben kann das dann an die funktion gesendet in arg[0] "dgesendet" wird?
ChickenWing ist offline   Mit Zitat antworten
Alt 09-05-2006, 06:26   #4 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Das hätte man auch selber herausbekommen können mit der Flashhilfe zum Thema slice.
Slice gibt ein Array zurück wobei der erste Parameter für den Anfang des Arrays stehen und der 2te für das Ende, wird der 2te weggelassen werden alle Elemente die nach dem Anfang im Array enthalten sind kopiert.

Nun kurz zu der Zeile:
PHP-Code:
arg[0].applynullarg.slice) ); 
arg[0] ist die Funktion die eigentlich ausgeführt werden soll, arg[1] enthält die Referenz auf das Intervall um dieses zu löschen.
Deshalb brauche ich diese ersten 2 Parameter nicht.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 09-05-2006, 07:00   #5 (permalink)
Banned
 
Registriert seit: Apr 2006
Beiträge: 246
Zitat:
Zitat von rendner[i]
Das hätte man auch selber herausbekommen können mit der Flashhilfe zum Thema slice.
tschuldige das ich fragte, es soll coder geben die machen im quellltext hin und wieder sowas->"//Komentar", halt ich aber für ein gerücht....

übrigens sind beide paramater also anfangs sowie endparameter "optional" daher konnte ich die "2" nicht wirklich identifizieren, schön das du dir die zeit genommen hast meine frage zu verstehen... obs nun anfangs parameter, endparameter oder die ersten 2 elemente ansich gemeint sind, ausserdem wirst du in der flashhilfe zu deinen verzeigungsabfragen KEINE erklärung finden zumindest wird kein anfänger der es nicht bereits aus anderen programmiersprachen kennt etwas damit anfangen können.

aber danke für deine erklärung, das nächstemal werd ich nicht fragen, weil ich hab auch keine zeit mir 5 minuten für jeden noch so blöden quelltext zu nehmen der mal wieder undokumentiert ist, stell dir das mal vor bei 10 beiträgen am tag wär das schon fast ne stunde arbeit, das sind im monat mitunter über 20 arbeitsstunden, in der zeit kann man sich sehr vieles selber schreiben und muss nicht jemanden ragen der keine lust hat was zu erklären.

schönen tag noch
ChickenWing ist offline   Mit Zitat antworten
Alt 09-05-2006, 15:26   #6 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
...ich hoffe das wird jetzt kein ewiges hin und her aber ich will mich zu deinen Äusserungen auch etwas rechtfertigen.
Wobei mein Beitrag der anscheinend der Grund für deinen Seelichen Frust war gar nicht böse oder herabwertend gemeint war, jediglich nur ein Tipp fürs nächste mal.


Zitat:
tschuldige das ich fragte, es soll coder geben die machen im quellltext hin und wieder sowas->"//Komentar", halt ich aber für ein gerücht....
Ne ausführliche Dokumentation findest du im ersten Beitrag wenn du den Link folgst.
( zumindest zu der älteren Version )


Zitat:
übrigens sind beide paramater also anfangs sowie endparameter "optional" daher konnte ich die "2" nicht wirklich identifizieren, schön das du dir die zeit genommen hast meine frage zu verstehen... obs nun anfangs parameter, endparameter oder die ersten 2 elemente ansich gemeint sind,
Wenn nur ein Parameter angegeben ist muss es wohl der erste sein, da Flash sonst auch nicht wüsste welcher es sein soll.

Zitat:
aber danke für deine erklärung, das nächstemal werd ich nicht fragen, weil ich hab auch keine zeit mir 5 minuten für jeden noch so blöden quelltext zu nehmen der mal wieder undokumentiert ist,
Naja kannste dir ja denken...
__________________
ERROR: Signature is too large

Geändert von rendner[i] (09-05-2006 um 15:28 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 14-05-2006, 15:19   #7 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Habe festgestellt das der Funktion noch die Rückgabe der Interval id fehlte, somit kann man das TimeOut gar nicht mehr löschen falls es doch nicht mehr benötigt wird.

Hier die korigierte Version:
( ist nur ein return in der letzten Zeile )
PHP-Code:
function setTimeOut()   
{    
    var 
arg arguments;  
   
   if( 
typeof arg[0] != "function" arg[0] = arg.shift()[arg[0]];
  
    var 
func = function()   
    {    
        
clearIntervalNumberarg[1] ) );   
        
arg[0].applynullarg.slice) );   
    }  
       
    return (
arg[1] = setIntervalfuncarg[1] ));      

Nun kann man mit clearInterval das TimeOut löschen:
PHP-Code:
var id setTimeOut( function(){ trace"hello" ); }, 1000"hallo!" );
clearIntervalid ); 
__________________
ERROR: Signature is too large
rendner[i] 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 18:38 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele