Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [MX04] setInterval

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    1,037

    [ 2004 ] setInterval


    Qualcuno mi sa dire, per quale motivo il setInterval non funziona piu, se la istanzo in una variabile locale?

    codice:
    class VirtualInterval
    {
    	private var _id:Number = 0;
    	function VirtualInterval(vel:Number)
    	{
    		inizia(vel);
    	}
    	private function traccia():Void
    	{
    		trace('traccia');
    	}
    	private function inizia(vel:Number):Void
    	{
    		_id = setInterval(this, 'traccia', vel);
    	}
    }
    se richiamo sulla timeline, funziona correttamente:
    codice:
    var vi:VirtualInterval = new VirtualInterval(1000);
    ma se richiamo la funzione, l'intervallo non parte. Da qualche mi sembrava di aver visto, che abbiano usato EventDispatcher.Ma non so come applicarlo???
    codice:
    function locale():Void
    {
    	var vi:VirtualInterval = new VirtualInterval(1000);
    }
    locale();

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

    codice:
    class VirtualInterval
    {
    	private var _id:Number = 0;
    	function VirtualInterval(vel:Number)
    	{
    		inizia(vel);
    	}
    	private function traccia():Void
    	{
    		trace('traccia');
    	}
    	private function inizia(vel:Number):Void
    	{
    		_id = setInterval(traccia, vel);
    	}
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    1,037
    aia cosi pero perdo il riferimento alla istanza
    codice:
    class VirtualInterval
    {
    	private var _id:Number = 0;
    	private static var nameNum:Number = 0;
    	private var nome:String;
    	function VirtualInterval(vel:Number)
    	{
    		nome = 'VirtualInterval'+nameNum;
    		_id++;
    		inizia(vel);
    	}
    	private function traccia():Void
    	{
    		trace('traccia '+nome);
    	}
    	private function inizia(vel:Number):Void
    	{
    		_id = setInterval(traccia, vel);
    	}
    }
    nel trace:
    traccia undefined

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.