[FLASH MX2004][expert] Programmation objet clips dynamiques
Salut,
Je suis en train de travailler sur une construction de menu hiérarchiques en programmation objet.
J'ai une petite lacune qui me turlupine, peut-être allez-vous pouvoir m'aider.
J'ai créé un clip qui ne contient qu'un champ texte et dont le nom de le nom de l'occurrence est txtCaption.
je défini ma classe menu comme suit :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
function clMenu() {
this.link = new String();
this.index = -1;
clMenu.prototype.addProperty("caption",getCaption,setCaption);
this.childMenus = new Array();
}
clMenu.prototype.getCaption = function() {
return this["txtCaption"].text;
}
clMenu.prototype.setCaption = function(value) {
this["txtCaption"].text = value;
}
clMenu.prototype = new MovieClip();
Object.registerClass("clpMenuItem",clMenu); |
L'objectif de cette structure est de pouvoir modifier le texte du champ texte à l'aide de la propriété caption.
Ma question est la suivante :
Lorsque l'on lie un clip a une classe, quelle est la syntaxe qui permet d'accéder aux clips contenus dans le clip lié à partir de l'objet (j'espère que c'est clair comme question) ?
D'avance merci pour votre aide...
Laurent
Je suis un handicapé mental...
Bon j'ai trouvé, c'était une erreur de syntaxe...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
function clMenu() {
this.cap = new String();
this.link = new String();
this.index = -1;
this.childMenus = new Array();
}
clMenu.prototype = new MovieClip();
clMenu.prototype.getCaption = function() {
return this.cap;
}
clMenu.prototype.setCaption = function(value) {
this.cap = value;
this._parent["MenuItem" + this.index].txtCaption.text = value;
}
clMenu.prototype.addProperty("_caption",clMenu.prototype.getCaption,clMenu.prototype.setCaption);
Object.registerClass("clpMenuItem",clMenu); |
Le rattachement de la propriété doit se faire à l'extérieur de l'objet et après l'affectation du prototype movieclip...
clMenu.prototype.addProperty("_caption",clMenu.prototype.getCaption,clMenu.prototype.setCaption);
Désolé pour le dérangement...
Laurent
Réponse à la question pas claire
En fait, j'avais vu juste, on peut accéder directement aux sous objets de l'objet lié à l'aide de this à l'intérieur des méthode de l'objet.
Exemple :
Code:
1 2 3 4 5 6 7 8 9
|
clMenu.prototype.getCaption = function() {
return this.cap;
}
clMenu.prototype.setCaption = function(value) {
this.cap = value;
this.txtCaption.text = value;
}
clMenu.prototype.addProperty("caption",clMenu.prototype.getCaption,clMenu.prototype.setCaption); |
Cette syntaxe fonctionne, ce qui est aussi logique que pratique :)
@+
Laurent
AS1, AS2 quelle importance
Salut,
Je ne dispose pas encore de la version 8 ou 9 de flash, je n'ai que flash MX 2004. J'aime beaucoup de le Action Script de cette version car il est très rigoureux.
Compte tenu de la nature de ce que je fais, je ne suis pas inquiet par rapport à la portabilité vers des versions plus récentes.
La finalité de ce que je suis en train de faire et d'être capable de créer une maquette d'application qui sera évolutive. Étant donné qu'il est assez long de placer des contrôles sur les clips, je préfère tout développer.
Je passerais au nouveau flash si ma maquette intéresse des futurs associés, dans le cas contraire, cela ne restera qu'un exercice de style...
En tout cas, merci pour ton conseil (je n'avais pas compris l'abréviation AS)
@+
laurent