2014-09-30 29 views
0

我正在设置一个带有音频响应的问题/答案程序,并显示反馈,告诉用户他们已完成了多少工作。我有两个课程可以帮助你做到这一点。提供所有相关问题答案数据的QuestAnswer类,以及用于添加适当音频的AddSound类。我希望在音频完成后提供反馈。我的代码迄今:无法获取Event.Sound_Complete在类和OnMouse事件之间工作

QuestAnswer类:

private function moEvent(e: MouseEvent): void { 
      switch (e.type) { 
       case "click": 
        customerResponse.addData(vce + responseAudio); 
        customerResponse.playCompleted(/*function parameter*/);//My goal is to get setIncDec() to play from this. 
        // 
        iniQuestion(e.currentTarget.name);// Scores Question, and resets data 
        setIncDec(e.currentTarget.name,e.currentTarget.getIncDec());// checks to see if feedback is enabled on this question 
        break; 
      } 
     } 

正如你可以看到setIncDec当前设置在e.currentTarget它得到答案的名字点击好的,好的,坏的,和布尔值,getIncDec(),可以实现反馈,这两种组合可以实现反馈的态度,以及是否显示反馈。这里是我的音乐类到目前为止...

AddAudio类:

public function playCompleted(completeFctn:Function): void { 
      sc = s.play(); 
      sc.addEventListener(Event.SOUND_COMPLETE,completeFctn); 
     } 

这个,我听当音频结束到再一次音频结束显示反馈。我的问题是我如何得到这个工作在e.currentTarget,或者我怎么能得到类似的设置,我可以接受mouseEvent的e.currentTarget值?任何帮助,将不胜感激!

+0

创建自定义事件? – 2014-09-30 19:43:50

+0

谢谢你,杰里米,这是事实,我需要两个自定义事件和一个字符串捕获来获取当前目标的名称。当音频完成时,我派发了一个事件,通过var容器触发另一个附加到我的当前目标的事件:DisplayObject = mc.getChildByName(/ *在鼠标事件中捕获的当前btn的名称* /) – hexobolic 2014-10-01 18:25:13

+0

不错。然后把你的答案,并标记为已解决的线程。 – 2014-10-01 22:02:04

回答

0

在我的健全课中,我有一个声道播放和一个连接到我的soundChannel的事件监听器。这段代码基于假设你已经有一个soundChannel已经实例化了。

AddSound.as:

public function playCompleted(): void { 
      s.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);//error handling, not needed 
      sc = s.play(); 
      sc.soundTransform = st; //used for adjusting volume, not needed 
      sc.addEventListener(Event.SOUND_COMPLETE,completed); 
     } 

我再创建处理程序,它会调度放入我需要调度的特定类的事件。在这种情况下我创建了一个“triggerFeedback”监听器,这是摆在我的问题答案类别:

private function completed(e:Event):void{ 
       dispatchEvent(new Event("triggerFeedback",true)); 
      } 

QuestionAnswer.as:

然后我创建了AddSoundprivate var sound:AddSound = new AddSound();类的实例,并创建了“ triggerFeedback”监听器,并把它添加到我的声音变:

sound.addEventListener("triggerFeedback", triggerFeedback); 

private function triggerFeedback(e: Event): void { 
     //code executed when sound has completed. 
     } 

我敢肯定,有可能是一个更好的方式来做到这一点,但这是我的工作方式。希望这可能有助于某人。