0

私はこのようなスクリプトを持っています

 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 はライブラリのサウンドです。idsya_1、ikhsya_1、iqlab_1 はムービークリップです。

私の問題は、idsya_1 が idsyabox_1 にヒットすると idsya1 サウンドが再生され、機能しましたが、ikhsya_1 が ikhsyabox_1 にヒットするとサウンド再生は ikhsya1 と idsya1 にもなり、iqlab_1 が iqlabbox_1 にヒットするとすべてのサウンドが再生されます..なぜこれが起こるのですか? ?

つまり、idsya_1 が idsyabox_1 にヒットすると、再生されるサウンドは idsya1 サウンドになります。

iqlab_1 が iqlabbox_1 にヒットすると、再生されるサウンドは iqlab1 サウンドです

ikhsya_1 が ikhsyabox_1 にヒットすると、再生されるサウンドは ikhsya1 サウンドです

どうやってやるの?

4

1 に答える 1

0

おそらく、ループ内の衝突をチェックしていて、そのループが起動するたびに、奇妙な名前のそれぞれに衝突があるかどうかをチェックし、それMovieClipsに応じてサウンドを再生するためです。サウンドを再生するたびに 1 回再生する場合は、再生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;
 }
于 2013-02-11T06:19:59.743 に答える