求教这个应该怎么办?

hellNo 2012-03-09 04:52:21

var SearchObj:Array=[]
var sbgObj:Array=[]
var SearchID:int=0
for (var sid:uint=0; sid<10; sid++)
{

var s:Sprite=new Sprite();
var sbg:Sprite=new Sprite();
sbg.graphics.beginFill(0x00FFFF, 5);
sbg.graphics.drawRect(16,100+ sid*17, 109, 24);
sbgObj[sid] = sbg;
s.addChild(sbgObj[sid]);
SearchObj[sid] = s;
addChild(SearchObj[sid]);
}
while (SearchID < 10)
{
if (SearchObj[SearchID] != null && stage.contains(SearchObj[SearchID]))
{
trace(SearchID)
removeChild(SearchObj[SearchID]);
//这个地方只会循环一次,只会把SearchObj[0]这个remove掉,我怎么把SearchObj[1-9]都remove掉啊???
}
SearchID++;
}
...全文
38 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
diffmaker 2012-03-09
  • 打赏
  • 举报
回复
经测试代码没有问题,全部被移除了。
var SearchObj:Array=[]
var sbgObj:Array=[]
var SearchID:int=0
trace("-->",this.numChildren);
for (var sid:uint=0; sid<10; sid++)
{

var s:Sprite=new Sprite();
var sbg:Sprite=new Sprite();
sbg.graphics.beginFill(0x00FFFF, 1);
sbg.graphics.drawRect(16,100 + sid * 17, 109, 14);
sbgObj[sid] = sbg;
s.addChild(sbgObj[sid]);
SearchObj[sid] = s;
addChild(SearchObj[sid]);
}
trace("-->",this.numChildren);
while (SearchID < 10)
{
if (SearchObj[SearchID] != null && stage.contains(SearchObj[SearchID]))
{
trace(SearchID)
removeChild(SearchObj[SearchID]);
}
SearchID++;
}
trace("-->",this.numChildren);

输出:
--> 0
--> 10
0
1
2
3
4
5
6
7
8
9
--> 0

2,275

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计/Flash/Silverlight 开发 Flash流媒体开发
社区管理员
  • Flash流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧