質問

私は単に遊びを基本ActionScript3Flash CS3のプログラムです。

くつろぎいただけます、キーフレームこの非常に簡単なコードの重複n"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;
}

シンボルがbrander.としてのクラスです。

このクラスは、このあと

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());
}

なぜリンククラスがこのクラスができな店です。なぜですか?


編集:

ここでは:

function fun(EVT) {
    trace((this.getChildByName("M_2") as brander).getName());
}

がするのは納得がいかない:教えてくださいのですが?

役に立ちましたか?

解決

その理由は、getChildByName()funcctionを返しまDisplayObject.のDisplayObjectはgetName()機能です。のbranderクラスが継承す(広)DisplayObject、そのためにつきましては、もうしばらくしてDisplayObject.だいたい話せるbrander機能に必要なキャストでbrander最初に、使用します。

り多くの情報 鋳造, 多型継承 数箇所にインターネット。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top