检查孩子是否存在as3

时间:2012-10-25 05:11:26

标签: actionscript-3

我想检查一个孩子是否存在以及是否将其删除。如果不做其他事情......我还打算为更多的孩子做检查......

stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown3);

function onKeyDown3(event:KeyboardEvent):void
{
    if( event.keyCode == Keyboard.BACK )
    {
        if (over.stage){
        event.preventDefault();
        removeChild(over);
        gotoAndPlay(350, "Scene 1");
        }else {
        event.preventDefault();
        gotoAndPlay(346, "Scene 1");        
        }

    }
}

我试过了,但它不起作用。但我认为它基本上显示了我想做的事情,但除了其他孩子之外还有更多其他内容。 “Over”只是一个影片剪辑

错误:

TypeError: Error #2007: Parameter child must be non-null.
    at flash.display::DisplayObjectContainer/setChildIndex()
    at Bike_safety_fla::MainTimeline/onKeyDown1()[Bike_safety_fla.MainTimeline::frame146:17]
    at runtime::ContentPlayer/sendKeyUpDown()
    at runtime::SimulatedMobileDeviceContentPlayer/onBack()

1 个答案:

答案 0 :(得分:4)

使用contains()来测试显示列表中是否有over

来自DisplayObjectContainer文档:

  

确定指定的显示对象是否为子节点   DisplayObjectContainer实例或实例本身。搜索   包括整个显示列表,包括此DisplayObjectContainer   实例。每个回归的孙子,曾孙,等等   真。

实施为:

if (this.contains(over))
{
    removeChild(over);
    gotoAndPlay(350, "Scene 1");
}
else
{
    gotoAndPlay(346, "Scene 1");        
}