<h2>Votre Formation vidéo</h2><br/>
Votre formation est décomposée<br/>
en chapitres très clairs de 20 à 30 min. <h2>Des exemples SWF </h2><br/>
Chaque leçon est accompagnée<br/>
du code source avec le fla et les classes. <h2>Votre Suivi personnalisé</h2><br/>
Vous pouvez  me poser toutes<br/>
vos questions sous les cours vidéos.

Comment optimiser vos classes AS3 ?

2 questions

Écrit le 18 avril par Matthieu
Publié dans le(s) sujet(s) ActionScript 3

Mots clés : , , , , , , , , ,

Le Kit du Développeur Flash

Voici une astuce très simple et peu connue qui permet d’améliorer les performances des applications flash consommatrices de ressources.

Il suffit de mettre votre code ActionScript en dehors du constructeur.

Il faut savoir que le code AS3 placé dans le constructeur n’est pas du tout optimisé.

Et il peut ralentir fortement votre flash si vous avez beaucoup de classes avec du code à exécuter dans le constructeur.

Cela consiste à ajouter dans le constructeur un appel vers une fonction privée de votre classe. C’est elle qui contiendra tout le code à exécuter du constructeur.

Ci-dessous, un exemple rapide.

Button.as   
package  com.actionscriptfacile.button
{
 
	import flash.display.DisplayObject;
	import flash.display.Sprite;
	import flash.events.MouseEvent;
 
	/**
	 * Permet de créer un composant de type Button avec 3 états différents
	 *
	 * @author Matthieu
	 */
	public class Button
	{
		static public const BUTTON_UP_SKIN:String = "BUTTON_UP_SKIN";		// style graphique normal du bouton
		static public const BUTTON_DOWN_SKIN:String = "BUTTON_DOWN_SKIN";	// style graphique cliqué ou maintenu du bouton
		static public const BUTTON_OVER_SKIN:String = "BUTTON_OVER_SKIN";	// style graphique survolé du bouton
 
		static protected const UP_STATE:String = "UP_STATE";		// état normal du bouton
		static protected const DOWN_STATE:String = "DOWN_STATE";	// état cliqué ou maintenu du bouton
		static protected const OVER_STATE:String = "OVER_STATE";	// état survolé du bouton
 
		protected var m_overStyle:DisplayObject;	// objet graphique représentant l'état OVER
		protected var m_upStyle:DisplayObject;		// objet graphique représentant l'état UP
		protected var m_downStyle:DisplayObject;	// objet graphique représentant l'état DOWN
		protected var m_label:UITextField;			// objet de type UITextField qui est en fait un champ texte amélioré
 
		public function Button()
		{
			/*
			 * on crée une méthode init pour gagner des ressources,
			 * en effet en AS3 tout ce qui se trouvre dans le constructeur n'est
			 * pas optimisé à la compilation,
			 * on met donc toutes nos instructions dans une méthode privée init
			 *
			 */
			init();
		}
 
		/**
		 * Initialise proprement les différents éléments du composant
		 *
		 */
		protected function init():void
		{
			m_label = addChild( new UITextField() ) as UITextField;
			m_label.alignJustify();
			m_label.changeFormat( 'indent', 2 );
			m_label.maxHeight = m_label.height = 0;
			m_label.maxWidth = m_label.width = 0;
 
			m_overStyle = addChild( new Sprite() );
			m_upStyle = addChild( new Sprite() );
			m_downStyle = addChild( new Sprite() );
 
			setState( UP_STATE ); // par défaut affiche le style graphique état normal du bouton
 
			mouseChildren = false; // désactive les évènements souris des enfants
 
			useHandCursor=true;// active le curseur de main sur un bouton pour un sprite
			buttonMode=true;// active le mode button pour un sprite
		}
 
	}
 
}

Et vous, utilisez-vous d’autres astuces pour améliorer les performances de vos applications flash ?

Partagez-les via les commentaires ci-dessous !



Développez des Jeux et Applications Flash avec la Formation AS3 Facile !

Recevez Gratuitement Des Cours en Vidéos, des codes source et des livrets de formation.
Et en bonus gratuit : Le Framework AS3 Facile ! 


neque. tempus vulputate, sit elementum facilisis risus. ut commodo