Остановка звука дочернего swf-файла

#actionscript-3 #flash-cs5 #flash-cs4 #flash #flash-cs3

#actionscript-3 #flash-cs5 #flash-cs4 #вспышка #flash-cs3

Вопрос:

На временной шкале моего дочернего swf-файла есть слои с определенными звуковыми файлами, которые должны быть синхронизированы с моей анимацией. Теперь проблема возникает, когда я пытаюсь импортировать этот swf-файл на свой основной веб-сайт flash с помощью загрузчика, и звук будет непрерывно воспроизводиться при каждом нажатии кнопки в родительском файле. Мой вопрос в том, как мне заставить звук полностью очищаться и перезапускаться с кадра 0 дочернего swf-файла при каждом нажатии кнопки, которая загружает дочерний файл в загрузчик внутри родительского.

 var myLoader:Loader = new Loader();// create a new instance of the Loader class
var project1:URLRequest=new URLRequest("Projects/Q1/Flash_Projects/Greeting_Card/GreetingCard.swf");
var project2:URLRequest=new URLRequest("Projects/Q1/Flash_Projects/Landscape/Landscape.swf");
var project3:URLRequest=new URLRequest("Projects/Q1/Flash_Projects/SpaceInvadersTribute/Main.swf");
var project4:URLRequest=new URLRequest("Projects/Q1/Flash_Projects/RandomImageProducer/RndImgProd.swf");
//var project5:URLRequest = new URLRequest("Projects/Q1/Flash_Projects/Tutorial/Main.swf");
var project6:URLRequest=new URLRequest("Projects/Q1/Flash_Projects/Soundboard/Main.swf");

btnQ1P1.addEventListener(MouseEvent.CLICK,Greeting);
btnQ1P2.addEventListener(MouseEvent.CLICK,landscape);
btnQ1P3.addEventListener(MouseEvent.CLICK, tribute);
btnQ1P4.addEventListener(MouseEvent.CLICK, slideshow);
//btnQ1P5.addEventListener(MouseEvent.CLICK, tutorial);
btnQ1P6.addEventListener(MouseEvent.CLICK, soundboard);

addChild(myLoader);

function Greeting(event:MouseEvent):void {
    SoundMixer.stopAll();
    myLoader.load(project1);
    myLoader.x=550;
    myLoader.y=130;
}
//Errors with Sound clips
function landscape(event:MouseEvent):void {
    SoundMixer.stopAll();
    myLoader.load(project2);
    myLoader.x=440;
    myLoader.y=130;
}

function tribute(event:MouseEvent):void {
    SoundMixer.stopAll();
    myLoader.load(project3);
    myLoader.x=550;
    myLoader.y=170;
}
//Errors with slideshow Code!
function slideshow(event:MouseEvent):void {
    SoundMixer.stopAll();
    myLoader.load(project4);
    myLoader.x=530;
    myLoader.y=130;
}
//function tutorial(event:MouseEvent):void{
//SoundMixer.stopAll();
//myLoader.unload();
//myLoader.load(project5);
//myLoader.x = 440;
//myLoader.y = 130;
//}

function soundboard(event:MouseEvent):void {
    SoundMixer.stopAll();
    myLoader.load(project6);
    myLoader.x=550;
    myLoader.y=130;
}
  

Комментарии:

1. Я предполагаю, что SoundMixer доступен через этап, который, как я подозреваю, недоступен при загрузке swf-файла. Вы можете попробовать внедрить класс SoundMixer.

Ответ №1:

У меня была такая же проблема.

Вам нужно изменить звук с «Событие» на «Поток». Во Flash Professional доступ к этому можно получить на вкладке свойств звука на временной шкале. Нажмите на звук, а затем перейдите на вкладку Свойств и измените тип с события на поток.

Теперь звук прекратится при остановке временной шкалы.