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

8fév/080

Flex Effect: Utiliser des effets personnalisés

Maintenant que vous avez crée vos effets (EffectInstance et la factory associée), vous pouvez les utilisez comme un effet standard.

Création de la classe FlagInstance: Flex Effect: Effets personnalisés, définir une classe EffectInstance

Création de la classe Flag.as: Flex Effect: Effets personnalisés, définir une classe Effect Factory (fabrique)

L'exemple suivant montre comment appliquer l'effet Flag crée précédemment à un champ de saisie lorsqu'il perd le focus.

Remplis sous: Effect, Exemple, MXML Lire la suite
8fév/082

Flex Effect: Effets personnalisés, définir une classe Effect Factory (fabrique)

Toutes les classes EffectFactory doient hériter de la classe mx.effects.Effect. Pour cette sous-classe d'Effect, vous devez override les méthodes getAffectedProperties() et initInstance(), et vous devez assigner une référence à la propriété instanceClass.

La méthode getAffectedProperties() doit accepter un paramètre de type EffectInstance. Elle doit toujours appeler super.initInstance(), et elle doit fixer les propriétés nécessaires de l'instance. Par exemple, si vous voulez passer des paramètres de la factory à l'instance, vous devez le faire dans la méthode initInstance().

La propriété instanceClass est une propriété héritée de Effect qui détermine quelle classe est utilisée par la fabrique pour créer des instances. Vous devez fixer la propriété instanceClass. Typiquement, vous devez le faire dans le constructeur.

8fév/080

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.