2010-07-14 4 views
0

Я пытаюсь создать игрок плагин JW, часть исходного кода приведена ниже:AS3 функция и доступ к переменному

 public function initPlugin(player:IPlayer, config:PluginConfig):void { 
     api = player; 

     var streamUrl:String = 'xxx'; 
     var streamSecret:String = 'xxx'; 
     var xid:String = config['xid']; 

     var request:URLRequest = new URLRequest("xxx"+xid); 
     request.method = URLRequestMethod.POST; 

     var loader:URLLoader = new URLLoader(); 
     loader.dataFormat = URLLoaderDataFormat.VARIABLES; 
     loader.addEventListener(Event.COMPLETE, completeHandler); 
     loader.load(request); 

     var fileName:String, drive:String, userFolder:String, t_hex:String, linkType:String 

     function completeHandler(evt:Event) { 
      linkType = evt.target.data.linkType; 
      fileName = evt.target.data.filename; 
      drive = evt.target.data.drive; 
      userFolder = evt.target.data.userFolder; 
      t_hex = evt.target.data.t_hex; 

      if (linkType == "1") 
      { 
       /* 
       PHP will generate these variables for the plugin. 
       fileName, drive, userFolder, t_hex 
       */ 

       var relPath:String = "/"+drive+"/"+userFolder+"/"+fileName; 
       var md5Hash = MD5.encrypt (streamSecret+relPath+t_hex); 

       var link:String = streamUrl+md5Hash+"/"+t_hex+relPath; 
      } else 
      { 
      } 

      api.load('http://music-stream.burst-dev.com/test.flv'); 
      api.play(); 

     } 

В настоящее время я застрял на том, чтобы api.load («») чтобы загрузить файл. Я тестировал антроподы, и добавляемые переменные - все в порядке, и связь генерируется отлично.

Я думаю, что моя ошибка пытается получить api = игрока для доступа к функции completeHandler, но он не в состоянии. У кого-нибудь есть идеи?

+0

это запах проблемы crossdomain.xml – Roki

+0

Нет, загрузчик URL загружается из того же домена. player.swf и burstplugin.swf также загружаются из того же домена. –

+0

Пара вещей ... Предполагаю, что у вас есть переменная класса, в которой вы храните api? Кроме того, где заканчивается initPlugin? –

ответ

0

Код выше работал, используя Anthropod, я узнал, что он все еще был проблемой crossdomain. Я решил это, загрузив все файлы под одним и тем же базовым именем URL. Например, xxx.burst-dev.com. Однако api.load может загружать файлы за границу, несмотря на необходимость использования crossdomain в файлах AS3.

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

  • Нет связанных вопросов^_^