2014-03-01 74 views
0

我每次按下按钮都会设置一个状态。然后它进入一个框架和动作脚本中,无论状态如何,它都会向舞台添加一个子项并再次更改状态,但是当您再次单击该按钮时,子项将移除并且状态将更改回到之前的状态,并且相同孩子再次被添加。这里是我的代码:Actionscript 3.0,adobe flash cs6 - 删除小孩

// first frame and will never come back to this one 
function blueTurnValve(event:MouseEvent) // to go to the frame 
{ 
gotoAndPlay("blue"); 
STATE = 1; 
} 


var redscreen:redfilling = new redfilling(); 
if (STATE == 2) 
{ 
removeChild(redscreen); 
STATE = 1; 
} 

if (STATE == 1) 
{ 
addChildAt(redscreen,2); 
STATE = 2; 
} 

//after the child was added 
function blueTurnValve1(event:MouseEvent) 
{ 
gotoAndPlay("blue"); 
} 

,但它不会工作,我得到的输出误差(只删除子前):

引发ArgumentError:错误#2025:提供的DisplayObject必须是来电者的孩子。 at flash.display :: MovieClip/gotoAndPlay() at p1_fla :: MainTimeline()在flash1显示:: DisplayObjectContainer/removeChild() at p1_fla :: MainTimeline/frame2()[p1_fla.MainTimeline :: frame2:35] /blueTurnValve1()[p1_fla.MainTimeline::frame30:19]

我的代码有什么问题?

+0

如果(STATE == 2){ removeChild之(redscreen); STATE = 1; } – JBin

+0

Hiq在添加'redscreen'和删除它之间经过了很长时间?什么是'redscreen'cild? – Craig

回答

0

您需要使用removeChildAt(),因为在STATE==1

您正在将它作为addChildAt(redscreen,2);

尝试,像这样除去它,

removeChildAt(2);