1

このサウンドクラスを使用しようとしています(成功しています)

http://www.mcfunkypants.com/2011/as3-pitch-shift-mp3/

サンプルコードは次のようになります。。。

public class Pitch_Shift_Example extends Sprite
    {

        [Embed(source='Pitch_Shift_Example.mp3')]
        private var engine_mp3 : Class;
        public var engine_loop:Pitch_Shift_MP3;

        public function Pitch_Shift_Example()
        {
            engine_loop = new Pitch_Shift_MP3(engine_mp3);
            stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
            var someText:TextField = new TextField();
            someText.x = 200;
            someText.y = 0;
            someText.textColor = 0xFFFFFF;
            someText.selectable = false;
            someText.autoSize = TextFieldAutoSize.LEFT;
            someText.text = "Pitch Shift MP3 Demo by Breakdance McFunkypants\nMove your mouse to change the sample rate. Enjoy!";
            addChild(someText);
        }

        private function onMouseMove(event:MouseEvent):void
        {
            engine_loop.rate = (mouseX / stage.width) * 2;
        }

    }

今私を混乱させているのは、engine_mp3クラスがサウンドをどのように使用するかです。

1行目はサウンドを埋め込みます。
2行目は、engine_mp3という空のクラスを作成します。
3行目は、新しいピッチシフトクラスを作成します。7行目では、(空の)engine_mp3クラスを渡します。

基本的に、engine_mp3はどのようにmp3データを取得しますか?

どんな助けでも大歓迎です。

アンディ

4

1 に答える 1

2

これは次のように機能します。

次の2行でmp3ファイルを埋め込みます。

Embed(source='Pitch_Shift_Example.mp3')]
private var engine_mp3 : Class;

これらの2つの行は連携して機能します。最初の行は、その下の行を説明する埋め込みメタデータです。それがしているのは、mp3ファイルを埋め込み、クラスとしてアクセスできるようにすることです。したがって、変数名が付いたこの埋め込みサウンドクラスへの参照がありますengine_mp3

コードの後半で、クラスの新しいインスタンスをインスタンス化Pitch_Shift_MP3し、埋め込まれたサウンドクラスへの参照を渡しますengine_mp3

engine_loop = new Pitch_Shift_MP3(engine_mp3);

ピッチシフトクラスのコンストラクターは、単一の引数としてクラス(サウンドを表す)を期待しています。独自のコードで実行する必要があるのは、次のようにしてengine_mp3表現するクラスをインスタンス化することです。

var instantiatedSound:Sound = new engine_mp3() as Sound;

それが理にかなっていることを願っています!

于 2013-02-23T18:24:42.980 に答える