Flex Effect: Effets personnalisés, définir une classe EffectInstance
La classe EffectInstance est celle utilisée comme gabarit pour les objets auquels on applique un effet. Vous ne créez pas directement des instances de cette classe, normalement. Cette action est prise en charge par la fabrique (factory). Par exemple, lorsque vous utilisez un effet Move, l'objet effet qui est réellement appliqué au composant est de type MoveInstance. Tipiquement, vous ne créez pas directement des objets MoveInstance. Au lieu de cela, l'instance est créee automatiquement par la fabrique. Voyons maintenant comme créer une class EffectInstance.
Toutes les classes EffectInstance doivent hériter de mx.effects.EffectInstance, et au minimum, toutes les sous-classes de EffectInstance doivent override la méthode play() et cette méthode doit aussi appeler la méthode super.play(). De plus, les classes EffectInstance doivent avoir un constructeur acceptant un paramètre de type Object. Ce paramètre est la cible de l'effet qui sera automatiquement passé au constructeur quand il est appelé par la fabrique. Le constructeur doit appeler super() et passer le paramètre.
L'exemple suivant place simplement un point rouge dans le coin haut droit d'un composant.
Fichier FlagInstance.as:
package
{
import mx.effects.EffectInstance;
import flash.display.Shape;
public class FlagInstance extends EffectInstance
{
private var _color:Number;
public function set color(value:Number):void{
_color = value;
}
public function get color():Number{
return _color;
}
// le constructeur doit accepter un paramètre
// et le passer au super constructeur
public function FlagInstance(newTarget:Object){
super(newTarget);
}
// tous les effets doivent override la méthode play()
override public function play():void{
// appel de la méthode super.play()
super.play();
// créer une shape représentant un point rouge
var shape:Shape = new Shape();
shape.graphics.lineStyle(0, 0, 0);
shape.graphics.beginFill(_color, 1);
shape.graphics.drawCircle(0,0,5);
shape.graphics.endFill();
// déplace la shape dans le coin haut gauche du composant
shape.x = target.x + target.width;
shape.y = target.y;
// ajoute la shape a la liste d'affichage
target.parent.rawChildren.addChild(shape);
}
}
}
Flex Effect: Effets personnalisés, définir une classe Effect Factory (fabrique)
Articles similaires
- Flex Effect: Effets personnalisés, définir une classe Effect Factory (fabrique)
- Flex Effect: Création d'effets Tween personalisés (TweenEffectInstance) et exemple
- Flex Effect: Utiliser des effets personnalisés
- Flex ActionScript – Héritage en ActionScript 3
- Flex Preloader: Créer un Preloader personnalisé





