2012-01-24 3 views
0

Я хотел бы остановить определенный звук в CS4, не останавливая одновременно все звуки. Было бы здорово иметь что-то простое, что я могу копировать и вставлять, поскольку я много оглядывался на ответ на этот вопрос и получил много mumbo-jumbo, который не закончил работать. Спасибо!Actionscript: Остановка звука в Adobe Flash CS4

+0

Этот веб-сайт не должен использоваться в качестве ресурса для получения копий и вставных блоков кода. – Marty

ответ

2

Какую версию ActionScript вы используете, AS2 или AS3?

Как вы играете на своем звуке? Он сидит в ключевом кадре на временной шкале? Используете ли вы файл actionscript для его импорта и воспроизведения из библиотеки?

(Edit с временной шкалы кода)

OK, если его на шкале времени, вам нужно будет использовать ActionScript, чтобы играть, так что вы можете потом индивидуально цель его, чтобы остановить его.

Сначала перейдите в свою библиотеку, щелкните правой кнопкой мыши по звуку и отредактируйте его свойства. Вы хотите экспортировать его для actionscript и дать ему уникальный идентификатор ActionScript, что-то вроде «MyGreatSound». Нет пробелов и т. Д., Всего одно слово.

Извлеките звук из своего ключевого кадра.

Затем создайте ключевой кадр в вашем слое действий, который соответствует началу вашего звука, и вставьте его; (Это предполагает, что вы дали звук в библиотеке идентификатор «MyGreatSound»)

var myChannel:SoundChannel = new SoundChannel(); 
var mySound:Sound = new MyGreatSound(); 
myChannel = mySound.play(0); 

Это будет воспроизводить звук, как и раньше.

Чтобы остановить его, создайте еще один ключевой кадр, который соответствует точке на временной шкале, где вы хотите остановить звук.

Вставить следующие;

myChannel.stop(); 

У вас могут возникнуть проблемы с прицелом, но приготовьтесь.

Некоторые другие примеры здесь: http://www.republicofcode.com/tutorials/flash/as3sound/

+0

Я использую ActionScript 3.0, и звук действительно находится в ключевом кадре на временной шкале. Никакой actioncript не используется для его воспроизведения, но звуковой файл находится в библиотеке. – user1166091

+0

Большое спасибо, что сработало отлично! – user1166091

0

Посмотрите SoundChannel.stop().

Существует пример кода при условии, что вы можете использовать и изменять:

package { 
    import flash.display.Sprite; 
    import flash.media.Sound; 
    import flash.media.SoundChannel; 
    import flash.net.URLLoader; 
    import flash.net.URLRequest; 
    import flash.text.TextField; 
    import flash.events.MouseEvent; 
    import flash.text.TextFieldAutoSize; 

    public class SoundChannel_stopExample extends Sprite { 
     private var snd:Sound = new Sound(); 
     private var channel:SoundChannel = new SoundChannel(); 
     private var button:TextField = new TextField(); 

     public function SoundChannel_stopExample() { 
      var req:URLRequest = new URLRequest("MySound.mp3"); 
      snd.load(req); 

      button.x = 10; 
      button.y = 10; 
      button.text = "PLAY"; 
      button.border = true; 
      button.background = true; 
      button.selectable = false; 
      button.autoSize = TextFieldAutoSize.CENTER; 

      button.addEventListener(MouseEvent.CLICK, clickHandler); 

      this.addChild(button); 
     } 

     private function clickHandler(e:MouseEvent):void { 
      var pausePosition:int = channel.position; 

      if(button.text == "PLAY") { 
       channel = snd.play(pausePosition); 
       button.text = "PAUSE"; 
      } 
      else { 
       channel.stop(); 
       button.text = "PLAY"; 
      } 
     } 
    } 
} 

Источник: Adobe Livedocs - flash.media.SoundChannel

По сути вы назначаете Sound к вашему SoundChannel, а затем остановить весь канал (а не сам звук).

Смежные вопросы