我正在尝试创建一个简单的hitTestObject并查看屏幕上用球击中的线条。如果是,它将清除所有线条并开始新鲜。我非常接近。 checkIt()函数是代码需要发生的地方,它清除了行但没有创建新的形状。当hitTestObject到达时用as3绘制鼠标和擦除线
如何擦除鼠标绘制的线条并在达到命中测试时重新开始?
var myshape:Shape;
myshape = new Shape();
myshape.graphics.lineStyle(12, 0xC807DE);
var alreadyDrawn:Shape;
alreadyDrawn = new Shape();
stage.addEventListener(MouseEvent.MOUSE_DOWN, activateDraw);
function activateDraw(event:MouseEvent):void
{
myshape.graphics.moveTo(mouseX,mouseY);
addChild(myshape);
stage.addEventListener(MouseEvent.MOUSE_MOVE, lineDraw);
function lineDraw(myevent:MouseEvent):void
{
stage.addEventListener(MouseEvent.MOUSE_UP, stopDraw);
function stopDraw(endevent:MouseEvent):void
{
alreadyDrawn = myshape;
stage.removeEventListener(MouseEvent.MOUSE_MOVE, lineDraw);
}
myshape.graphics.lineTo(mouseX,mouseY);
myevent.updateAfterEvent();
checkIt();
}
}
function checkIt()
{
if (alreadyDrawn.hitTestObject(Ball) == true)
{
trace("Hit The Balls");
myshape.graphics.clear();
myshape.graphics.lineStyle(12, 0xC807DE);
}
}
哇,谢谢你的伟大的代码。我确实得到这个错误:场景1,图层'第1层',第1帧,第25行\t 1061:调用可能未定义的方法copyFrom通过静态类型的引用flash.display:Shape。 –
糟糕,'copyFrom()'是一个'Graphics'类方法,并接受另一个'Graphics'对象作为源。固定。 – Vesper
再次感谢您的所有代码。我仍然有问题。总之,我想要做的是为孩子们创建一个绘画游戏。他们“按下”按钮开始(创建新形状),然后绘制,如果它们碰到重新开始的对象并删除线条和所有绘制的对象。或者他们可以通过再次点击“开始”来做同样的事情。但是,即使进行了更改,我的代码也非常麻烦。我知道它的密切寿命。它是一款迷宫游戏。所以当他们撞到墙时,他们会回到起点。 –