A加载B,B发生的变化

A取名为TestA,编译后有TestA.swf. TestA里面有一个类叫SayHello(见下图)

B取名为TestB,编译后有TestB.swf. TestB里面有一个跟TestA同样的类SayHello(包名和类名都一样)。稍微修改下TestB的SayHello(见下图)

接下来用TestA加载TestB,看看TestB的SayHello的say()会输出什么

public function TestB()
{
    var say:SayHello=new SayHello();
    say.say();
}
public function TestA()
{
            init();
}
        
private function init():void
{
    var loader:Loader=new Loader();
    addChild(loader);
    loader.load(new URLRequest("TestB.swf"));
}

>>>hello B

输出正常。下面再修改下:

private function init():void
{
    var loader:Loader=new Loader();
    addChild(loader);
    loader.load(new URLRequest("TestB.swf"));
        
        //TestA的SayHello      
    var say:SayHello=new SayHello();
    say.say();
}

>>>hello A

>>>hello A

咦!怎么TestB也输入“hello A”了?

原文地址:https://www.cnblogs.com/in1ts/p/3686122.html