Примеры кода для использования звуковых файлов в ActionScript3.0 для Flash Pro - PullRequest
0 голосов
/ 12 февраля 2012

Я был бы признателен, если бы увидел несколько примеров кода ActionScript 3.0, в котором используются звуковые файлы любого типа, которые будут использоваться в файлах Flash Pro, для окончательного вывода в формате SWF.

Я использую код (ниже) для базового класса Bubble Game (своего рода), и проблема в том, что при щелчке звук воспроизводится немного слишком поздно, а не на месте.

спасибо. Это мой код, который связан с Bubbles в библиотеке моего FLA:

package 
{
    import flash.display.*;
    import flash.events.*;
    import flash.media.Sound;
    import flash.net.URLRequest;

    public class BubbleBaseNew4 extends MovieClip
    {
        var thisBubble:MovieClip;
        var navdock:MovieClip;
        var thisParent:*;
        private var snd:Sound = new Sound();

        public function BubbleBaseNew4()
        {
            this.addEventListener(Event.ADDED_TO_STAGE, initialize);//off http://kb2.adobe.com/cps/838/cpsid_83815.html to do ADDED_TO_STAGE instead of ADDED
            this.addEventListener(MouseEvent.CLICK, pop);
        }

        function initialize(event:Event):void
        {
            this.removeEventListener(Event.ADDED_TO_STAGE, initialize);//this causes sym_mc to be defined as an Ojbect

            thisParent = event.currentTarget.parent;
            navdock = thisParent.nav_mc;
            thisBubble = MovieClip(this.parent.getChildByName(this.name));

            this.addEventListener(Event.ENTER_FRAME, moveBubble);

            var req:URLRequest = new URLRequest("my_own_twp_noise_tremolo_phaser_.mp3");
            snd.load(req); 
        }

        function moveBubble(event:Event):void
        {
            if(navdock != null && this.hitTestObject(navdock)) 
            {
                trace("HIT!");
                this.removeEventListener(Event.ENTER_FRAME, moveBubble);
                this.removeEventListener(MouseEvent.CLICK, pop);
                this.parent.addChild(this);//this adds the bubble that's removed, i think.
                this.parent.removeChild(thisBubble);
            }
            else
            {
                var mc:MovieClip = event.target as MovieClip;
                if(currentFrame == 1)
                {
                    mc.x = Math.random() * stage.stageWidth;
                    mc.y = Math.random() * stage.stageHeight;

                    rotation += Math.random() * -90;
                }

            }
        }

        function pop(event:MouseEvent):void
        {
            /*var bzp:Sound = Sound(thisParent.my_own_twp_noise_tremolo_phaser_.wav);
            this.load(bzp);*/
            this.removeEventListener(Event.ADDED_TO_STAGE, initialize);
            this.removeEventListener(MouseEvent.CLICK, pop);
            this.removeEventListener(Event.ENTER_FRAME, moveBubble);

            var main:MovieClip = MovieClip(this.parent.parent);
            main.increaseScore();
            //mediary 'increaseScore function' variable
            var main4:MovieClip = MovieClip(this.parent.parent);
            main4.increaseScore4();
            this.parent.removeChild(thisBubble);
            snd.play();
        }
    }
}

1 Ответ

0 голосов
/ 15 февраля 2012

Две вещи, которые вы могли бы попробовать. Во-первых, измените mouseEventListener для функции pop с MouseEvent.CLICK на MouseEvent.MOUSE_DOWN, чтобы вам не приходилось ждать MOUSE_UP перед вызовом функции.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...