首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误#2025年AS3

错误#2025年AS3
EN

Stack Overflow用户
提问于 2011-05-10 19:30:59
回答 1查看 3.9K关注 0票数 1

我试着像小鸡入侵者一样制作游戏,我得到了这样的错误:

ArgumentError: Error #2025:提供的DisplayObject必须是调用方的子级。在flash.display::DisplayObjectContainer/removeChild()的超级学生7_fla::MainTimeline/moveBullet()

这个问题发生在我的太空船发射的时候。

要解决这个问题,我需要知道两件事:

  1. 我的子弹被定义为MovieClips,它们不在舞台上。所以我把他们带到舞台上来:

函数射击(e:事件):void{ var子弹=新子弹();// movieClip .addChild(子弹);Bullet.addEventListener(Event.ENTER_FRAME,moveBullet);}//结束射击

我想知道这样能不能把子弹加到舞台上?还是有别的办法?

  1. 这里是让子弹移动的代码:

函数moveBullet(e:Event):void{e.Target t.y -=10;for(var i=0;i

敌人-是所有敌人的容器(movieClips)

EN

回答 1

Stack Overflow用户

发布于 2011-05-10 19:51:37

似乎具有moveBullet函数的类与所有敌人的容器不一样,因此您正在删除一个不是容器的子容器的MovieClip,正如错误消息所解释的那样。你可以这样做:

代码语言:javascript
复制
if(MovieClip(e.target).parent)
{
      MovieClip(e.target).parent.removeChild(MovieClip(e.target));
}

它从添加到的父事件中移除事件的目标。如果它没有添加到任何地方的显示列表中,也不会删除它,所以您不会得到其他错误。

或者,由于您声明enemy是容器,所以可以这样做:

代码语言:javascript
复制
enemy.removeChild(MovieClip(e.target));
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5955411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档