AS3中的Event.SOUND_COMPLETE [英] Event.SOUND_COMPLETE in AS3
问题描述
在这种情况下,LoaderS2后LoaderS1 ...
有人可以帮忙,这里是我的代码...我不知道该干什么了...:S
这是一个程序显示2张图片和用户需要选择正确的一个后听声音。
这个想法是我加载2个图像后,我将运行LoaderS1将运行和HL_Left将使矩形环绕图片来突出显示图像,当完成时,他将再现第二个soun LoaderS2。
这就是我想要做的...需要帮助和快速...
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
var Img_Sd:Array = new Array(5);
var Escolhas:Array = new Array(5);
var Respostas:Array = new Array(0,1,0,1,0)
var Resultado:Number = 0;
var Pos:Number = 0;
var i:Number = 0;
var b:Number = 0;
var urlE:String;
var urlD:String;
var urlS1:String;
var urlS2:String;
var urlS3:String;
var Loader_ESQ:Loader = new Loader();
var Loader_DIR:Loader = new Loader();
var Loader_S1:Sound = new Sound();
var Loader_S2:Sound = new Sound();
var Loader_S3:Sound = new Sound();
var pasta_SND:String =Sons /;
var pasta_IMG:String =图片/;
var num_Imag:Number = 0;
var string_aux:String;
var flag:Number = 0;
$ b $ //数学公式为$($ i $ 0; i <= 4; i ++)
{$ (i + 1)+E),((i + 1)+D),17,18,20]; b
$ b Img_Sd [i] = [
}
//事件监听器监控器
BT_EscolhaDIR.addEventListener(MouseEvent.CLICK,ClickDir);
BT_EscolhaESQ.addEventListener(MouseEvent.CLICK,ClickESQ);
//BT_Reeniciar.addEventListener(MouseEvent.CLICK,ClickRe);
LoadImg();
// Pos = Pos + 1;
函数ClickESQ(event:MouseEvent):void
{
Escolhas [Pos] = 0;
Pos = Pos + 1;
LoadImg();
函数ClickDir(event:MouseEvent):void
{
Escolhas [Pos] = 1;
Pos = Pos + 1;
LoadImg();
function audioComplete(e:Event):void
{
Loader_S2.play();
HL_Left.visible = false;
$ b函数LoadImg()
{
if(Pos <5)
{
urlE = pasta_IMG + Img_Sd [Pos] [0] +。png;
urlD = pasta_IMG + Img_Sd [Pos] [1] +。png;
Loader_ESQ.load(new URLRequest(urlE));
Loader_DIR.load(new URLRequest(urlD));
// Pos = Pos + 1;
EscolhaESQ_MC.addChild(Loader_ESQ);
EscolhaDIR_MC.addChild(Loader_DIR);
HL_Left.visible = true;
LoadSnd();
// setTimeout(audioComplete,Loader_S1.length);
if(Pos == 5)
{
BT_EscolhaDIR.enabled = false;
BT_EscolhaESQ.enabled = false;
(b = 0; b <= 4; b ++)
{
if(Escolhas [b] == Respostas [b])
{
Resultado = Resultado + 1;
}
trace(Escolha,Escolhas [b],:Resposta,Respostas [b], - ,Resultado);
}
Pos = 6;
函数LoadSnd()
{
urlS1 = pasta_SND + Img_Sd [Pos] [2] +。mp3;
urlS2 = pasta_SND + Img_Sd [Pos] [3] +。mp3;
urlS3 = pasta_SND + Img_Sd [Pos] [4] +。mp3;
Loader_S1.load(new URLRequest(urlS1));
Loader_S2.load(new URLRequest(urlS2));
Loader_S3.load(new URLRequest(urlS3));
Loader_S1.play();
Loader_S1.addEventListener(Event.SOUND_COMPLETE,audioComplete);
声音
类不派遣 Event.SOUND_COMPLETE
事件。你要找的是 SoundChannel
类( http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/SoundChannel.html )。 $ b
声音
类的 play
方法返回一个 SoundChannel
实例,所以你想要做的是:
var s1Channel:SoundChannel = Loader_S1 。玩();
s1Channel.addEventListener(Event.SOUND_COMPLETE,audioComplete);
I already saw a lot of foruns to try make one sound run after the other
In this case LoaderS2 after LoaderS1...
Can someone help, here is my code... i dont know what to do anymore... :S
this is a program to show 2 images and the user need to chose the right one after listen the sounds.
The idea is after i load the 2 images i will run LoaderS1 will run and HL_Left will make a rectangle arround the picture to highlight the image and when finish he will reproduct the second soun LoaderS2.
This is what i want to do... need help and fast...
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
var Img_Sd:Array = new Array(5);
var Escolhas:Array = new Array(5);
var Respostas:Array = new Array(0,1,0,1,0)
var Resultado:Number = 0;
var Pos:Number = 0;
var i:Number = 0;
var b:Number = 0;
var urlE:String;
var urlD:String;
var urlS1:String;
var urlS2:String;
var urlS3:String;
var Loader_ESQ:Loader = new Loader();
var Loader_DIR:Loader = new Loader();
var Loader_S1:Sound = new Sound();
var Loader_S2:Sound = new Sound();
var Loader_S3:Sound = new Sound();
var pasta_SND:String = "Sons/";
var pasta_IMG:String = "Images/";
var num_Imag:Number = 0;
var string_aux:String;
var flag:Number = 0;
//Preenchimento do array com a informação dos ficheiros (Imagens e Sons)
for (i=0; i<=4; i++)
{
Img_Sd[i] = [((i+1)+"E"),((i+1)+"D"),17,18,20];
}
//Event Listeners para supervisionar o estado dos botões
BT_EscolhaDIR.addEventListener(MouseEvent.CLICK, ClickDir);
BT_EscolhaESQ.addEventListener(MouseEvent.CLICK, ClickESQ);
//BT_Reeniciar.addEventListener(MouseEvent.CLICK, ClickRe);
LoadImg();
//Pos = Pos+1;
function ClickESQ(event:MouseEvent): void
{
Escolhas[Pos]=0;
Pos = Pos+1;
LoadImg();
}
function ClickDir(event:MouseEvent): void
{
Escolhas[Pos]=1;
Pos=Pos+1;
LoadImg();
}
function audioComplete(e:Event): void
{
Loader_S2.play();
HL_Left.visible=false;
}
function LoadImg()
{
if (Pos<5)
{
urlE = pasta_IMG + Img_Sd[Pos][0] +".png";
urlD = pasta_IMG + Img_Sd[Pos][1] +".png";
Loader_ESQ.load(new URLRequest(urlE));
Loader_DIR.load(new URLRequest(urlD));
//Pos = Pos + 1;
EscolhaESQ_MC.addChild(Loader_ESQ);
EscolhaDIR_MC.addChild(Loader_DIR);
HL_Left.visible=true;
LoadSnd();
//setTimeout(audioComplete, Loader_S1.length);
}
if (Pos == 5)
{
BT_EscolhaDIR.enabled = false;
BT_EscolhaESQ.enabled = false;
for (b=0;b<=4;b++)
{
if (Escolhas[b]==Respostas[b])
{
Resultado = Resultado + 1;
}
trace("Escolha",Escolhas[b],":Resposta",Respostas[b],"-",Resultado);
}
Pos=6;
}
}
function LoadSnd()
{
urlS1= pasta_SND + Img_Sd[Pos][2] +".mp3";
urlS2= pasta_SND + Img_Sd[Pos][3] +".mp3";
urlS3= pasta_SND + Img_Sd[Pos][4] +".mp3";
Loader_S1.load(new URLRequest(urlS1));
Loader_S2.load(new URLRequest(urlS2));
Loader_S3.load(new URLRequest(urlS3));
Loader_S1.play();
Loader_S1.addEventListener(Event.SOUND_COMPLETE, audioComplete);
}
The Sound
class does not dispatch the Event.SOUND_COMPLETE
event. What you're looking for is the SoundChannel
class (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/SoundChannel.html).
The play
method of the Sound
class returns a SoundChannel
instance, so what you want to do is:
var s1Channel:SoundChannel = Loader_S1.play();
s1Channel.addEventListener(Event.SOUND_COMPLETE, audioComplete);
这篇关于AS3中的Event.SOUND_COMPLETE的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!