Я просто играю с базовым ActionScript 3, используя Flash CS3 Pro.
Я вставил в ключевой кадр этот очень простой код, чтобы дублировать n символов «брандера»:
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;
}
Символ связан с классом brander.as.
Это класс:
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;
}
}
}
и это тоже просто.
Теперь: я заметил, что не могу ничего установить в этом классе. Поэтому, когда я вызываю setName (при создании экземпляра "brander"), я ничего не устанавливаю. Это возможно?
Я тестировал без отладки, просто написав:
btn.addEventListener(MouseEvent.MOUSE_DOWN, test);
//
function test(EVT) {
trace(this.getChildByName("MS_2").getName());
}
Почему мы связываем класс, если этот класс не может хранить информацию? Что я делаю не так?
EDIT:
Я обнаружил, что это работает:
function fun(EVT) {
trace((this.getChildByName("M_2") as brander).getName());
}
но я не могу понять ПОЧЕМУ: не могли бы вы сказать мне, почему?