AS3声音播放时打MC
问题描述:
我有这样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声音
我该怎么做?
答
可能是因为您在循环中检查碰撞,并且每当该循环触发时,它都会检查您的每个奇怪名为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;
}
我已经试过这种方式,但问题被改为拖回到原来的位置,如果可能有任何其他方式的动画片段? – 2013-02-11 12:44:26
提供更有帮助的解释,否则恐怕我无法帮助你更多。 – Gio 2013-02-11 14:01:03
但感谢您的回答,我只需添加其他功能即可完成:) – 2013-02-11 16:37:46