Ich spiele einfach mit ActionScript 3 mit Flash CS3 Pro.ActionScript 3 MovieClip-Klassenverknüpfung
ich in einem Keyframe setzen diesen sehr einfachen Code n "Brander" Symbole zu duplizieren:
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;
}
Das Symbol verknüpft ist brander.as Klasse.
Die Klasse ist diese:
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;
}
}
}
und es ist zu einfach.
Jetzt: Ich habe bemerkt, dass ich in dieser Klasse nichts wirklich einstellen kann. Also, wenn ich setName (bei der Erstellung einer "brander" -Instanz) anrufe, setze ich nichts. Ist das möglich?
ich ohne Debuggen getestet, indem man einfach schreiben:
btn.addEventListener(MouseEvent.MOUSE_DOWN, test);
//
function test(EVT) {
trace(this.getChildByName("MS_2").getName());
}
Warum verknüpfen wir eine Klasse, wenn diese Klasse Informationen nicht speichern kann? Was mache ich falsch?
EDIT:
fand ich dies funktioniert:
function fun(EVT) {
trace((this.getChildByName("M_2") as brander).getName());
}
aber ich kann nicht verstehen, warum: Können Sie mir bitte sagen, warum?
Ich weiß, was Casting, etc. sind in Bezug auf OOP. Als erfahrener AS1- und AS2-Entwickler (langsam und träge zu AS3 wechselnd) dachte ich, dass es sich um ein Flash-Authoring-Problem handelt, nicht um ein Programmierproblem. Danke, dass Sie sich die Zeit genommen haben, zu antworten. –