移除类内的图形,如3

问题描述 投票:0回答:2

当我在游戏中点击一个按钮时,它会使用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();没有成功,它给了我这个错误。

481 1119行:通过静态类型flash.display:DisplayObjectContainer的引用访问可能未定义的属性draws。

有人有什么建议吗?

更新。

这就是在最小时间线上,画图的方式。

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();

}
class actionscript-3 flash graphics
2个回答
0
投票

创建一个数组并推入每个shaperect.然后通过这个迭代并删除。

for(var iteration:int = 0; iteration < rectArray.length; iteration++)
    this.removeChild(rectArray[iteration]);

或者如果你从一个类中调用这个函数,可以使用

MovieClip(this.root).removeChild(rectArray[iteration]);

希望对大家有所帮助:)Z


0
投票

什么是 drawings?! 如果你用mcSplash画画,你应该用 mcSplash.graphics.clear(). 如果你画一个叫 drawings你应该先把它作为一个孩子来获取(在mcSplash获取之后)。var drawings = mcSplash.getChildByName('drawings); drawings.graphics.clear();. 你可以写检查看看是怎么回事。if (mcSlpash) { if (drawings) {...等等...

© www.soinside.com 2019 - 2024. All rights reserved.