在Flex项目的代码加载出加入如下的代码:
import flash.system.LoaderContext;
import flash.system.Security;
private var context:LoaderContext;
在swfloader加载处加入如下语句:
context = new LoaderContext;
context.checkPoliceFile = true;
var rootUrl:String = ExternalInterface.call("getSwfPath");
var url:String = "images/文件名";
对rootUrl稍做处理,然后拼接需要访问的URL,
url = rootUrl + url;
var urlReq:URLRequest = new URLRequest(url);
var loader:Loader = m_loader; //SWFLoder变量
loader.load(urlReq,context);
在php脚本中设置CDN的网络地址:$swfPath = http://www.cdn.xxx.com/game/mygame.swf
在写一个函数getSwfPath给上面的FLEX中调用
function getSwfPath(){
return "<?php echo($swfPath)?>";
}
在js脚本中还需要做一些设置,PHP访问的还是请求本地的
function getEndPoint(){
var url = window.location.href ;
var regex = /.*/:////([^//]*).*/ ;
var match = url.match(regex) ;
var urlPath = "http://"+match[1];
return urlPath+"/amfphp/gateway.php";
}
swf文件放在http://www.cdn.xxx.com服务器上。 反正利用的就是CDN的原理。