我正在嘗試創建一個簡單的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
再次感謝您的所有代碼。我仍然有問題。總之,我想要做的是爲孩子們創建一個繪畫遊戲。他們「按下」按鈕開始(創建新形狀),然後繪製,如果它們碰到重新開始的對象並刪除線條和所有繪製的對象。或者他們可以通過再次點擊「開始」來做同樣的事情。但是,即使進行了更改,我的代碼也非常麻煩。我知道它的密切壽命。它是一款迷宮遊戲。所以當他們撞到牆時,他們會回到起點。 –