作者STARGAZERs (星之影)
看板Flash
标题Re: [问题] removechild
时间Thu Nov 18 09:23:32 2010
※ 引述《iii125 (小 i)》之铭言:
: 我现在是在做一个记忆力配对的游戏
: 我游戏制作的步骤是
: 我用for回圈每次乱数addchild一个影片片段里的物件
: 然後过几秒後再将这些物件removeChild
: 不过我现在遇到的问题是
: 每次只能remove掉我乱数选出来的最後一个物件
: 前面addchild的物件消不掉
: 我之前有用过removeChildAt方式成功过
: 只不过当我放到网路上试的时候
: 会因为载入速度不一而移除到其它的物件
: 所以才想用removeChild的方式
: 而我想问是不是因为addChild顺序会影响物件的变数名称
: 还是有其他原因?
: 请板上大大指点
: 原始档=>http://tinyurl.com/33np5yy
看完原始档很明显你是搞错了 as3 的命名原则....
你是试看 trace(f.name)
你会发现 name 都是 instanceX (X是一个数字)
这表示元件的名称叫做 instanceX
不然 stage 上面就会有一堆叫做 f 的元件了
小修改一下应该就可以了
用 第一格当作说明
你在 frame1 L=28 的地方有一个
f.name='f'+String(j);
这样就会命名成为 f0, f1 f2 .....
下面 removeChild 改写成为
for (var j2:int = j2<listlength;j++) {
removeChild(stage.getChildByName("f"+String(j2)));
}
这样三个你乱数放上来的东西应该就可以顺利拿掉了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.43.118.160
1F:推 iii125:感谢S大的回覆!!! 不过我是把stage拿掉才成功 11/18 13:29
2F:→ STARGAZERs:抱歉 我写回文的时候没测试... 11/18 15:10
3F:→ STARGAZERs:不过没有需要 stage 应该是因为你前面也都没放 11/18 15:10
4F:推 iii125:原来如此! 感谢S大详细的解说! 11/19 01:54