Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-01-2006, 12:19   #1 (permalink)
Banned
 
Benutzerbild von _level0
 
Registriert seit: Jan 2006
Beiträge: 849
setInterval -> funktion in funktion

folgendes Problem:

ich wollte einen "mehrstufigen" tween coden.

das erste stück ist ein colorTransform das sich via setIntervall demendwert nähert und bei erreichen eigentlich ein anderes intreval setzen sollte,
tuts aber nicht...

der ganze wuelltext würd jetzt den rahen sprengen daher ein kleines beispiel das ebenso nicht gehen dürfte

PHP-Code:
var intervalId:Number;
var 
count:Number 0;
var 
maxCount:Number 10;
var 
duration:Number 20;

function 
executeCallback():Void {
 
trace("interval1");
 if(
count >= maxCount) {


 
clearInterval(intervalId);

var 
intervalIdx:Number;
var 
countx:Number 0;
var 
maxCountx:Number 10;
var 
durationx:Number 20;

function 
executeCallbackx():Void {
 
trace("intervalIdx: " intervalIdx " count: " countx);
 if(
count >= maxCount) {
 
clearInterval(intervalId);
 } 
 
countx++;
}

intervalIdx setInterval(this"executeCallbackx"durationx);


 } 
 
count++;
}

intervalId setInterval(this"executeCallback"duration); 
was ich nun rausgefunden hab durch trace versuche das das zweite eingebetete interval intervalIrdx garnicht erst initialisiert wird ...

frage warum? wegen dem "this".. ok dürfte sich da auf die funktion beziehen was trage ich anstelle dessen ein "this._parent" oder "_leve0" hatte ich gestern abens schonmal ohne erfolg versucht und statisch angeben möchte ich die pfade nicht.
_level0 ist offline   Mit Zitat antworten
Alt 06-01-2006, 13:06   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!
Wieso willst du die Funktion eigentlich nicht außerhalb der anderen definieren? Ansonsten so:
PHP-Code:
var intervalId:Number;
var 
count:Number 0;
var 
maxCount:Number 10;
var 
duration:Number 20;
function 
executeCallback():Void {
    
trace("interval1");
    if (
count>=maxCount) {
        
clearInterval(intervalId);
        var 
intervalIdx:Number;
        var 
countx:Number 0;
        var 
maxCountx:Number 10;
        var 
durationx:Number 20;
        var 
executeCallbackx = function():Void {
            
trace("intervalIdx: "+intervalIdx+" count: "+countx);
            if (
countx>=maxCountx) {
                
clearInterval(intervalIdx);
            }
            
countx++;
        };
        
intervalIdx setInterval(executeCallbackxdurationx);
    }
    
count++;
}
intervalId setInterval(executeCallbackduration); 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 06-01-2006, 13:09   #3 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Nimm die Definition der zweiten Funktion und der weitern Variablen aus der ersten Funktion raus und definier sie normal wie die anderen und es funktioniert! Ausserdem hattest du noch vergessen bei der zweiten Grössenabfrage die x anzuhängen (Copy&paste!? )
PHP-Code:
var countx:Number 0;
var 
maxCountx:Number 10;
var 
durationx:Number 20;
function 
executeCallbackx():Void {
    
trace("intervalIdx: "+intervalIdx+" count: "+countx);
    if (
countx>=maxCountx) {
        
clearInterval(intervalIdx);
    }
    
countx++;
}
function 
executeCallback():Void {
    
trace("interval1");
    if (
count>=maxCount) {
        
clearInterval(intervalId);
        
intervalIdx setInterval(this"executeCallbackx"durationx);
    }
    
count++;
}
intervalId setInterval(this"executeCallback"duration); 
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha 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:40 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele