Aller au contenu

POO


GROS_FAIGNAN

Messages recommandés

salut,

j'ai 5 movie clip auquel j'applique des filtre, via AS3, en fonction des evenement produit par l'utilisateur.

par conscequent, d'un point de vue Objet, mes 5 clip sont traité tous de la meme facon sauf en ce qui concerne les filtres (notament le choix de couleur des appliqué aux filtres)

donc, afin de ne pas devoir ecrire des ligne de code pour chaque objet, j'avais attribué a la propriété color (myObject.color) la valeur que je reutilisait dans le filtre.

je recupere ensuite la valeur via "event.target.color"

le probleme c'est que j'ai besoin de pouvoir utilisé plusieur couleur spécifique a chaque occurence de mon objet. (par exemple pour GradientBevelFilter)

j'ai bien essayer d'attribué une nouvelle propriété en faisant

"myObject.Array=new Array()"

en attribuant des valeur a Array,

mais ensuite, lorsque je passe en parramettre des fonction "event.target.Array" sa coince.

si quelqu'un avait une idée pour inclure 1 ou plusieur tableaux de valeur pour chaque objet/occurrence et pouvoir ensuite le passer en parametre de mes fonction ce serait pratique.

code des fonction auquel je doit passer les couleur :

function glow_1(couleur:Array):GlowFilter
{
var glow:GlowFilter = new GlowFilter(); 
glow.color = couleur[0]; 
glow.alpha = 1.7; 
glow.blurX = 4; 
glow.blurY = 4;
glow.inner = true;
glow.strength=2;
glow.quality = BitmapFilterQuality.HIGH; 

return glow;
}

accessoirement j'aurais besoin d'un coup de main sur un atre probleme.

partont du principe que j'ai plusieurs (5 en tout) occurrences d'un meme objet, et que j'ai "myobject.addEventListener(MouseEvent.CLICK, function)".

et partont du principe que mon ecouteur a deja appelé au moins une fois la fonction "function" pour 1 occurence.

je souhaite si cette fonction est appelé pour une autre occurence, alors le premier objet execute "function_2" et, seulement une fois que "function_2" est terminée, l'appel de "function" se fasse pour l'objet sur lequel est apparue l'evemenement (CLICK en l'occurrence)...

Lien vers le commentaire
Partager sur d’autres sites

Pour associer les données tu peux faire quelque chose de ce genre (avec la propriété name de la classe DisplayObject) :

private var _colors = new object();

function ajouterCouleur(name, colorsArray)
{
_colors[name] = colorsArray;
}

function myEvent(event: Event)
{
var myColors = _colors[event.target.name];

// ...
}

Le fait d'ajouter une nouvelle propriété après la création de l'objet ne fonctionne pas avec DisplayObject car ce n'est pas une classe dynamique et l'ajout de propriétés est donc interdit.

Pour ton second problème il me semble que le contrôle de l'ordre de l'appel des fonctions d'un est impossible, donc il va falloir que tu fasse avec (ou alors essaye d'être un peu plus explicite pour que je puisse faire un exemple)

Lien vers le commentaire
Partager sur d’autres sites

Le fait d'ajouter une nouvelle propriété après la création de l'objet ne fonctionne pas avec DisplayObject car ce n'est pas une classe dynamique et l'ajout de propriétés est donc interdit.

ouep, c'est ce que j'avais cru comprendre....

a ce moment la le plus simple serait peut etre de créer une classe héritant de DisplayObject et permettant d'integrer 1 ou plusieur tableau, des flag etc...

Pour ton second problème il me semble que le contrôle de l'ordre de l'appel des fonctions d'un est impossible, donc il va falloir que tu fasse avec (ou alors essaye d'être un peu plus explicite pour que je puisse faire un exemple)

Résolu :ouioui:

j'ai 2 eventListener au démarage : 1 pour mouseOver, et un pour MouseOUT, le mouseOver contient tout mes autres eventListener pour l'objet en question.

mouseOut n'intervient que :

- si un flag mouseOut=true.

- si l'evenement mouseOut se produit,

donc j'ai plus ou moins désactivé l'evenement mouseOut (disons que ma fonction de sortit n'active certain evemenent que sous certaine condition) que je reactive au moment voulue via dispatchEvent(new Event("mouseOut",true)); au moment voulu.

et dernier point, pour les cas ou je devais metre a jour un object en fonction d'un evenement precis sur un autre objet, pour faire simple je teste dans ma fonction mouseOut ces conditions (j'ai une variable qui retient le nom de lobjet précedent) et qui met a jour tous les autre objet de fonction standard, sauf l'objet sur lequel se produit l'evenement.

:transpi: ouai bon j'avoue c'est carrément pas clair ce que je raconte, un peut comme ce que j'ai codé en gros (un vraie travail de sagouin), Mais sa marche : :fumer:

[EDIT]

pour faire plus clair, je part du principe que si "objet_x" doit etre mis a jour avec des "propriété_y" selon "cas_z" alors "tout_les_autre_objet" doivent etre mis a jour avec "propriété_w"

(sauf pour "objet_last" qui selon "cas_i" peut agir d'une facon diférente)

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...