2011-02-04 5 views
0

Я пытаюсь настроить аудиоплеер для веб-сайта, над которым я работаю, и я продолжаю работать в этой ошибке 2032. .swf находится в моей основной папке вместе с моим файлом списка песен. Сами файлы песен находятся в подпапке под названием песни/Flash mp3 player throws Ошибка 2032 - Думая URLRequest является виновником?

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

<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.

Благодаря

Update

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

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

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

+0

У вас есть 'songlist.txt' (и все остальное) в той же папке, что и на локальной машине? какая строка вызывает «ошибка 2032: ошибка потока» и когда? – www0z0k

+0

Привет, Ник, добро пожаловать в СО. Не стесняйтесь редактировать свой вопрос, чтобы дать разъяснения. Поля ответов должны использоваться только для ответов. Я объединил то, что вы написали как ответ, в нижней части вашего вопроса. –

ответ

0

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

Файл "songlist.txt" должен находиться в той же папке, что и swf, который вы просматриваете на своем сервере. т.е.

http://localhost/FlexStuff/Swfalicious.html (the wrapper) 
http://localhost/FlexStuff/songlist.txt 
http://localhost/FlexStuff/Swfalicious.swf (the actual swf file) 
0

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

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

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

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

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