2014-10-06 128 views
-1

你好,我試圖將這個as3代碼,這是一個鼠標事件代碼轉換爲碰撞事件。我很抱歉,但我不知道在代碼中將實例名稱爲mcBall的其他對象放在哪裏。鼠標事件碰撞as3

tile1.addEventListener(MouseEvent.CLICK, tileClick); 


function tileClick(e:MouseEvent):void { 

MovieClip(e.currentTarget).gotoAndStop(2); 
if(tile1.currentFrame == 1) return; 


gotoAndStop(5); 
} 

謝謝。

+0

目前尚不清楚你想達到什麼目的,你能否詳細說明一下?另外,注意這行永遠不會執行:if(tile1.currentFrame == 1)return ;. CurrentFrame將始終爲2(您正在對其上方的gotoAndStop(2)進行調用)。 – Fygo 2014-10-06 20:07:42

+0

我試圖去瓦片MC內的第2幀,當瓦片擊中球,然後當tilemc被清除(第2幀有(可見= false命令)去主時間軸上的第5幀。作爲鼠標事件的一個工作示例,所以我試圖讓這發生在碰撞。謝謝。 – Johnnien 2014-10-07 20:01:30

回答

0

好的,讓它工作。首先,我製作了圖層的「動作」和「繼續」運行所有5個幀,並將'mcPaddle'&'ball'複製到第5幀的第1層(關鍵幀)。

你的動作層我在代碼的頂部添加了這個。

var BricksRemoved=int(0); 
var newBricksRemoved=BricksRemoved; 

function RemoveBrick(e:Event=null):void{ 
    newBricksRemoved=newBricksRemoved+1; 
    if(newBricksRemoved==2) 
     {gotoAndStop(5)} 
    } 

function TraceBricksRemoved(e:Event=null):void{ 
    trace(newBricksRemoved); 
    } 

,並添加里面的磚2,框架2下面的代碼:

Object(root).RemoveBrick(); 
    Object(root).TraceBricksRemoved(); 
    Object(root).Cont.removeChild(this.tile2); 

而且在Brick4,幀2,我的情況下,我忘了的東西添加

Object(root).RemoveBrick(); 
    Object(root).TraceBricksRemoved(); 
    Object(root).Cont.removeChild(this.tile1); 

,我會將源代碼上傳到我的服務器:http://www.dialoz.com/FLA_Source/Break4.fla

+0

這是不同的方法,這是我認爲是複雜的問題,我不知道它將如何工作。代碼必須在裏面一個叫做「Cont」的容器,當tile(2或更多)碰到球時,應該到主時間軸上的第5幀,這就是我想要實現的一切(已經是一個月)。 https://app.box.com/s/kd5eu1ipa9jvzppbg7yj。謝謝 – Johnnien 2014-10-10 22:12:50

+0

確定它工作並有更新我的答案上面。希望這有助於。 – 2014-10-11 13:40:31

+0

非常感謝。它不適用於cs6。我得到2007年的錯誤。對象必須是非空的,並且存在函數的問題在瓷磚1和瓷磚2內的探測器上,用於探測球的目的。我應該隨同事件監聽器一起移除該函數嗎?在主時間軸上添加的代碼是否有任何方式可以放入Cont MC中? – Johnnien 2014-10-12 21:08:47