Class 从类as3中删除图形

Class 从类as3中删除图形,class,actionscript-3,flash,graphics,Class,Actionscript 3,Flash,Graphics,当我在游戏中单击一个按钮时,它会使用as3中的图形绘制形状。简单形状,如圆形和矩形 我想删除在我的一个类中发生某些事情时绘制的图形 基本上,当有一个hitTestObject(工作正常)时,我希望舞台上的所有图形都被清除 if (gb2.hitTestObject(h1s2)) { trace ("holed") ySpeed2=0; xSpeed2=0;

当我在游戏中单击一个按钮时,它会使用as3中的图形绘制形状。简单形状,如圆形和矩形

我想删除在我的一个类中发生某些事情时绘制的图形

基本上,当有一个hitTestObject(工作正常)时,我希望舞台上的所有图形都被清除

if (gb2.hitTestObject(h1s2))
            {
                trace ("holed")
                ySpeed2=0;
                xSpeed2=0;
                this.visible=false;


                var mcSplash:MovieClip =parent.getChildByName("mcSplash") as MovieClip;
                mcSplash.visible=true;
                //parent.drawings.graphics.clear();
            }
使用parent.drawings.graphics.clear()的尝试;未成功,它给了我以下错误:

第481119行:通过静态类型flash的引用访问可能未定义的属性图形。显示:DisplayObjectContainer

有什么建议吗

更新:

这就是在最小时间线上绘制图形的方式

var drawings:Shape = new Shape;

for (i=0; i<numRecs; i++) 


{

    recStartX = Number(xmlContent.rec[i].startpoint.@ptx);

    recStartY = Number(xmlContent.rec[i].startpoint.@pty);

    recWidth = Number(xmlContent.rec[i].dimensions.@w);

    recHeight = Number(xmlContent.rec[i].dimensions.@h);

    fillColor=int(xmlContent.rec[i].look.fillhex);

    lineThick = Number(xmlContent.rec[i].look.strokethick);

    lineColor = int(xmlContent.rec[i].look.strokehex);

    drawings.graphics.lineStyle(lineThick, lineColor);

    drawings.graphics.beginFill(fillColor);

    drawings.graphics.drawRect(recStartX,recStartY,recWidth,recHeight);

    drawings.graphics.endFill();

}
var图纸:形状=新形状;

对于(i=0;i什么是
draws
?!如果在mcSplash中绘制,则应使用
mcSplash.graphics.clear()
。如果绘制名为
draws
的子对象,则应首先作为子对象(在mcSplash获取之后)获取它:
var draws=mcSplash.getChildByName('draws);draws.graphics.clear()
。您可以编写检查来查看发生了什么:
if(mcSlpash){if(drawings){
,等等。

创建一个数组并推入每个形状/rect。 然后迭代并删除

for(var iteration:int = 0; iteration < rectArray.length; iteration++)
    this.removeChild(rectArray[iteration]);
希望这会有所帮助:)
Z

我的初步猜测是
绘图
在父级中不存在。请尝试调试您的应用程序,以了解
父级
实际引用的是什么,以及它是否也是
绘图
的父级。请检查上面的编辑sorrydrawings是否是绘制新形状的主时间线代码中的一个变量:-var drawings:Shape=new Shape();这还不够,因为我们不知道什么是
parent
-您还没有指定执行此代码的位置。如果找到
mcSplash
,则
drawings
应与
mcSplash
处于同一级别,否则将找不到它。只需修复路径-使用
trace(child)
如果您不能使用断点..忘记父级,这没什么。这只是我试图使图形消失。我只需要在类内发生事件时删除主时间轴操作脚本中绘制的图形。还有其他建议吗?
MovieClip(this.root).removeChild(rectArray[iteration]);