Flash CS3 Pro を使用して基本的な ActionScript 3 をいじっているだけです。
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 を呼び出すときは、何も設定しません。これは可能ですか?
次のように書くだけで、デバッグなしでテストしました。
btn.addEventListener(MouseEvent.MOUSE_DOWN, test);
//
function test(EVT) {
trace(this.getChildByName("MS_2").getName());
}
クラスが情報を保存できないのに、なぜクラスをリンクするのでしょうか? 私は何を間違っていますか?
編集:
これが機能していることがわかりました:
function fun(EVT) {
trace((this.getChildByName("M_2") as brander).getName());
}
理由がわかりません。理由を教えてください。