2013-12-20 1 views
0

У меня есть переменная установлена ​​Как установить определенные звуковые эффекты на определенный том?

var vol = 0.25; 

эта переменная изменения по требованию и работает отлично.

В моей флеш-игре у меня есть некоторые звуковые эффекты на movieclips, которые звучат только тогда, когда воспроизводятся ролики.

Я хотел бы установить все мои звуковые эффекты на один том в одном файле as3.

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

Я думал о чем-то вроде этого:

var isSoundOn = true; 
if (isSoundOn == true) { 

    // get all sounds that i would like to change volume on 
    // if in game play and any of the sound effects are ready - play all these sounds with my specific volume setting. 

} 

мой код выглядит немного как это, но не работает

В FlashDevelop ... Мой главный класс ...

public class Platformer extends GameLoop 
{ 
public var redMonster:RedMonsterFla; 
public var SoundFxVol:Number; 


public function Platformer() 
{ 



} 

    // here i have functions that open a popUp 
    // inside the popUp i can change variable "SoundFxVol" with my volume slider 


    // here i would like to set my volume to some of my movieClips with soundFx 

public function set VolumeForSoundEffects(value:Number):void 
{ 
    // set array of movieClipsThatContainSound 


    var movieClipsThatContainSound:Array = new Array(redMonster); 

    var st:SoundTransform = new SoundTransform(value); 

    SoundFxVol = value; 

    for each(var mc:MovieClip in movieClipsThatContainSound ) mc.soundTransform = st; 
} 

public function get VolumeForSoundEffects():Number 
{ 
    return SoundFxVol; 
} 

Я вспышка У меня есть клип для фильма, называемый RedMonster, с библиотечной связью с as3 как RedMonst erFla; На redMonster MovieClip У меня много ярлыков, один из них - прыжок - у этого есть звук. На временной шкале redMonster кода нет.

ответ

1

Вы можете использовать свойство ваших видеороликов soundTransform для регулировки громкости тех звуков, которые воспроизводятся внутри него. Но вы не можете установить var и получить все зависимые объекты SoundTransform, чтобы настроить себя, поэтому напишите функцию свойства setter.

private var vol:Number=1.0; 
public function set volume(value:Number):void { 
    var st:SoundTransform=new SoundTransform(value); 
    vol=value; 
    for each (var mc:MovieClip in whateverArray) mc.soundTransform=st; 
} 
public function get volume():Number { return vol; } 

whateverArray должен быть массив, который содержит все экземпляры фрагмента ролика, которые зависят от настройки громкости здесь.

+0

Это звучит хорошо, спасибо, я попробую. – user3102529

+0

Я не уверен, что я делаю неправильно, я создал свой var var (redMonster: RedMonsterFla;) для подключения к моей библиотеке movieclip, я поместил redMonster в свой массив (var movieClipThatContainsSound: Array = new Array (redMonster);), но он имеет тот же громкий том, я прослеживал мою переменную vol, и это меняет, когда я использую свой ползунок объема. – user3102529

+0

привет им довольно новый, чтобы получить и установить функции, где я их называю, чтобы сделать эту работу? Я также обновил свой вопрос. – user3102529