Mes questions pour bien débuter [AS3 - newbies] - Flash/ActionScript - Programmation
Marsh Posté le 15-12-2008 à 09:04:37
Ben normalement quand on programme bien en AS3,
ta varible est private, et ce sont tes getters et setter qui sont publics.
à partir de ce moment là tu peux via le setter lancer un event pour signaler que ta variable a été changer.
Code :
|
Marsh Posté le 15-12-2008 à 09:09:39
Thx, je vais aussi tôt me renseigner sur la notion de Getters / Setters que je ne conceptualise pas trop.
Marsh Posté le 15-12-2008 à 09:10:42
Bah apres pour utiliser ta variable c'est comme d'hab :
var obj:Test = new Test();
obj.maVariable = 3;
>>> la variable a été changée
Marsh Posté le 15-12-2008 à 09:31:55
Mwarf, je lis plein de truc sur get / set mais je ne comprend pas trop, dsl, j'ai encore du chemin.
Marsh Posté le 16-12-2008 à 05:54:25
Mais t'as essayé l'exemple de Gatsu ?
Le get/set, tu l'utilises tout les jours, sans le savoir.
Ca sert a definir ou recuperer la valeur d'une variable.
Exemple :
var monClip = new MovieClip();
monClip.x = 3; (set)
trace(monClip.x) (get)
De son coté, AS comprend que tu crees un objet MovieClip.
Si tu vas dans l'aide a MovieClip et que tu regardes la proprieté 'x' (il faut que tu affiches les proprietés publics hérités pour ca) http://livedocs.adobe.com/flash/9. [...] ect.html#x , tu vas voir qu'il est ecrit : [read-write] (dsl j'ai la version anglaise)
Donc, c'est une propriété que tu peux lire et ecrire. (get & set)
D'ailleurs si tu regardes bien l'aide, il te le precise:
public function get x():Number
public function set x(value:Number):void
Ce qui te permet au passage de savoir ce que va retourner ta methode.
Dans le cas du get, il te retourne un nombre (ex: trace(monclip.x) // display "100" )
Dans le cas du set, ca ne retourne rien, mais tu dois lui passer un parametre (un nombre)
Ca parait simple parce que c'est MovieClip et c'est la premiere classe qu'on apprend quand on ouvre Flash. Mais dans les classes plus compliqués, c'est bien de savoir a l'avance ce que ca renvoi et ce qu'il faut lui envoyer.
Des fois tu n'as que le get
http://livedocs.adobe.com/flash/9. [...] tml#mouseX
Tu ne peux pas attribuer de variable a ta propriété.
Bref, pour revenir a ton cas, dans la classe MovieClip, quand tu modifies le x, tu utilises un 'set', et ca deplace automatiquement ton clip sur la scene.
Action > Reaction. Et c'est ce que tu veux.
Action monObj.maVar = 3;
Reaction "Vous avez changé la variable"
Donc t'as pas besoin de plus que l'exemple de Gatsu ...
Marsh Posté le 16-12-2008 à 11:57:59
Ok, ça commence à rentrer, mon pépin c'est que je me force à utiliser l'AS3 pour PV3D, et il faut donc que je m'habitue à sortir le code dans une classe. Ça vous parait surement con, mais c'est pas évident pour moi, je vous remercie d'ailleurs de m'y consacrer de votre temps ...
J'accuse la tolérance de l'as2 de m'avoir donné de mauvaises habitudes...
Marsh Posté le 15-12-2008 à 08:53:40
Bonjour à tous ! (Oh, Zed, merci d'être venu !)
Comme certains le savent, je me suis lancé dans l'Action-Script, mais n'ayant eu qu'une formation de base, je suis plutôt limité dans mes possibilités.
J'arrive très souvent à solutionner mes défis, mais je chie un code qui en fera vomir plus d'un, alors pour m'améliorer, je fais appel à vous.
Ici sera donc ma cabane à question. Merci à tous ceux qui s'y incrusteront
Comment faire pour "détecter" le changement d'une valeur de variable proprement (Y a t-il un Listener magique ?)
En gros, à chaque fois qu'une variable change, je veux lancer une fonction.
J'ai bricoler quelque chose de fonctionnel, mais surement lourd pour le CPU :
Voila, des surveillants comme ça il m'en faut 5 ou 6, donc, pas très propre non ?...
Message édité par abais le 15-12-2008 à 18:46:37
---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.