Tout d'abord, quelques pré-requis. Vous devez disposer de la configuration suivante :

  • Flex 2.0.1
  • Flash CS 3

Une fois tout cela installé, nous allons pouvoir commencer.

Coté Flash :

Nous allons d'abord créer un nouveau clip (notre futur composant, en fait), que nous appellerons myComponent, sans oublier l'export pour actionscript.

Puis dans ce nouveau clip, nous créons un autre clip (celui que nous allons contrôler depuis Flex) que nous appellerons myClip, et dans lequel nous dessinons un simple rectangle.

Puis, dans le clip 'myComponent', nous rajoutons le code suivant :

import flash.display.*;
import flash.geom.*;
 
var trans:Transform = new Transform(this.myClip);
var ct:ColorTransform = new ColorTransform();
 
function colorChange(p:uint)
{
	ct.color = p;
	trans.colorTransform = ct;
}

Puis, avec le clip 'myComponent' sélectionné dans la bibliothèque, nous préparons notre composant pour Flex en utilisant la nouvelle commande 'Make Flex Component' (disponible uniquement si vous avez bien installé Flex Component Kit for Flash CS3).

Un message nous confirme que l'export s'est bien déroulé :

Puis enfin, nous exportons notre SWC :

Notre composant est prêt, voyons maintenant comment l'utiliser depuis Flex.

Coté Flex :

Créez un nouveau projet. A la racine de celui-ci, importez notre composant 'myComponent.swc'. Puis, dans les propriétés de votre projet, indiquez au compilateur le chemin de notre composant :

Puis, dans le fichier principal, rentrez le code suivant :

 
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
	xmlns:FlashComps="*" width="430" height="220">
	<mx:Canvas width="160" height="120" left="10" top="10">
	<FlashComps:myComponent id="myComp"/>
	</mx:Canvas>
	<mx:ColorPicker x="178" y="10" id="CP" 
	change="myComp.colorChange(this.CP.selectedColor)"/>
</mx:Application>

Et maintenant, on teste ! Voici ce que vous devriez obtenir :

;

Nous pouvons donc contrôler notre clip, sans utilisation de localConnection.

Un exemple plus parlant :

;

Voilà pour aujourd'hui...