Derniers Commentaires

  • HB: en fait il faut surtout se demander pourquoi on veut proteger une appli, de qui, quelles parties, etc… si...
  • mika: En effet hb, ton message m’a fait réfléchir. Et ce matin sous la douche naquit une idée. Pourquoi ne pas...
  • hb: Hello, pas sur que ce type de blocage soit vraiment une bonne solution… ca s’appelle se faire justice...
  • mika: Merci pour le code ! c’est un bon début de protection. Je me demandais si il était possible...
  • TiBaker-974: Heu… lol ta parfaitement raison Julien c’est pour ça je suis déçus mais bon on pourra...

Créer une bibliothèque swf avec haXe

Cet article explique comment créer un swf contenant les classes d’un framework par exemple. Cette bibliothèque de classes est développée avec haXe.

logo haxe

logo haxe

Présentation

Créer un swf de classes est très utile pour les applications RIA. La page HTML appelle un swf très léger qui se charge instantanément (voir l’article sur swfobject). Ensuite ce swf léger charge les swf contenant les éléments graphiques, un autre swf contenant les classes du framework utilisé…

Lorsqu’il y a des modifications graphiques à effectuer, il n’y a pas besoin de recompiler l’application RIA, seulement le swf graphique. Lors des évolutions des classes du framework (corrections de bug, nouvelles fonctionnalités…), il suffira de mettre à jour le swf de la bibliothèque. Des opérations transparentes pour l’utilisateur et rapide à mettre en place pour le développeur.

Exemple

Voici la classe haXe que j’utilise pour créer un swf contenant toutes les classes afin de créer une bibliothèque disponible pour les swf chargés dynamiquement.

C’est la classe utilisée pour créer la bibliothèque d’un framework.

Contenu du fichier hxml pour la compilation haXe : -cp F:\HAXE\Framework
-swf-version 9
-main LibraryExt
-swf-header 1:1:40:FFFFFF
–flash-strict
–no-traces

Détails

  • -cp F:\HAXE\Framework : chemin vers les classes du framework.
  • -swf-version 9 : créer un swf compatible avec la version 9 de flash.
  • -main LibraryExt : utilise la méthode main de la classe LibraryExt.
  • -swf-header 1:1:40:FFFFFF : crée un swf de taille 1px par 1px avec 40 fps (images par seconde) et une couleur de fond pour le swf FFFFFF.
  • –flash-strict : compilation des classes en mode strict.
  • –no-traces : désactivation automatique de tous les trace dans le code source.

Construction de la Classe LibraryExt

Pour ajouter une classe dans le swf, il suffit de les importer dans la classe :

import flash.geom.Transform;
import flash.geom.Point;
import flash.geom.Rectangle;
import flash.display.BitmapData;

Il est possible d’ajouter autant de classes que nécessaires dans le swf.
Puis il ne vous reste plus cas mettre en place la méthode main, accompagnée de son constructeur pour la compilation avec haXe.

	/**
	 * Constructeur vide
	 * 
	 * @return Void
	 */
	private function new()
	{}
 
	/**
	 * 
	 * @method 	static main
	 * @return 	Void
	 */
	public static function main ()
	{
		_instance = new LibraryExt();
	}

Classe LibraryExt complète

Pour l’exemple, j’utilise les classes Macromédia, ce qui est bien sur inutile. Pour vos applications RIA, il faut remplacer les imports par les classes de votre application ou framework flash.

// Classes
import flash.geom.Transform;
import flash.geom.Point;
import flash.geom.Rectangle;
import flash.display.BitmapData;
 
import flash.filters.GlowFilter;
import flash.filters.BevelFilter;
import flash.filters.ColorMatrixFilter;
import flash.filters.DropShadowFilter;
 
/**
 * Used for create a library of a Framework
 * 
 * @class LibraryExt
 */
class LibraryExt
{
	/* constantes */
	private static var _instance	: LibraryExt;	// L'instance unique du singleton
 
 
 
	/**
	 * Constructeur vide
	 * 
	 * @return Void
	 */
	private function new()
	{}
 
 
	/**
	 * 
	 * @method 	static main
	 * @return 	Void
	 */
	public static function main ()
	{
		_instance = new LibraryExt();
	}
 
 
	/*----------------------------------------------------------*/
	/*------------- Divers -------------------------------------*/
	/*----------------------------------------------------------*/
 
 
	/**
	 * Returns the string representation of this instance.
	 * 
	 */
	public function toString ():String
	{
		return "[object LibraryExt]";
	}
 
}
Partagez cet article :
  • Digg
  • del.icio.us
  • Facebook
  • Technorati
  • MySpace
  • LinkedIn
  • Wikio FR
  • Yahoo! Buzz
  • Netvibes
  • Google Bookmarks
  • PDF
  • email
  • Print

Articles sur le même sujet :

  1. Créer une bibliothèque swf AS2 compatible MTASC
  2. Classe Main compatible MTASC
  3. Présentation du Langage HAXE
  4. Utiliser des polices partagées dynamiquement en AS3, HAXE et AS2

2 comments to Créer une bibliothèque swf avec haXe

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">