Visualizzazione dei risultati da 1 a 9 su 9

Discussione: intervalID dinamico

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    795

    intervalID dinamico

    ciao a tutti. ho questo prob:
    ho creato un metodo movieclip.prototype che usa, all'interno della funzione, un setinterval. ora, il problema è questo: se applico questo metodo ad un solo mc, il tutto va. se lo applico a più di uno, entra in crisi: credo di avere individuato il prob nell' intervalID
    (il nome dell'oggetto setTimer). come faccio a renderlo univoco? ovvero, come faccio a fare in modo che gli intervalID dei mc a cui applico il metodo non entrino in conflitto fra loro?
    <sfogo> ma porco giuda, leggerlo l'help online ogni tanto! </sfogo>

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Scrivi un po' qui il metodo che richiama il setInterval..

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    795
    Codice PHP:
    movieclip.prototype.flashing = function(params) {
        
    255;
        
    col = new Color(this);
        
    params.reverse();
        
    params.length-1;
        
    cambiacol = function () {
            
    x=xmath.ceil(1/params[i]);
            if (
    x<=0) {
                
    clearInterval(this.intervallo);
                
    x=255;
                
    i--;
                
    ciclo true;
                
    starter();
            } else {
                
    myColor = {ra:'100'rb:xga:'100'gb:xba:'100'bb:x};
                
    col.setTransform(myColor);
            }
        };
        
    ciclo true;
        
    starter = function () {
            if (
    i>=0) {
                if (
    ciclo == true) {
                    
    ciclo false;
                    
    this.intervallo=setInterval(cambiacolparams[i]);
                }
            }
        }
        
    starter();
    }; 
    e per richiamarlo,
    mc.flashing([1,2,5]);
    per l'esattezza, ho usato
    onClipEvent(load){
    this.flashing([1,2,5]);
    }

    a proposito, se la volete usare, prendetela pure, al max aggiungete un credito
    //flashing copyright by simone nastasi 2003
    <sfogo> ma porco giuda, leggerlo l'help online ogni tanto! </sfogo>

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    795
    ah, a rivederlo adesso, credo che il trigger "ciclo" non serva...
    ulteriore correzione: invece di
    "this.intervallo" usate "intervallo". il problema però persiste...
    <sfogo> ma porco giuda, leggerlo l'help online ogni tanto! </sfogo>

  5. #5
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Prova un po' così:

    codice:
    MovieClip.prototype.flashing = function()
    {
    	this.params = arguments[0].reverse()
    	this.x = 255;
    	this.col = new Color(this);
    	this.i = this.params.length - 1;
    	this.intervallo = setInterval(this, "cambiacol", this.params[this.i]);
    };
    MovieClip.prototype.cambiacol = function ()
    {
    	this.x = this.x - Math.ceil(1 / this.params[this.i]);
    	if (this.x <= 0) {
    		clearInterval(this.intervallo);
    		this.x = 255;
    		this.i--;
    		if (this.i >= 0) this.intervallo = setInterval(this, "cambiacol", this.params[this.i]);
    	} else {
    		this.col.setTransform({ra:'100', rb:this.x, ga:'100', gb:this.x, ba:'100', bb:this.x});
    	}
    };

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    795
    ciao nega, ho provato ma mi dà qualche problema... invece di fare 3 setinterval ne fa 2; ho provato con qualche trace, e x diventa -infinity andando più a fondo, ho visto che this.params non esiste più...
    MovieClip.prototype.flashing = function()
    {
    this.params = arguments[0].reverse();
    this.x = 255;
    this.col = new Color(this);
    this.i = this.params.length - 1;
    this.intervallo = setInterval(this, "cambiacol", this.params[this.i]);
    };
    MovieClip.prototype.cambiacol = function (){
    this.x = this.x - Math.ceil(1 / this.params[this.i]);
    if (this.x <= 0) {
    trace(this.params.toString());//restituisce undefined
    //clearInterval(this.intervallo);
    this.x = 255;
    //this.i--;
    //if(this.i>=0){
    //this.intervallo = setInterval(this, "cambiacol", this.params[this.i]);
    //}
    } else {
    this.col.setTransform({ra:'100', rb:this.x, ga:'100', gb:this.x, ba:'100', bb:this.x});
    }
    };
    <sfogo> ma porco giuda, leggerlo l'help online ogni tanto! </sfogo>

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    795
    scusate l'UP
    <sfogo> ma porco giuda, leggerlo l'help online ogni tanto! </sfogo>

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    795
    risolto!!! il casino succedeva quando, dopo il preload, la scena cambiava di frame... e il mc si "dimenticava" le proprietà (params, i, eccetera.) mi chiedo come mai però...
    <sfogo> ma porco giuda, leggerlo l'help online ogni tanto! </sfogo>

  9. #9
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    E' abbastanza normale, nella seconda scena non è più lo stesso movieclip di prima..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.