Actionscript 3 延迟匹配游戏给出错误#2007

Actionscript 3 延迟匹配游戏给出错误#2007,actionscript-3,Actionscript 3,我使用的是我在谷歌上找到的一个教程,效果很好。然而,我有一些问题要让它以我喜欢的方式工作 我试着让第二张牌挂上一小段时间,这样孩子(玩家)可以在比赛时看到比赛 不幸的是,我的代码给了我一个类型错误:Error#2007:在我的匹配游戏中,参数child必须是非空的运行时错误,当我在移除集合之前单击一张新卡时,匹配的一对将返回,并且新单击的卡将被移除(自行移除)。我将感谢任何帮助 这是错误,之后是我的代码: TypeError: Error : Parameter child must be

我使用的是我在谷歌上找到的一个教程,效果很好。然而,我有一些问题要让它以我喜欢的方式工作

我试着让第二张牌挂上一小段时间,这样孩子(玩家)可以在比赛时看到比赛

不幸的是,我的代码给了我一个类型错误:Error#2007:在我的匹配游戏中,参数child必须是非空的运行时错误,当我在移除集合之前单击一张新卡时,匹配的一对将返回,并且新单击的卡将被移除(自行移除)。我将感谢任何帮助

这是错误,之后是我的代码:

  TypeError: Error : Parameter child must be non-null.
        at flash.display::DisplayObjectContainer/removeChild()
        at MatchingGameObject9/remove_tiles()
        at flash.events::EventDispatcher/dispatchEventFunction()
        at flash.events::EventDispatcher/dispatchEvent()
        at flash.utils::Timer/tick()
包{
导入flash.display.*;
导入flash.events.*;
导入flash.text.*;
导入flash.utils.getTimer;
导入flash.utils.Timer;
公共类MatchingGameObject9扩展了MovieClip{
//博弈常数
专用静态const boardWidth:uint=6;
专用静态常数板高:uint=5;
私有静态常量card水平间距:Number=87;
专用静态常量cardVerticalSpacing:Number=87;
专用静态常数boardOffsetX:Number=20;
私有静态常数boardOffsetY:Number=45;
私有静态常量pointsformach:int=100;
私有静态常量pointsformis:int=-5;
私人信用卡:信用卡;
私人信用卡:信用卡;
私有var cardsLeft:uint;
个人分数:int;
私有变量gameStartTime:uint;
私有var游戏时间:uint;
专用变量暂停定时器:定时器;
私有变量gameScoreField:TextField;
私有变量gameTimeField:TextField;
公共函数匹配GameObject9():void{
//列一张卡号清单
var cardlist:Array=new Array();

对于(var i:uint=0;i我认为您需要以不同的方式组织删除。例如:

var removalQueue:Array = new Array;

addEventListener(Event.ENTER_FRAME, onRemove);

function onRemove(e:Event):void
{
    if (!removalQueue.length) return;

    var anEntry:Object = removalQueue[0];

    if (getTimer() < anEntry['time']) return;

    // Delete entry from queue.
    removalQueue.shift();

    removeChild(anEntry['first']);
    removeChild(anEntry['second']);

    gameScore += anEntry['score'];
    cardsLeft -= 2;

    // The rest of your code...
}

启动pause_timer后,它不会停止(因为cardsLeft>0)并继续调用remove_tiles(…)一次又一次,在第二次调用时,firstCard和seconsCard都为空。当玩家在脚本等待让他看到他在移除前拾取的第二个磁贴时,会出现错误。取而代之的是,第三个磁贴被移除,出现错误。我尽了最大努力,但找不到解决方案。谢谢!你给了我答案!
var anEntry:Object =
{
    "time": getTimer() + 2000,
    "first": firstCard,
    "second": secondCard,
    "score": pointsForMatch
}

removalQueue.push(anEntry);