Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-04-2006, 09:54   #1 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
Question setInterval lässt sich nicht clearen...?

aloha!

habe ein setInterval mit schleife;
eigentlich sollte jedesi-interval gecleart werden;
jedoch wird das letzte immer wieder ausgeführt;

hier der code:
PHP-Code:
//nicht relevant:
/*stop();
MovieClip.prototype.link = function(pagename, what) {
    this.T_linkname.autoSize = "LEFT";
    this.T_linkname.text = pagename;
    this.T_linkname.textColor = 0x003366;
    if (work_mc != this) {
        this.onRollOver = function() {
            this.T_linkname.textColor = 0xFF3300;
        };
    }
    this.onRollOut = function() {
        if (work_mc != this) {
            this.T_linkname.textColor = 0x003366;
        }
    };
    this.onPress = function() {
        clicker.start(0, 1);
    };
    this.onRelease = function() {
        if (work_mc != this) {
            _global.work_mc.T_linkname.textColor = 0x003366;
        }
        _global.work_mc = this;
        _root.MC_holder.MC_point.unloadMovie();
        loadMovie(what, _root.MC_holder.MC_point);
        this.T_linkname.textColor = 0xFF3300;
    };
};
*/
var linkArray = ["MC_start""MC_philosophie""MC_service""MC_portfolio""MC_kontakt""MC_impressum"];
for (var 
0i<linkArray.lengthi++) {
    
_root[linkArray[i]].link(" "+linkArray[i].slice(3), linkArray[i].slice(3)+".swf");
    
_root[linkArray[i]]._xscale _root[linkArray[i]]._yscale=0;
}
MC_bg._xscale MC_bg._yscale=MC_holder._xscale=MC_holder._yscale=0;
function 
bg_start() {
    
MC_bg.onEnterFrame = function() {
        
this._xscale += Math.ceil((100-this._xscale)/8);
        
this._yscale this._xscale;
        if (
this._xscale>=100) {
            
delete this.onEnterFrame;
            
this._xscale this._yscale=100;
            
holder_start();
        }
    };
}
function 
scale(mc) {
    
clearInterval(mc.i);
    
mc.onEnterFrame = function() {
        
this._xscale += Math.ceil((100+this._xscale)/8);
        
this._yscale this._xscale;
        if (
this._xscale>=100) {
            
delete this.onEnterFrame;
            
trace(this.i);
            
this._xscale this._yscale=100;
        }
    };
}
function 
holder_start() {
    
MC_holder.onEnterFrame = function() {
        
this._xscale += Math.ceil((100-this._xscale)/8);
        
this._yscale this._xscale;
        if (
this._xscale>=100) {
            
delete this.onEnterFrame;
            
this._xscale this._yscale=100;
            for (var 
0i<6i++) {
                var 
linkTeil i;
                
_root[linkArray[i]].i;
                
linkTeil setInterval(scale400*i_root[linkArray[i]]);
            }
        }
    };
}
bg_start(); 
die fla hängt als MX2004 an;
Angehängte Dateien
Dateityp: rar prob_interval_clearen.rar (5,0 KB, 2x aufgerufen)
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 23-04-2006, 11:22   #2 (permalink)
Neuer User
 
Benutzerbild von Xeef
 
Registriert seit: Sep 2004
Ort: Spain/Ibiza
Beiträge: 942
nun das was du hier machst ist ein unwerantwortlicher leichtsin !

_root[linkArray[i]].i = i;
linkTeil = setInterval(scale, 400*i, _root[linkArray[i]]);


warum es nicht tut ? -->

weil interval bei "1" begint und nicht bei "0"

_root[linkArray[i]].i = i+1;

und es tut

aber auch nur solange wie du kein anderen interval dazwischen schiebst !

_root[linkArray[i]].i = setInterval(scale, 400*i, _root[linkArray[i]]);
ist wesentlich sicherer ! solte mal ein anderer interval dazwischen sein !!!


P.S

hast schon vom "setTimeout" gehort ?
frag nur weil ichs vor 3 tagen das erste mall gesehen habe !
folig undocumentiert ! die params sind die gleiche wie bei setInterval
aber es wird nur einmall ausgefurht muss man alsonicht clearen !
__________________
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 23-04-2006, 15:37   #3 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
aloha!

thx for answer;


but: anscheinend ist setTimeout nicht zuverlässig?
bei DerFrager hats mal net gefunzt, bei thebiz schon.....
Waits in AS ?!

ist anscheinend von Javascript übernommen....
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary

Geändert von andretti (23-04-2006 um 15:46 Uhr)
andretti ist offline   Mit Zitat antworten
Alt 23-04-2006, 15:45   #4 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
...warum wird beim i-trace in der function i von 2-7 gerechnet unt im setInterval von 0-5?

PHP-Code:
function scale(mc) {
    
clearInterval(mc.i);
    
trace(mc.i);
    
mc.onEnterFrame = function() {
        
this._xscale += Math.ceil((100+this._xscale)/8);
        
this._yscale this._xscale;
        if (
this._xscale>=100) {
            
delete this.onEnterFrame;
            
this._xscale this._yscale=100;
        }
    };
}
function 
holder_start() {
    
MC_holder.onEnterFrame = function() {
        
this._xscale += Math.ceil((100-this._xscale)/8);
        
this._yscale this._xscale;
        if (
this._xscale>=100) {
            
delete this.onEnterFrame;
            
this._xscale this._yscale=100;
            for (var 
0i<6i++) {
                
trace(i);
                
_root[linkArray[i]].setInterval(scale400*i_root[linkArray[i]]);
            }
        }
    };

__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 23-04-2006, 15:55   #5 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
solche und ähnliche fragen wurden auch schon oft behandelt.

muster siehe u.a.
http://www.seibsprogrammladen.de/fra...thmen/Interval
mehrere Interval's


"..warum wird beim i-trace in der function i von 2-7 gerechnet und im setInterval von 0-5?.."
weil i in der schleife der index ist auf den inhalt von _root[linkArray[i]].i (== in der funktion mc.i)

_root[linkArray[i]].i = setInterval(scale, 400*i, _root[linkArray[i]]);
trace(i+": "+_root[linkArray[i]].i);
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (23-04-2006 um 16:00 Uhr)
hgseib 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 06:42 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele