Как предварительный загрузчик может динамически определять целевой URL при подаче из CDN - PullRequest
0 голосов
/ 22 марта 2011

У меня есть предварительный загрузчик, который обслуживается из CDN, и я хочу, чтобы он также загружал целевой SWF-файл из CDN, но когда он использует loaderInfo, он возвращает имя хоста файла html ... Вот настройка :

  • index.html (размещенный в основном домене) использует SWFObject для встраивания прелоадера
  • preloader.as, размещенный на удаленном CDN, содержит код ниже
  • target.swf должен быть загружен

Я унаследовал этот код от другого разработчика, с которым не могу связаться, и я не являюсь кодировщиком AS ...

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

Это то, что я пробовал, но я думаю, что он возвращает URL файла index.html, а не прелоадер, размещенный на CDN:

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

Есть ли какой-нибудь способ, которым я могу получить URL, с которого был подан предварительный загрузчик, с которого есть CDN?

Спасибо, Jonathan

1 Ответ

1 голос
/ 22 марта 2011

stage.loaderInfo.url действительно возвращает URL страницы, на которой отображается SWF. Вы можете указать свой 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";
...