Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182

    dubbio su dynamic class

    ciao a tutti, allora...

    recentemente mi sono imbarcato nella creazione di qualche classe personalizzata per delle transizioni e mi sono subito posto il problema di utilizzare dei metodi ridefinibili in runtime così come si fa con la classe Tween (onMotionChanged, onMotionFinished ecc...) così ho verificato la possibilità di definire e richiamare questi metodi in runtime e ho trovato possibile farlo solo rendendo la classe di tipo dynamic... faccio un esempio

    codice:
    dynamic class Prova {
    	private var __start:Number;
    	private var __limit:Number;
    	private var __interval:Number;
    	function Prova (limit:Number) {
    		__start = 0;
    		__limit = limit;
    		__interval = setInterval(this, '__process__', 100, __start, __limit);
    	}
    	private function __process__ (start:Number, limit:Number):Void {
    		start++;
    		if(start >= limit){
    			this['delete']()
    			this['onFinished']();
    		}
    	}
    	private function delete (){
    		if(__interval > 0){
    			clearInterval(__interval);
    		}
    	}
    	public function onFinished () {};
    }
    sul .fla
    codice:
    var prova:Object = new Prova(100);
    prova.onFinished = function(){
    	trace("finito!!!");
    }
    ora chiedo, è questo il modo corretto di agire? va bene usare dynamic o ci sono dei problemi di "sicurezza" della classe? c'è un modo diverso di ottenere il medesimo risultato?

    grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    In realtà non serve assolutamente una classe dinamica. quello che vuoi fare (credo) è questo:

    codice:
    class Prova {
    	private var __start:Number;
    	private var __limit:Number;
    	private var __interval:Number;
    	public var onFinished:Function;
    
    	function Prova (limit:Number) {
    		__start = 0;
    		__limit = limit;
    		__interval = setInterval(this, '__process__', 100);
    	}
    	private function __process__ ():Void {
    		__start++;
    		if(__start >= __limit){
    			endProcess()
    			onFinished();
    		}
    	}
    	private function endProcess (){
    		if(__interval > 0){
    			clearInterval(__interval);
    		}
    	}
    }

  3. #3
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da negatyve
    In realtà non serve assolutamente una classe dinamica. quello che vuoi fare (credo) è questo:
    mi sembra di averci provato anche così... ma se poi provo a ridefinire l'evento quando utilizzo un'istanza della classe, mi da errore :master: forse così non ho provato però lo farò più tardi, ora purtroppo non posso

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ok, provato... perfetto grazie nega, sempre grandissimo

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.