我正在尝试为游戏过场动画添加 swf,但在 removeChild 并将对象设置为 null 后出现音频重复问题。我正在尝试添加文件并在动画(721)中的帧长度之后将其删除,然后将其删除以继续进行其他操作。
我也试过过场动画[0].stop(); 和 SoundMixer.stopAll(); 正如其他帖子所建议的那样。
removechild() 确实会删除文件/动画的视觉方面,但不会删除音频,并且它会在动画长度(721 帧)的时间量之后重复,就好像它正在重新加载一样。如何停止音频?
package {
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.events.*;
[SWF(backgroundColor="#0000ff", frameRate="24", width="640", height="480")]
public class main extends MovieClip
{
[Embed(source="/Cutscenes/Intro_Scene 1.swf")]
private var scene1:Class
public var cutscenes:Array = new Array();
public var scene_exists:Boolean = false;
public var scene_timer:Number = 0;
public function main()
{
scene_exists = false;
addEventListener(Event.ENTER_FRAME, play_intro);
}
public function play_intro(event:Event):void
{
scene_timer++;
if (scene_exists == false) //Add cutscene
{
cutscenes[0] = new scene1();
addChild(cutscenes[0]);
scene_exists = true;
}
if (scene_timer == 721) //Remove cutscene
{
SoundMixer.stopAll();
scene_exists = false;
removeChild(cutscenes[0]);
cutscenes[0] = null;
scene_timer = 0;
removeEventListener(Event.ENTER_FRAME, play_intro);
//Do next thing
}
}
}
}