Flash mp3-плеер выдает ошибку 2032 - Думая URLRequest является виновником? - PullRequest
0 голосов
/ 04 февраля 2011

Я пытаюсь настроить аудиоплеер для веб-сайта, над которым я работаю, и продолжаю сталкиваться с этой ошибкой 2032. .Swf находится в моей главной папке вместе с моим файлом списка песен. Сами файлы песен находятся в подпапке с именем songs /

Я не уверен, что может быть причиной, и любой вклад будет полезен.

<fx:Script>
    <![CDATA[
        import mx.collections.ArrayCollection;
        import mx.collections.ArrayList;
        import mx.collections.XMLListCollection;
        import mx.controls.Alert;
        import mx.rpc.events.FaultEvent;
        import mx.rpc.events.ResultEvent;
        import mx.utils.ArrayUtil;
        private var sound:Sound;                        // Mp3 File 
        private var soundChannel:SoundChannel;          // Reference to playing channel 
        private var pausePosition:Number;               // Current play position (time)
        private var percent:Number;                     // Current played percentage
        private var isPlaying:Boolean = false;          // Is the mp3 playing?
        private var isLoaded:Boolean = false;           // Is the mp3 loaded?
        //private var updateSeek:Timer = new Timer(500);    // Timer for updating the seek bar
        private var currentSong:String;
        private var index:int;
        private var start:Boolean = true;
        private var songs:Array;

        private function init():void {
            grabSongs();
        }

        private function grabSongs():void{
            var theLoader:URLLoader = new URLLoader();
            var theRequest:URLRequest = new URLRequest("songlist.txt");
            theLoader.load(theRequest);
            theLoader.addEventListener(Event.COMPLETE, loadComplete);
        }
                

        private function loadComplete(theEvent:Event):void{
            songs = theEvent.target.data.split("\n");
            currentSong = songs[0];
            index = 0;
        }

        private function playPause(e:Event = null):void  {
            // Song playing?
            if(isPlaying) {
                // Save the current position in the track, stop playback, change button icon
                pausePosition = soundChannel.position;
                soundChannel.stop();
                this.btnPlay.label = "Play";
                // If the URL has been changed but not loaded, hide seekbar
                // Song is not playing?
            } else {
                if(!isLoaded) {
                    // If the song isn't loaded yet, set up a new sound load request
                    if(start == true){
                        start = false;
                    }
                    sound = new Sound();
                    sound.load(new URLRequest("songs/" + currentSong));
                    // Add an event listener to check for song load complete event
                    sound.addEventListener(Event.COMPLETE, songLoaded);
                    this.btnPlay.label ="Pause";
                } else {
                    // The song IS loaded, so play it
                    soundChannel = sound.play(pausePosition);
                    this.btnPlay.label = "Pause";
                }
            }
            // Regardless of playing state, change it now to the opposite
            isPlaying = !isPlaying;
        }

        private function songLoaded(e:Event):void {
            // Remove load event listener
            sound.removeEventListener(Event.COMPLETE, songLoaded);

            // Play the song
            soundChannel = sound.play(0);               
            // Song is loaded
            isLoaded = true;
        }

        private function prev(e:Event = null):void {
            if(start == false){
                if(index == 0){
                    index = songs.length - 1;
                }else{
                    index--;
                }
                currentSong = songs[index];
                isPlaying = true;
                isLoaded = false;
                playNew(e);
            }
        }


        private function next(e:Event = null):void {
            if(start == false){
                if(index == songs.length - 1){
                    index = 0;
                }else{
                    index++;
                }
                currentSong = songs[index];
                isPlaying = true;
                isLoaded = false;
                playNew(e);
            }
        }

        private function playNew(e:Event = null):void {
            soundChannel.stop();
            sound = new Sound();
            sound.load(new URLRequest("songs/" + currentSong));
            // Add an event listener to check for song load complete event
            sound.addEventListener(Event.COMPLETE, songLoaded);
            this.btnPlay.label = "Pause";
        }

    ]]>
</fx:Script>

<s:Button id="btnPrev" label="Previous" chromeColor="#000000" focusColor="#000000" color="#8D1111" enabled="true" click="{prev(event)}" height="20" width="80" x="0" y="0"/>
<s:Button id="btnPlay" label="Play" chromeColor="#000000" focusColor="#000000" color="#8D1111" enabled="true" click="{playPause(event)}" height="20" width="80" x="81" y="0"/>
<s:Button id="btnNext" label="Next" chromeColor="#000000" focusColor="#000000" color="#8D1111" enabled="true" click="{next(event)}" height="20" width="80" x="162" y="0"/>

Это работает локально на моем ноутбуке, но при загрузке SWF выдает ошибку 2032.

Спасибо

Обновление

Таким образом, установка точно соответствует ответу FlexFiend вместе с http://localhost/FlexStuff/songs/ Я попытался проверить файл журнала флэш-отладчика, и это было мое сообщение:

Ошибка # 2032: Ошибка потока. URL: http://www.mywebsite.com/framework_4.0.0.14159.swf

Я очень не знаю, что это значит, но, может быть, это вызывает у меня проблемы?

Ответы [ 2 ]

0 голосов
/ 05 февраля 2011

Таким образом, установка точно соответствует ответу FlexFiend вместе с http://localhost/FlexStuff/songs/ Я попытался проверить файл журнала флэш-отладчика, и это было мое сообщение:

Ошибка # 2032: потокОшибка.URL: http://www.mywebsite.com/framework_4.0.0.14159.swf

Я очень не знаю, что это значит, но, может быть, это вызывает мои проблемы?

Framework_4.0.0.14159.swf был одним из примерно6 SWF-файлов, которые я, очевидно, должен был также загрузить на свой сервер, чтобы заставить этот SWF-файл работать ... который я не считал необходимым ??После загрузки, однако, это работает.Это действительно странно, так как у меня сложилось впечатление, что мне просто нужно загрузить созданный мной SWF, а не кучу вспомогательных файлов ...

0 голосов
/ 04 февраля 2011

Убедитесь, что путь к «songlist.txt» указан на локальном сервере. Если это на удаленном сервере, то вам нужно исследовать междоменные проблемы. Но если бы это было так, он даже не попытался бы прочитать его, а вместо этого дал бы вам знать о нарушении политики, которое я предполагаю.

Файл «songlist.txt» должен находиться в том же каталоге, что и swf-файл, к которому вы обращаетесь на вашем сервере. * 1003 то есть *

http://localhost/FlexStuff/Swfalicious.html (the wrapper )
http://localhost/FlexStuff/songlist.txt
http://localhost/FlexStuff/Swfalicious.swf ( the actual swf file)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...