Actionscript 3 按mc时播放AS3声音

Actionscript 3 按mc时播放AS3声音,actionscript-3,flash,flash-cs5.5,Actionscript 3,Flash,Flash Cs5.5,我有一个这样的剧本 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;

我有一个这样的剧本

 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是电影剪辑

我的问题是当IDSYYA_1点击IDSYYABOX_1时,IDSYYA1的声音会播放,并且会起作用,但是当ikhsya_1点击ikhsyabox_1时,声音播放也是ikhsya1和idsya1,当iqlab_1点击iqlabbox_1时,所有的声音都会播放。为什么会发生这种情况

我的意思是当idsya1点击idsyabox时,播放的声音是idsya1声音

当iqlab_1点击iqlabbox_1时,播放的声音为iqlab1声音

当ikhsya1点击ikhsya1时,播放的声音是ikhsya1声音


我该怎么做呢?

可能是因为您正在检查循环中的碰撞,每次循环触发时,它都会检查您的每个奇怪命名的
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;
 }

我尝试过这种方法,但问题被更改为拖回其原始位置的movieclip,如果有其他方法的话??提供更有用的解释,否则我恐怕帮不了你更多。但是感谢你的回答,我只需添加其他功能即可完成:)