作者cjcat2266 (CJ Cat)
看板Flash
标题Re: [问题] AS3的addChild与removeChild问题
时间Sat Jan 5 22:21:29 2008
※ 引述《gargouille (lol)》之铭言:
: ※ 引述《grantchiue (鸭子)》之铭言:
: : function useW1(event:MouseEvent):void{
: : var useway_mc:MovieClip=new Useway();
: : this.addChild(useway_mc); //这里用root和stage都不行,this可过
因为AS3没有所谓的global variable和global function的存在
所以并没有_root这种可以随时使用的global variable
但是每个DisplayObject都有个root和stage的property
root指的就是"这个".swf,就算这个.swf被载入也一样
至於stage这个property要能够指到唯一的Stage instance
需要这个DisplayObject在display list上面
也就是被其他DisplayObjectContainer使用addChild()加到display list
当一个DisplayObject不在display list上的时候,stage的值会是null
另外你这是在一个listener里面,主体不是一个DisplayObject
所以在里面直接用root会没有东西
需要用 event.target.root 才可以
: : useway_mc.x=430.7;
: : useway_mc.y=515.5;
: : }
: : function useW2(event:MouseEvent):void{
: : //var mc:MovieClip=stage.getChildByName(useway_mc);
: : this.removeChild(useway_mc); //不知道怎麽用removeChild()
: : }
: 如果要用getChildByName的话,那你的useway_mc要先设定名称(name)
: 试试看以下的方式:
: useway_mc.name = "useway_mc";
: //这里要先设定名称 name
: function useW2(event:MouseEvent):void{
: //var mc:MovieClip=stage.getChildByName(useway_mc);
: trace(this.getChildByName("useway_mc"));
: this.removeChild(useway_mc); //不知道怎麽用removeChild()
: }
: public function getChildByName(name:String):DisplayObject
: getChildName这里要传字串进去
--
CJ Cat = Croa'J Cat = Cockroach Cat = 西街凯特 = 蜚蠊猫 = 蟑螂猫
Gallery
http://cjcat2266.deviantart.com
ptt2 Board CJWorkshop - 阿多比闪光(Adobe Flash)研讨区
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.228.84.15
1F:→ grantchiue:有点难懂,因为我基础不太够 囧,不过我再照着这研究看 01/06 00:08
2F:→ grantchiue:看~感谢您~ 01/06 00:09