Je suis simplement en train de jouer avec ActionScript 3 de base en utilisant Flash CS3 Pro.ActionScript 3 Liaison à une classe MovieClip
j'ai mis dans une image clé ce code très simple à dupliquer n symboles "Brander":
for (var i:Number=0; i<20; i++) {
var m = new brander("MS_"+i);
addChild(m);
m.name = "MS_"+i;
m.x = 20*i;
m.alpha = a;
a-=0.05;
m.y = 20;
}
Le symbole est lié à brander.as classe.
La classe est celle-ci:
package {
import flash.display.*;
public class brander extends MovieClip {
var n:String;
//
public function brander(name) {
setName(name);
}
//
function setName(name) {
this.n = name;
}
//
function getName() {
return n;
}
}
}
et il est tout aussi simple.
Maintenant: J'ai remarqué que je ne peux pas vraiment définir quoi que ce soit dans cette classe. Donc, quand j'appelle setName (à la création d'une instance "brander"), je ne mets rien. Est-ce possible?
J'ai testé sans débogage, en écrivant:
btn.addEventListener(MouseEvent.MOUSE_DOWN, test);
//
function test(EVT) {
trace(this.getChildByName("MS_2").getName());
}
Pourquoi lien pouvons-nous une classe lorsque cette classe ne peut pas stocker des informations? Qu'est-ce que je fais mal?
EDIT:
Je trouve cela fonctionne:
function fun(EVT) {
trace((this.getChildByName("M_2") as brander).getName());
}
mais je ne peux pas comprendre pourquoi: pourriez-vous s'il vous plaît me dire pourquoi?
Je sais ce que le casting, etc., est en termes de POO. En tant que développeur chevronné AS1 et AS2 (passant lentement et paresseusement à AS3), je pensais que c'était un problème de création Flash, et non un problème de programmation. Merci de prendre le temps de répondre. –