2011-03-22 50 views
0

我有一個來自CDN的預加載器,我希望它也從CDN加載目標SWF,但是當它使用loaderInfo時,它會返回主機名HTML文件的......這裏的設置:預加載器如何從CDN提供服務時動態確定目標URL

  • 的index.html(託管在主域)使用SWFObject的嵌入預加載託管在遠程CDN
  • preloader.as,包含以下
  • 目標代碼。 swf將被加載

我繼承從另一個開發這個代碼,我聯繫不上,我不是一個AS編碼器...

var url:String = "target.swf"; 
.... 
var request:URLRequest = new URLRequest(url); 
loader = new Loader();  
loader.load(request); 

這是我嘗試過,但我覺得它的返回鏈接中的index.html,而不是CDN託管預加載的:

var currentUrl:String = stage.loaderInfo.url; 
var url:String = currentUrl.substring(0,currentUrl.length-13) + "target.swf"; 
.... 

是否有某種方式,我可以得到預加載已送達從作爲CDN的網址是什麼?

感謝, 喬納森

回答

1

stage.loaderInfo.url回報確實顯示swf的網頁的URL。你可以給你的SWF的CDN的地址作爲參數:

HTML

<script type="text/javascript"> 
    var flashvars = {CDNroot:'http://mycdn/' 
    }; 
    var params = { 
     menu: "false", 
     scale: "showAll", 
     allowFullscreen: "true", 
     allowScriptAccess: "always", 
     quality:"best", 
     bgcolor: "#FFFFFF" 
    }; 
    var attributes = { 
     id:"main", name:"main" 
    }; 
    swfobject.embedSWF("loader.swf", "altContent", "100%", "100%", "10.0.0", "expressInstall.swf", flashvars, params, attributes); 

</script> 

然後檢索這些參數,使用:

AS3

var url:String = stage.loaderInfo.parameters["CDNroot"] + "target.swf";