Apache Adobe Flex TutorialTutoriaux Adobe Flex & AIR en Français

6août/102

Flex ActionScript – Benchmark Flash Player 10 et Flash Player 10.1

Pour ceux qui auraient encore des doutes, oui Flash Player 10.1 est une énorme évolution par rapport à Flash Player 10. Jackson Dunstan a d'ailleurs publié un benchmark comparatif entre Flash Player 10 et Flash Player 10.1:

Je ne vais pas reprendre les résultats sur cette page, visitez donc son site, tout est bien présenté. Comme prévu, Flash Player 10.1 est globalement plus rapide que FP10, notamment au niveau des boucles.

Seul regret, l'appel à une variable par un getter est maintenant 3x plus lent (2x plus lent avec FP 10) que l'accès à une variable public. C'est compréhensible car on appelle une fonction avant d'accéder à la variable mais c'est dommage, car cela rendait le code plus propre. Il faut savoir faire des compromis …

Flash Player 10.1 Performance: Part 1
6jan/092

Flex ActionScript – Optimiser votre code AS3

Le dernier article parlait de la manière la plus rapide de copier une ArrayAS3. Ce genre d'optimisation simple peut vous permettre d'accélérer vos temps de calcul lorsque vous faîtes de lourdes opérations en ActionScript. Voici quelques conseils qui vous permettront d'optimiser facilement votre code ActionScript. La plupart de ces conseils sont repris de plusieurs blog dont le wiki d'OsFlash

Conseils et généralités

N'utilisez pas de type Object si  vous connaissez les propriétés que vous allez utiliser. Par exemple, si vous voulez définir un point dans l'espace, vous pourriez créer un Object avec 3 propriétés (x, y, z). Pourtant, il faudrait mieux créer une classe Vertex avec ces 3 propriétés xyz. Les performances sont bien meilleures!

6jan/097

Flex ActionScript – Copier un Array AS3 (tableau) le plus rapidement possible

Je suis tombé aujourd'hui sur cet article très intéressant publié par agit8: Flash AS3 optimization – Fastest way to copy an array. Cet article traite comme vous l'avez compris de la manière la plus rapide de copier un tableau. Comme il est en anglais et que flex-tutorial est entièrement en français, voici une petite traduction :) .

Pour copier un tableau (Array) en AS3, vous avez de nombreuses options. Voici celle qui ont été testées par agit8:

  • Boucle for simple avec des appels à push
  • Boucle while
  • Copie/Clone d'un ByteArray
  • Boucle for optimisée
  • méthode slice() de la classe Array
  • méthode concat() de la classe Array

Pour effectuer leurs tests, ils ont pris un tableau de 500 000 éléments (nombres à virgule générés aléatoirement) en tant que source.

27déc/082

Flex ActionScript – Test des performances de l'ActionScript 3

Il y a quelques jours, je suis tombé sur un article très intéressant sur le blog de businessintelligence.me, qui a crée un outil permettant de mesurer les performances de certaines portions de code en ActionScript 3 (AS3). Par exemple, il compare différentes manières d'itérer sur un tableau. Exemple simple, dans une boucle for(), si vous itérez sur un Number ou sur un int, cela peut être deux fois plus long. Le test comporte pour l'instant 9 tests différents de code ActionScript, en vous donnant le code des différents tests effectués.

ActionScript 3 Performance Tester

Parmi ces tests, vous pourrez retrouver comment:

  • Incrémenter une variable (i++, i = i+1, i +=1)
  • Division (i/2, i*0.5, i<<1)
  • Parcours de structures (Array, Object, Dictionary)
  • Boucles (for, while, …)
  • … et même vos propres morceaux de code (beta)
1nov/082

Flex Tree – Peupler un Tree avec un dataProvider XML et Array (en MXML et ActionScript)

Comme les DataGrid, les composants Tree héritent des listes standard avec un comportement particulier. Dans le cas des Tree, cette spécialité est de pouvoir présenter un dataProvider de manière hiérarchique.

Bien que la plupart des listes affichent une liste linéaire d'éléments (verticalement, horizontalement ou en grille), les Tree Flex vous permettent d'afficher des éléments ayant des enfants. Ces types de data provider sont appelés "hierarchical data providers". Le XML suivant montre une relation hiérarchique dans laquelle les villes (city) sont des éléments enfant des états (states).

<state label="CA">
	<city label="Los Angeles"/>
	<city label="San Francisco"/>
</state>
<state label="MA">
	<city label="Boston"/>
</state>

Un arbre Tree peut représenter ce genre de données. Les Tree ont deux types d'éléments: les éléments branch (branches) et leaf (feuilles). Quand un dataProvider a des éléments enfant, ils sont automatiquement traités comme branches, ce que signifie qu'ils peuvent être étendus dans l'arbre.

Voici un exemple qui utilise un mx:Tree pour afficher la data:

<mx:Tree labelField="@label" width="200">
	<mx:XMLListCollection>
		<mx:XMLList>
			<state label="CA">
				<city label="Los Angeles"/>
				<city label="San Francisco"/>
			</state>
			<state label="MA">
				<city label="Boston"/>
			</state>
		</mx:XMLList>
	</mx:XMLListCollection>
</mx:Tree>