Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-01-2005, 21:31   #1 (permalink)
rookie
 
Benutzerbild von rok°!
 
Registriert seit: Apr 2002
Beiträge: 370
zeit variieren bei setInterval

nahmd!

ich möchte die zeit, die eine setInterval-schleife durchlaufen soll pro durchlauf verändern.

function test()
{
trace("hier passiert was");
}

intval = setInterval(test, zufallswert);

dabei soll der zufallswert zwischen 10000 und 60000 liegen.
kann mir da jemand helfen?
__________________
Das Newslettersystem auf deiner Homepage!
rok°! ist offline   Mit Zitat antworten
Alt 03-01-2005, 22:14   #2 (permalink)
Überzeugter Flasher...
 
Benutzerbild von DoppelX
 
Registriert seit: Oct 2001
Ort: Köln
Beiträge: 1.654
Hab grad kein Flash da, aber zu Theorie:

Interval ganz normal ausführen, und bei beendigung der Funktion den intervall killen. Danach direkt neuen Interval mit dem Zufallswert starten. Sprich, der Interval wird jedesmal nur einmal ausgeführt.

Ist aber schwachsinn. Dann mach ein normales random und setz da ne schön hohe zahl:

r = random(10000)
if(r=1220) doit();

Ich denke dass der Sinn vom Intervall ein gleicher Rütmuss ist.
gruss x²
__________________
Tjo...
DoppelX ist offline   Mit Zitat antworten
Alt 03-01-2005, 22:16   #3 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
na da hast du doch schon fast alles stehen:
ActionScript:
  1. function test()
  2. {
  3. clearInterval(intval);
  4. trace("hier passiert was");
  5. zufall();
  6. }
  7.  
  8. function zufall(){
  9. zufallswert = random(50001)+10000;
  10. intval = setInterval(test, zufallswert);
  11. }
  12.  
  13. zufall();
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 04-01-2005, 11:14   #4 (permalink)
rookie
 
Benutzerbild von rok°!
 
Registriert seit: Apr 2002
Beiträge: 370
@mooseMash: klappt prima! danke! aber ist random() nich deprecated? ich hab Math.floor(Math.random()*50000)+10000 genommen

@DoppelX: der sinn des intervals ist doch eine zeitabfolge, egal ob rütmisch oder rythmisch
__________________
Das Newslettersystem auf deiner Homepage!
rok°! ist offline   Mit Zitat antworten
Alt 04-01-2005, 11:18   #5 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
nö...ein interval ist ein gleichbleibendes, wiederkehrendes ererignis.
die betonung liegt auf gleichbleibend.
das ständige wechseln des intervals -und vor allem das stetige neuerstellen des selbigen wird deine kiste langsam, aber sicher, schön brav in die knie zwingen.

außerdem: vom löschen eines intervals habt ihr noch nix gehört, wa?!


greetz

kelor

Geändert von kelor (04-01-2005 um 11:19 Uhr)
kelor ist offline   Mit Zitat antworten
Alt 04-01-2005, 11:29   #6 (permalink)
rookie
 
Benutzerbild von rok°!
 
Registriert seit: Apr 2002
Beiträge: 370
Zitat:
Zitat von kelor
außerdem: vom löschen eines intervals habt ihr noch nix gehört, wa?!
hm, erklär mal genauer bitte.
__________________
Das Newslettersystem auf deiner Homepage!
rok°! ist offline   Mit Zitat antworten
Alt 04-01-2005, 11:34   #7 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
bevor ich das erklär, weise ich auf meinen lieblingstip hin:

film testen --> fehlersuche --> alle variablen anzeigen
ihr erstellt ständig ein und das selbe interval neu, ohne es zu zwischenzeitlich zu löschen.
und nochmals...selbst wenn ihr das tut ist es eine performancebremse der besonderen art.
wie dem auch sei: delete ist ein hübsches wort in flash


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 04-01-2005, 12:19   #8 (permalink)
rookie
 
Benutzerbild von rok°!
 
Registriert seit: Apr 2002
Beiträge: 370
also müsste ich erst delete intval; machen, bevor ich es wieder erneut mit intval = setInterval(test, zufallswert); aufrufe?
verstehe ich nicht. hier wird doch ein und die selbe variable nur neu beschrieben.
__________________
Das Newslettersystem auf deiner Homepage!
rok°! ist offline   Mit Zitat antworten
Alt 04-01-2005, 12:39   #9 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
nö, wird se nicht.
intval ist ein objekt (interval-objekt) und das wird nicht 'überschrieben'.

deshalb immer:

ActionScript:
  1. clearInterval( intervalname)
  2. delete intervalname;


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 04-01-2005, 12:46   #10 (permalink)
rookie
 
Benutzerbild von rok°!
 
Registriert seit: Apr 2002
Beiträge: 370
hm, wenn ich intval ausgebe, bekomme ich mit und ohne delete immer einen inkrementellen wert. also 1. mal aufrufen eine 1, 2. mal aufrufen eine 2, etc.
wo wird dann was gelöscht?

nur wenn ich das interval ohne neuvergabe des zeitwertes aufrufe ist intval immer 1.
__________________
Das Newslettersystem auf deiner Homepage!
rok°! ist offline   Mit Zitat antworten
Alt 04-01-2005, 13:06   #11 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
durch diesen erneuten aufruf von zufall wird der interval schneller erstellt, als er gelöscht werden kann...
wenn du den aufruf rausnimmst aus der funktion test, dann siehst du, dass der interval erst mit delete komplett geräumt ist.
interessant, dass der zähler selbst dann noch inkrementiert, wenn der interval auf null gesetzt wurde.
ein trace zeigt auch, wenn man delete intervalname macht, dass intervalname == undefinert ist.*g*
dennoch werden in der variablenvorschau das interval immer noch geführt und sogar inkrementiert.*lol* - troetz delete und vorherigem clearInterval.

fest steht dennoch, dass du bei normalem aufruf und löschen eines intervals dennoch

clear und delete nehemen solltest/mußt.

wie schon gesagt, dass hier scheint nur diesen effekt zu haben, weil die andere funktion (zufall) gleich wieder gerufen wird, bevor die eigentliche (test) beeendet ist und somit das interval scheinbar noch nicht vollständig entfernt werden konnte...*g*

greetz

kelor
kelor 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:33 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele