首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我需要帮助理解Actionscript 3中的父/子关系

我需要帮助理解Actionscript 3中的父/子关系
EN

Stack Overflow用户
提问于 2013-04-24 01:29:46
回答 2查看 989关注 0票数 0

我正在为我教的一个高中班级写一些游戏设计教程,在我用来教和学的几个不同的文件中,我总是纠结于相同的问题。

错误(我确实搜索了这个)是2025“必须是调用者的子级”错误。为了更好地理解这一点,我创建了一个文件,如下所示。我要说明的是,这是一个基于.fla的框架代码,其中我们所做的其他工作是在一个.as文件中。无论如何:

代码语言:javascript
代码运行次数:0
运行
复制
fireButton.addEventListener(MouseEvent.CLICK, fire_fn);
addEventListener(Event.ENTER_FRAME, moveShots);

var speed:int = 20;
var shot:Shot;
var shots:Array=new Array;

function fire_fn(e:Event) {
    shot = new Shot();
    shot.x = gun.x+shot.width;
    shot.y = gun.y;
    addChild(shot);
    shots.push(shot);
}

function moveShots(e:Event) {
    for(var i:int=shots.length-1; i>=0; i--) {
        shots[i].x += speed;
        if(shots[i].x > stage.stageWidth -50) {
           removeChild(shots[i]);
        }
       }
}

我知道问题出在removeChild这一行,但我不清楚应该如何编写它,或者(可能更重要的是)为什么要编写它。欢迎任何意见。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-24 01:35:08

您不能从数组中删除快照。因此,在下一次循环中,将再次满足该条件,但该镜头将已被移除。你需要拼接镜头阵列中的镜头;

试试这个:

代码语言:javascript
代码运行次数:0
运行
复制
function moveShots(e:Event) {
    for(var i:int=shots.length-1; i>=0; i--) {
        shots[i].x += speed;
        if(shots[i].x > stage.stageWidth -50) {
           removeChild(shots[i]);
           shots.splice(i,1);
        }
       }
}
票数 0
EN

Stack Overflow用户

发布于 2013-04-24 01:37:34

首先,你应该做一些错误处理。若要从父项中删除子项,子项必须实际是该父项的子项。国家不能把被绑架的孩子从真正的父母身边夺走,只有绑架者(这是个可怕的类比,但这是有道理的)。

所以..。

代码语言:javascript
代码运行次数:0
运行
复制
if ( shots[i] is DisplayObject && ( shots[i] as DisplayObject ).parent == this ) {
    this.removeChild( shots[i] );
}

这将确保该子对象实际上是一个DisplayObject,并且它的父对象就是您将要从其中删除它的对象。但这并不是真正导致你的问题的原因。删除子项后,还需要将其从数组中删除。

代码语言:javascript
代码运行次数:0
运行
复制
if ( shots[i] is DisplayObject && ( shots[i] as DisplayObject ).parent == this ) {
    this.removeChild( shots[i] );
    shots.splice( i, 1 );
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16175562

复制
相关文章

相似问题

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