Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-09-2006, 14:09   #1 (permalink)
Frau Arafna
 
Benutzerbild von _root.Sabine
 
Registriert seit: Oct 2002
Ort: Hamburg
Beiträge: 952
clearInterval funktioniert nicht

Hallo ihr schlauen, ich habe folgendes, hochkompliziertes script:

PHP-Code:
window_mc.scroller_down_mc.onPress = function() {
    
    var 
test setInterval(scroll_down300); 
    function 
scroll_down() {
        
window_mc.content_mc._y -= 40;
    }
}

window_mc.scroller_down_mc.onRelease = function() {
    
trace("blabla");
    
clearInterval(test);

wenn ich das script seperat (also einfach in der timeline ) laufen lassen wird eder interval brav gecancelt, als onRelease funktioniert es leider nicht. Wo liegt da mein denkfelher und was muss ich machen damit es funktioniert?
__________________

kid a
_root.Sabine ist offline   Mit Zitat antworten
Alt 11-09-2006, 14:23   #2 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
Hi.

Teste mal die Erstellung ohne var

test = setInterval(scroll_down, 300);

oder aber den Abbruch mit _root

clearInterval(_root.test);

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 11-09-2006, 14:26   #3 (permalink)
Frau Arafna
 
Benutzerbild von _root.Sabine
 
Registriert seit: Oct 2002
Ort: Hamburg
Beiträge: 952
in der tat, ohne var funktioniert es. vielen dank (:
__________________

kid a
_root.Sabine ist offline   Mit Zitat antworten
Alt 11-09-2006, 14:44   #4 (permalink)
Flashbitch
 
Benutzerbild von X-Tender
 
Registriert seit: Oct 2003
Ort: Hannover
Beiträge: 279
mit dem "var" hast du ja die variable local in der funktion nur gehabt, deshalb kannte er sie später nicht mehr (:
__________________
Fuchtelworld
X-Tender ist offline   Mit Zitat antworten
Alt 11-09-2006, 14:50   #5 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
>mit dem "var" hast du ja die variable local in der funktion nur gehabt
Das dachte ich auch, nur warum kann sie dann (nach eigener Angabe)
direkt von der Timeline aus das Interval löschen?

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 11-09-2006, 16:20   #6 (permalink)
---
 
Benutzerbild von LeBensch
 
Registriert seit: Jan 2002
Ort: Baden-Baden
Beiträge: 172
Anschlußfrage...

Hallo, ich klink mich hier mal ein, da ich auch ein Problem mit Intervallen habe.
Dazu ein paar Fragen:

1) existieren per setInterval erzeugte Intervalle auch noch, nachdem der Movie, in dem sie erzeugt wurden, wieder aus der Bühne entladen ist?
2) Der Bezeichner "interval_ID" von interval_ID = setInterval(blablabla); ist global, d.h. von überall in einem Film per einfachem clearInterval(interval_ID); abrufbar und somit das Interval von überall löschbar? Oder muss ich je nachdem den Pfad zum Interval-Bezeichner angeben wie z.B. clearInterval(_root.mc1.mc2.Interval_ID); oder so?
3) Ich gehe davon aus, dass es keine Funktion gibt, mit der man alle zu einem bestimmten Zeitpunkt existierenden Intervalle auf einen Schlag löschen kann, auch wenn man deren Interval_ID nicht kennt. Stimmt das oder gibts da mittlerweile ne schlaue Funktion? (Außer der Geschichte mit: speichere alle IDs in nem Array und geh das dann durch. Das meinte ich nicht!)

Danke im vraus für eure Antworten

Grüßles
LeBensch
__________________
Es gibt nichts gutes, außer man tut es
--
Wenn man keine Ahnung hat: Einfach mal die Fresse halten!
--
Helga: Hägar, du hörst immer nur was du hören willst. Du bist der perfekte Ignorant!
Hägar: Perfekt? Meinst du wirklich?
--
Die Dinge im Leben sind nicht nur schwarz oder weiß. Sie existieren in einem Kontinuum von Graustufen und diese sind im besten Falle auch noch bunt!
LeBensch ist offline   Mit Zitat antworten
Alt 11-09-2006, 16:33   #7 (permalink)
Flashbitch
 
Benutzerbild von X-Tender
 
Registriert seit: Oct 2003
Ort: Hannover
Beiträge: 279
1.) Gute frage, mach eine einfache Trace funktion und probier es mal aus
2.) Wenn sie globla ist kannst du von überall das intervall löschen
3.) ne gibts net, mach entweder eine einfache varaiblendeklaration "interval_1","interval_2" mit einer "maxInterval" variable die du dann durchratterst oder halt ein Array wo das gespeichert wird. dakann amn aucheinfacher sachen reintun udnrausnehmen.
__________________
Fuchtelworld
X-Tender ist offline   Mit Zitat antworten
Alt 11-09-2006, 16:43   #8 (permalink)
---
 
Benutzerbild von LeBensch
 
Registriert seit: Jan 2002
Ort: Baden-Baden
Beiträge: 172
Danke für die schnelle Antwort...ich geh mal tracen

Grüßles
LeBensch
__________________
Es gibt nichts gutes, außer man tut es
--
Wenn man keine Ahnung hat: Einfach mal die Fresse halten!
--
Helga: Hägar, du hörst immer nur was du hören willst. Du bist der perfekte Ignorant!
Hägar: Perfekt? Meinst du wirklich?
--
Die Dinge im Leben sind nicht nur schwarz oder weiß. Sie existieren in einem Kontinuum von Graustufen und diese sind im besten Falle auch noch bunt!
LeBensch ist offline   Mit Zitat antworten
Alt 11-09-2006, 16:55   #9 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Naja, man kann schon alle laufenden Intervalle löschen ohne den Namen zu kennen:
PHP-Code:
this.createEmptyMovieClip("mc"1);
mc.iv_blablub setInterval(function () {
    
trace("huch");
}, 
200);
iv setInterval(function () {
    
trace("hallo");
}, 
100);
setInterval(function () {
    
trace("ah was...");
}, 
300);
function 
killInterval(tl) {
    for (var 
i in tl) {
        if (
typeof tl[i] == "number") {
            
clearInterval(tl[i]);
        } else if (
tl[i] instanceof MovieClip) {
            
killInterval(tl[i]);
        }
    }
}
function 
onMouseDown() {
    
killInterval(this);

Allerdings bleibt hier der Intervall ohne Namen übrig (warum eigentlich?) und besonders "schön" ist das natürlich auch nicht.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 11-09-2006, 18:16   #10 (permalink)
---
 
Benutzerbild von LeBensch
 
Registriert seit: Jan 2002
Ort: Baden-Baden
Beiträge: 172
Hab das trace mal im übergeodneten Movie ausprobiert und krieg als Ergebnis - nachdem der Movie, in dem das setInterval erzeugt wurde entladen ist - "undefined" zurück. Was ja an sich schon gut ist. Allerdings macht mich die Ausgabe von folgendem stutzig:

Zitat:
//Zufallszahl erzeugen - Code steht im letzten Bild von _root.mc1.mc2
function ZufallsIntervall(minVal, maxVal) {
return minVal + Math.floor(Math.random()* (maxVal + 1 -minVal));
}

Zufallszahl = 1000*ZufallsIntervall(2,7);

//Funktion die von setIntervall aufgerufen wird,
//zu "mc2-Anfang" wechselt und setIntervall löscht
function Springer(){
trace("INNEN DAVOR Interval : "+Interval);
clearInterval(Interval);
trace("INNEN DANACH Interval : "+Interval);
_root.mc1.mc2.gotoAndPlay("mc2-Anfang"); //Sprung zurück an den Anfang von _root.mc1.mc2
}

//gibt in Millisekunden an, wann an den Anfang zurückgesprungen werden soll
Interval = setInterval(Springer,Zufallszahl);
und im ersten Frame steht noch ein trace:
Zitat:
trace("Interval : "+Interval);
Rückgabe von den traces sind folgende:
Zitat:
//erster Durchgang
Interval : undefined
INNEN DAVOR Interval : 7 //oder irgendeine andere Nummer halt
INNEN DANACH Interval : 7 //dieselbe wie bei "INNEN DAVOR Interval"

//nächster Durchgang, nachdem in _root.mc1.mc2 wieder an den Anfang gesprungen wurde
Interval : 7
INNEN DAVOR Interval : 15 //oder irgendeine weitere Nummer halt
INNEN DANACH Interval : 15 //dieselbe wie bei "INNEN DAVOR Interval"

//usw.
Ich habe erwartet, dass die Interval-ID nach dem Aufruf von clearInterval(Interval); nicht mehr existiert...aber dem ist wohl nicht so, wenn das trace im ersten Frame diese noch ausgibt.
Komische Sache.

Grüßles
LeBensch
__________________
Es gibt nichts gutes, außer man tut es
--
Wenn man keine Ahnung hat: Einfach mal die Fresse halten!
--
Helga: Hägar, du hörst immer nur was du hören willst. Du bist der perfekte Ignorant!
Hägar: Perfekt? Meinst du wirklich?
--
Die Dinge im Leben sind nicht nur schwarz oder weiß. Sie existieren in einem Kontinuum von Graustufen und diese sind im besten Falle auch noch bunt!
LeBensch ist offline   Mit Zitat antworten
Alt 18-09-2006, 13:26   #11 (permalink)
Neuer User
 
Registriert seit: Aug 2003
Beiträge: 111
Also bie mir krankelt das auch rum mit den Intervallen:

PHP-Code:
var nIntervalKasten1:Number;

function 
kastenBounceOut(z:Number):Void {
    
+= 0.065;
    
_root["kasten"+z].kasten._width weite[z]*(Math.sin(a)+Math.cos(a));
    
_root["kasten"+z].kasten._height hoehe[z]*(Math.sin(a)+Math.cos(a));
    
_root["kasten"+z].kasten._x xwert[z]*(Math.sin(a)+Math.cos(a));
    
_root["kasten"+z].kasten._y ywert[z]*(Math.sin(a)+Math.cos(a));
    
_root["kasten"+z].kasten._alpha -= 1.5;
    if (
_root["kasten"+z]._alpha<=2) {
        
clearInterval(_root["nIntervalKasten"+z]);
        
trace("stopped");
    }
    
updateAfterEvent();
    
}
//controls für die Kästen
function closeWindows() {
    
0;
    
nIntervalKasten1 setInterval(kastenBounceOut101);
    
/*nIntervalKasten2 = setInterval(kastenBounceOut, 10, 2);
    nIntervalKasten3 = setInterval(kastenBounceOut, 10, 3);
    nIntervalKasten4 = setInterval(kastenBounceOut, 10, 4);
    nIntervalKasten5 = setInterval(kastenBounceOut, 10, 5);*/
}
mcMenu1.onRelease = function():Void  {
    
closeWindows();
    
openWindow(1);
}; 
der stoppt das Interval, welches ganz onben deklariert wurde und in der funktion geschlossen wird, nicht. dabei liegt alles im 2ten Frame auf der hauptzeitleiste (root).

weiß einer, wieso?

mfg-

p.s.: in der fkt selbst gehts mit dem schließen, ist aber ja net der Sinn
DeepSky ist offline   Mit Zitat antworten
Alt 18-09-2006, 13:39   #12 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Wie wäre es, wenn du den richtigen Alpha-Wert abfragst?
PHP-Code:
if (_root["kasten"+z].kasten._alpha<=2) { 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 18-09-2006, 15:43   #13 (permalink)
Neuer User
 
Registriert seit: Aug 2003
Beiträge: 111
hm? das ist doch der "richtige". Laut trace etc... kann dir nicht ganz folgen

Geändert von DeepSky (18-09-2006 um 15:45 Uhr)
DeepSky ist offline   Mit Zitat antworten
Alt 18-09-2006, 16:54   #14 (permalink)
liebt Skorpionin
 
Benutzerbild von Skorpion
 
Registriert seit: Apr 2003
Beiträge: 1.258
Zitat:
Zitat von LeBensch Beitrag anzeigen
Ich habe erwartet, dass die Interval-ID nach dem Aufruf von clearInterval(Interval); nicht mehr existiert...aber dem ist wohl nicht so...
Natürlich enthält deine Variable Interval nach dem Aufruf von clearInterval(Interval) immer noch denselben Wert wie davor, du weist der Variablen schliesslich nirgends einen neuen Wert zu.
Skorpion ist offline   Mit Zitat antworten
Alt 18-09-2006, 18:17   #15 (permalink)
---
 
Benutzerbild von LeBensch
 
Registriert seit: Jan 2002
Ort: Baden-Baden
Beiträge: 172
@Skorpion: Ok, das klingt logisch
Trotzdem bleiben noch die Fragen, die noch nicht vollständig geklärt sind. Wie lange lebt so n'Interval? Existiert es auch noch, nachdem der Movieclip, der es erzeugt hat, aus dem Player gelöscht wurde? Wenn ich das über die Interval-ID nicht herausfinde, wie dann?

Grüßles
LeBensch
__________________
Es gibt nichts gutes, außer man tut es
--
Wenn man keine Ahnung hat: Einfach mal die Fresse halten!
--
Helga: Hägar, du hörst immer nur was du hören willst. Du bist der perfekte Ignorant!
Hägar: Perfekt? Meinst du wirklich?
--
Die Dinge im Leben sind nicht nur schwarz oder weiß. Sie existieren in einem Kontinuum von Graustufen und diese sind im besten Falle auch noch bunt!
LeBensch 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