我想检查一个孩子是否存在以及是否将其删除。如果不做其他事情......我还打算为更多的孩子做检查......
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()
答案 0 :(得分:4)
使用contains()来测试显示列表中是否有over
。
来自DisplayObjectContainer文档:
确定指定的显示对象是否为子节点 DisplayObjectContainer实例或实例本身。搜索 包括整个显示列表,包括此DisplayObjectContainer 实例。每个回归的孙子,曾孙,等等 真。
实施为:
if (this.contains(over))
{
removeChild(over);
gotoAndPlay(350, "Scene 1");
}
else
{
gotoAndPlay(346, "Scene 1");
}