Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 31-10-2004, 19:50   #1 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
clearInterval for runaways

- durch click auf button lade ich eine swf, diese enthält ein setInterval,
- ich clicke auf weitern button und lade erneut eine swf,
- click ich jetzt auf den ersten button wird das setInterval erneut aufgerufen und es läuft jetzt doppelt, wer kennt einen workarround noch aktive intervalle zu löschen?
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 31-10-2004, 23:10   #2 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
du weißt doch, wie die intervalle in deinen externen
movies heißen. setzt also in das onpress vor dem
loadmovie ganz einfach ein 'clearInterval(name des intervalls im externen)'
wenn es das interval schon gibt, dann ist es jetzt
hinüber, wenn nicht, dann schießt die anweisung einfach ins leere.
warrantmaster ist offline   Mit Zitat antworten
Alt 01-11-2004, 02:58   #3 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Aloa!
Warum nicht einfch den den Buttom sperren, wenn der schon mal aufgerufen wurde!`?

Hi warrant
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 01-11-2004, 09:30   #4 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Hi.

Wenn Du per Button den Film lädst,
der das setInterval beherbergt,
dann würde ich in diesem Film
zuerst ein clearInterval aufrufen,
damit immer erst das setInterval
gelöscht wird bevor es erneut
aufgerufen wird.

Gruß
John
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 01-11-2004, 09:52   #5 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
merci vielmals für die rege beteiligung

die seiten werden über xml-file generiert und das wechselt, da kommen swfs rein die haben ein interval oder auch solche die keine haben, ich will da nicht großartig unterscheiden sondern einen workarround haben der mir beim click auf einen mc(das sind bei mir eigtl. immer mcs und keine button, nur die hier dienen halt als button)zunachst jedes eventuelle interval löscht.

warrantmaster - ich weiß wohl wie meine intervalle heißen will das beim click auf meine mc_btn aber nicht einzeln mitgeben müssen

rustyCake - da liest man soviele gute beiträge von dir und dann das hier, die seite soll natürlich jeder zeit wieder aufgerufen werden können, da macht es wenig sind sie zu sperren

thebiz - diese idee habe ich auch verfolgt, hat aber nicht funktioniert, er hat sie mir einfach nicht gelöscht

was ich jetzt gemacht habe ist folgendes

ActionScript:
  1. MovieClip.prototype.killAllIntervals = function(){
  2.      for(obj in this)clearInterval(this[obj]);
  3. }

sämtliche swfs werden bei mir geladen in einen mc namens picHolder, die mcs zum laden der swfs werden dynamisch generiert aus einer xml-datei und erhalten beim onRelease-event den aufruf picHolder.killAllIntervals;

beim ersten check scheint das auch alles zu passen, kann das wer von euch nochmal gegenchecken oder überprüfen ob das was dagegen spricht das so zu machen.

der aufruf clearInterval(irgendwas) macht doch nur etwas wenn es sich bei irgendwas auch um ein intervall handelt, oder?
__________________
[mooseMash]

Geändert von mooseMash (01-11-2004 um 10:05 Uhr)
mooseMash ist offline   Mit Zitat antworten
Alt 01-11-2004, 10:46   #6 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
@mose

nice idea !

PHP-Code:
function bla(){trace(" bla  "+a++)}
function 
blub(){trace(" blub "+b++)}
killAllIntervals = function(){for(obj in this)clearInterval(this[obj])} 
inter=setInterval(bla,500)
inter1=setInterval(blub,500)
_root.onMouseDown=function(){killAllIntervals()} 
mir fällt auch kein grund ein, der dagegen sprechen würde.
als erweiterung der movieclip-klasse jedoch unsinnig.
simple funktion und fertig.

grz

hi@froind rusty
warrantmaster ist offline   Mit Zitat antworten
Alt 01-11-2004, 11:06   #7 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
die erweiterung der mc-klasse scheint mir auch überzogen aber was ist bei deinem beispiel wenn das interval nicht auf der _root sitzt sondern in einem mc

mach einen leeren mc(mc_1) und leg ihn auf die bühne, in dem leeren mc schreibst du inter=setInterval(_root.bla,500)
bei _root.onMouseDown=function(){killAllIntervals()} hustet er dir was und läuft natürlich weiter

um das möglichst global handeln zu können scheint mir da die erweiterung nicht ganz abwegig

greetings
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 01-11-2004, 11:28   #8 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Na dann würde ich die MovieClip Klasse
um diese Methode erweitern.
Was spricht denn schon dagegen?
Mir fallen da keine Nachteile ein.

Gruß
John
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 01-11-2004, 12:49   #9 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
statt
ActionScript:
  1. MovieClip.prototype.killAllIntervals = function(){
  2.      for (obj in this)clearInterval(this[obj]);
  3. }
  4. mc.killAllIntervals();
läßt sich auch schreiben
ActionScript:
  1. function killAllInterrvals(mc){
  2.  for (obj in mc)clearInterval(mc[obj]);
  3. }
  4. killAllIntervals(mc);


gibt es da irgendwelche vor-/nachteile?
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 02-11-2004, 00:57   #10 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Zitat:
Zitat von mooseMash
rustyCake - da liest man soviele gute beiträge von dir und dann das hier, die seite soll natürlich jeder zeit wieder aufgerufen werden können, da macht es wenig sind sie zu sperren
Kann ja auch mal einen schlechten Tag haben oder
Fällt mir grad noch ein das derproto schon sinn macht wennst tiefer verschachtelte Mcs ansprechen möchtest, respt Du die Pfade nicht angeben möchtest!!
ActionScript:
  1. MovieClip.prototype.killAllIntervals = function() {
  2.     for (var obj in this) {
  3.         clearInterval(this[obj]);
  4.         this[obj].killAllIntervals();
  5.     }
  6. };
  7. Button_mc.onPress = function() {
  8.     killAllIntervals();
  9. };
Hoi Froind warrant
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"

Geändert von RustyCake (02-11-2004 um 03:18 Uhr)
RustyCake ist offline   Mit Zitat antworten
Alt 30-11-2009, 17:01   #11 (permalink)
<°)))><
 
Benutzerbild von Goldesel
 
Registriert seit: Apr 2008
Beiträge: 38
In einem anderen Forum gefunden(der Vollständigkeit halber), damit werden alle Intervalle(zumindest die ersten 200 in der globalen Liste) gelöscht:
PHP-Code:
function clearAllIntervals(pMaxIntervalls:Number):Void
{
    if(!
pMaxIntervalls)
   {
      
pMaxIntervalls 200;
   }

   for(var 
i:Number 0pMaxIntervallsi++)
   {
      
clearInterval(i);
   }
}
clearAllIntervals(); 
Zitat:
... noch als Nachtrag. Die Intervals haben keinen bestimmten Scope. Flash legt einfach eine Nummerierte Liste an und diese kann man dann durchgehen.
Quelle: Intervalle aus geladenen swf's killen [Flash 8] - Flash @ Flashhilfe.de
Goldesel 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 23:09 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele