2010-07-14 10 views
0

Je suis en train de créer un plugin joueur JW, une partie du code source est indiqué ci-dessous:fonctions AS3 et accéder aux variables

 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(); 

     } 

Je suis actuellement coincé sur l'obtention api.load (« ») pour charger le fichier. J'ai testé par anthropod et les variables ajoutées sont ok et le lien génère parfaitement.

Je pense que mon erreur essaie d'obtenir l'accès à api = player par la fonction completeHandler, mais elle ne le peut pas. Quelqu'un a une idée?

+0

il sent un problème crossdomain.xml – Roki

+0

Non, le chargeur d'URL se charge à partir du même domaine. player.swf et burstplugin.swf se chargent également à partir de ce même domaine. –

+0

Couple de choses ... Je suppose que vous avez une variable de classe où vous stockez l'API? En outre, où initPlugin se termine-t-il? –

Répondre

0

Le code ci-dessus travaillé, en utilisant Anthropod, j'ai découvert qu'il s'agissait toujours d'un problème de domaine croisé. Je l'ai résolu en chargeant tous les fichiers sous la même adresse de base. Par exemple, xxx.burst-dev.com. api.load peut cependant charger des fichiers à l'étranger, malgré le besoin de crossdomain dans les fichiers AS3.

Questions connexes