Flex项目中如何实现跨域访问问题


  在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 "";
  }
  在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的原理。

你可能感兴趣的:(Flex)