Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 移除发现的卡_Actionscript 3_Flash_Actionscript_Removechild - Fatal编程技术网

Actionscript 3 移除发现的卡

Actionscript 3 移除发现的卡,actionscript-3,flash,actionscript,removechild,Actionscript 3,Flash,Actionscript,Removechild,我正在制作一款Flash“记忆”游戏,希望能发现两张相同的牌。一切都很好,只是我需要做的是,当卡被发现,他们将被删除。现在它仍然显示 当我尝试时: removeChild(\u card.currentTarget.\u type) 我收到错误消息: C:\…\MemoryGame.as,第202 1119行:通过引用静态类型卡访问可能未定义的属性currentTarget。 下面是代码的一部分: for(var l:Number = 0; l < 2; l++) {

我正在制作一款Flash“记忆”游戏,希望能发现两张相同的牌。一切都很好,只是我需要做的是,当卡被发现,他们将被删除。现在它仍然显示

当我尝试时:
removeChild(\u card.currentTarget.\u type)

我收到错误消息:
C:\…\MemoryGame.as,第202 1119行:通过引用静态类型卡访问可能未定义的属性currentTarget。

下面是代码的一部分:

    for(var l:Number = 0; l < 2; l++)
    {
        _card = new Card();
        addChild(_card);
        _snow = new Snow();
        _card.setType(_snow);
        _card.x = _cardX;
        _card.y = _cardY;
        _cardX += _card.width + 50;
        _card.addEventListener(MouseEvent.CLICK, checkCards);
        _cards.push(_card);
    }

private function checkCards(event:MouseEvent):void
{

    event.currentTarget.removeEventListener(MouseEvent.CLICK, checkCards);

    if(_firstCard == undefined)
    {
        _firstCard = event.currentTarget;
    }
    else if(String(_firstCard._type) == String(event.currentTarget._type))
    {
        trace("Match");
        _message = "Match";
        message_txt.text = _message;
        _firstCard = undefined;
        _currentMatches ++;
        removeChild(_card.currentTarget._type);
使用时:
removeChild(event.currentTarget)

我收到错误消息:

C:\Users\Rimante\Desktop\gerase\gerase\MemoryGame.as, Line 217  1118: Implicit coercion of a value with static type Object to a possibly unrelated type flash.display:DisplayObject.
试一试

删除firstCard会引发错误,因为您将var设置为未定义。除去

 _firstCard = undefined;
或者将此行移到removeChild行下方

如果需要延迟,请尝试:

function removeCards(firstCard:DisplayObect, secondCard:DisplayObject):void{
    removeChild(firstCard);
    removeChild(secondCard);
}
在您的事件侦听器调用中

setTimeout(removeCards, 1000, _firstCard as DisplayObject, event.currentTarget as DisplayObject);

然后删除removeChild行

我想您应该执行以下操作:

removeChild(event.currentTarget);
此外,我认为您需要:

removeChild(_firstCard);

我想你的意思是谢谢你的回答。我用错误更新了我的第一个问题,谢谢你的回答。我用错误更新了第一个问题,我也更新了答案。编辑问答的整个概念对我来说有点奇怪:)谢谢。现在它只删除第二张卡,我需要同时删除(第一张和第二张)我还有一个问题,现在立即删除卡,第二张卡不会显示。如何在删除卡之前暂停1秒?什么样的<代码>变量定时器1:定时器=新定时器(750,1);timer.start()但它不起作用。你可以用几种方法来实现。就我个人而言,我会编写一个remove方法,它接收MovieClips/sprite作为参数,并通过setTimeout调用这个方法。
removeChild(event.currentTarget);
removeChild(_firstCard);