Sujets sur : init as3
Cours ActionScript 3 ‘init as3’
Comment optimiser vos classes AS3 ?

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.
[codesyntax lang= »actionscript3″ title= »Button.as » bookmarkname= »Button.as »]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | 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 } } } |
[/codesyntax]
Et vous, utilisez-vous d’autres astuces pour améliorer les performances de vos applications flash ?
Partagez-les via les commentaires ci-dessous !