Я просто играю с базовым ActionScript 3 с помощью Flash CS3 Pro.ActionScript 3 Ссылка на класс MovieClip
я ставлю в ключевом кадре этот очень простой код, чтобы дублировать п символов «брендер»:
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());
}
, но я не могу понять, почему: не могли бы вы сказать мне, почему?
Я знаю, что такое кастинг и т. Д. На самом деле в терминах ООП. Как опытный разработчик AS1 и AS2 (медленно и лениво переходя к AS3), я думал, что это была некоторая проблема разработки Flash, а не связанная с программированием. Спасибо, что нашли время ответить. – 2009-08-09 14:25:47