2013-02-09 63 views
0

我有這樣AS3聲音播放時打MC

var idsya1:Idsya1 = new Idsya1(); 
    var iqlab1:Iqlab1 = new Iqlab1(); 
    var ikhsya1:Ikhsya1 = new Ikhsya1(); 


    if (idsya_1.hitTestObject(idsyabox_1)) 
    { 
     idsya_1.enabled = false; 
     //idsya_1.visible = false; 
     idsya_1.buttonMode = false; 
     idsya_1.x = 145.30 ; 
     idsya_1.y = 168.05; 
     idsya1.play(); 
     score+=10; 
     skor.text = " " + score; 
     } 

    if (iqlab_1.hitTestObject(iqlabbox_1)) 
    { 
     iqlab_1.enabled = false; 
    // iqlab_1.visible = false; 
     iqlab_1.buttonMode = false; 
     iqlab_1.x = 719.95; 
     iqlab_1.y = 155.25; 
     iqlab1.play(); 
     score+=10; 
     skor.text = " " + score; 
    } 

    if (ikhsya_1.hitTestObject(ikhsyabox_1)) 
    { 
     ikhsya_1.enabled = false; 
     //idsya_1.visible = false; 
     ikhsya_1.buttonMode = false; 
     ikhsya_1.x = 459.95; 
     ikhsya_1.y = 198.75; 
     ikhsya1.play(); 
     score+=10; 
     skor.text = " " + score; 
    } 

Idsya1,Iqlab1和Ikhsya1腳本是從library..idsya_1,ikhsya_1健全iqlab_1一個影片剪輯。

我的問題是,當idsya_1打idsyabox_1那麼idsya1聲音會玩,和它的工作,但是當ikhsya_1打ikhsyabox_1的聲音播放是ikhsya1和idsya1過了,當iqlab_1打iqlabbox_1那麼所有的聲音會playing..why這是怎麼發生的?

我的意思是,當idsya_1打idsyabox_1然後聲音播放是idsya1聲音

時iqlab_1打iqlabbox_1然後聲音播放是iqlab1聲音

當ikhsya_1打ikhsyabox_1的聲音播放是ikhsya1聲音

我該怎麼做?

回答

0

可能是因爲您在循環中檢查碰撞,並且每當該循環觸發時,它都會檢查您的每個奇怪名爲MovieClips是否存在碰撞並相應播放聲音。如果您想每次嘗試播放聲音都有Boolean屬性,以測試它是否已播放。所以你有這樣的事情:

if (iqlab_1.hitTestObject(iqlabbox_1) && !iqlab_1SoundHasPlayed) // checking if the sound has already played 
{ 
    iqlab_1.enabled = false; 
// iqlab_1.visible = false; 
    iqlab_1.buttonMode = false; 
    iqlab_1.x = 719.95; 
    iqlab_1.y = 155.25; 
    iqlab1.play(); 
    score+=10; 
    skor.text = " " + score; 

    iqlab_1SoundHasPlayed = true; 
} 
+0

我已經試過這種方式,但問題被改爲拖回到原來的位置,如果可能有任何其他方式的動畫片段? – 2013-02-11 12:44:26

+0

提供更有幫助的解釋,否則恐怕我無法幫助你更多。 – Gio 2013-02-11 14:01:03

+0

但感謝您的回答,我只需添加其他功能即可完成:) – 2013-02-11 16:37:46