无论什么时候要想显示在舞台就别忘记addChild,this的妙用

同一目录下的两个类AB,要在A类显示B类里的影片剪辑,那么要在A里定义B的对象b,且要addChild(b),举例说明

package

{

    import flash.display.Loader;

    import flash.display.MovieClip;

    import flash.display.Sprite;

    import flash.events.Event;

    import flash.net.URLRequest;

   

    public class B extends Sprite

    {

       private var login:MovieClip;

       private var l:Loader ;

       public function B()

       {

           l = new Loader();

           var url:URLRequest = new URLRequest("res/ui.swf");

           l.load(url);

           l.contentLoaderInfo.addEventListener(Event.COMPLETE,complete);

       }

       private function complete(e:Event):void

       {

           var myclass:Class = l.contentLoaderInfo.applicationDomain.getDefinition("Login") as Class;

           login = new myclass;

           addChild(login);

       }

 

    }

}

package

{

    import flash.display.Sprite;

    [SWF(width="1000", height="580", backgroundColor="#ffffff", frameRate="17")]//和影片剪辑的图片大小一致防止失真

    public class A extends Sprite

    {

       private var b:B;

       public function A()

       {

           b = new B();//只是取到了B类的一个对象,还没有addChild

           addChild(b);

       }

    }

}

其实有时候可以用addChild(this)来实现,我在开发项目时,PlayerOperate251处,我是想在lookHandler加上那个详细信息面板(点查看按钮就出现),然后在面板上调整小头像的位置,于是我就detailInfoUI=new PlayerInfo()一下(detailInfoUI为在PlayerOperate类中定义的PlayerInfo类的对象),在类PlayerInfo里面的构造函数里面有addChild详细信息面板的对像,但是详细面板却没有显示。因为没有将detailInfoUI addChild

PlayerInfo类里还有一个show函数,里面有MainUIMediator.mainUI.  addChild(this);这里的this指的是PlayerInfo类,而detailInfoUI就是PlayerInfo类的对象,因此如果在PlayerOperate类中调用一下show函数就相当于将PlayerInfo的类对象detailInfoUIaddChild了。这样就无需在PlayerOperate类中写addChilddetailInfoUI)了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值