Cette interface est implémenté dans trois classes qui définissent trois types temporisations différentes :

FPSBeacon

Envoi l'événement "onEnterFrame" à chaque changement d'image dans l'animation Flash (si le FPS de l'animation est 31, l'événement sera envoyer 31 fois/second).

MSBeacon

Envoi l'événement "onEnterFrame" à un intervalle défini.

FLVBeacon

Permet de s'abonner à un objet VideoDisplay et de recevoir l'événement "onEnterFrame" à chaque changement d'image de la vidéo. :)

Pour abonner une classe à l'une des ces trois temporisations, il suffit d'implémenter l'interface IFrameListener et de l'abonner à un temporisateur.

import com.bourre.transitions.FPSBeacon;
import com.bourre.transitions.IFrameListener;
	
class net.geturl.project.TimeManagerUI
	implements IFrameListener
{
	public function TimeManagerUI ( Void )
	{
		// --
	}
	
	public function start( Void ) : Void
	{
		FPSBeacon.getInstance().addFrameListener( this );
	}
	
	public function stop( Void ) : Void
	{
		FPSBeacon.getInstance().removeFrameListener( this );
	}
	
	public function onEnterFrame() : Void
	{
		// actions
	}
}

En plus de ces trois classes, pixLib contient deux «Contrôleurs», CommandFPS et CommandMS, ces deux classes permettent de gérer dans le temps l'exécution de commandes. :)

Delay

CommandFPS et CommandMS permettent de définir un délais avant l'exécution d'une commande. Le code ci-dessous exécutera une seule fois la fonction test après un délai de 3 secondes.

import com.bourre.commands.*;
 
var t:CommandMS = new CommandMS();
 
function test() : Void
{
    trace('hello world');
}
 
t.delay( new Delegate(this, test), 3000 );

Boucles

Avec ces deux classes ont peut aussi ajouter des commandes dans des boucles, càd qu'à chaque exécution de la méthode "onEnterFrame" les commandes liées au contrôleur sont exécutées. Le code ci-dessous exécutera la fonction test toutes les 3 secondes.

import com.bourre.commands.*;
 
var t:CommandMS = new CommandMS();
 
function test(s:String) : Void
{
    trace("hello world");
}
 
t.push( new Delegate(this, test), 3000 );

Pour terminer voici la version globale des contrôleurs : CommandManagerFPS et CommandManagerMS. La seule différence avec CommandFPS et CommandMS est que CommandManagerFPS et CommandManagerMS sont des «singletons» et donc unique dans l'application.

Et si vous êtes en manque de tempo, je peux que vous conseiller le dernier Squarpusher, Hello Everything

Bonne soirée ;)