`
hereson
  • 浏览: 1450303 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

AS3跨域加载图片时设置LoaderContext类

阅读更多
今天碰到的小问题,AS2加载外部图片从来没这么麻烦过...OK,认了。跨域加载外部图片除需要设置crossdomain外,还需要在loader.load()方法添加context参数,文档显示context参数为LoaderContext 类:

load(request:URLRequest, context:LoaderContext = null):void

When loading images (JPEG, GIF, or PNG) instead of SWF files, there is no need to specify a SecurityDomain or an application domain, because those concepts are meaningful only for SWF files. Instead, you have only one decision to make: do you need programmatic access to the pixels of the loaded image? If so, see the checkPolicyFile property.
所以,跨域加载正确的写法为:


import flash.system.LoaderContext;

var lc:LoaderContext = new LoaderContext(true);
var loader:Loader = new Loader();
var request:URLRequest = new URLRequest(url);
loader.load(request, lc);


否则,flash player安全沙箱会报“checkPolicyFile ”错误。

这个疏忽出现在了Papervision3D中。使用BitmapFileMaterial时,如果使用的是跨域图片进行贴图,尽管设置了crossdomain.xml,仍然会报沙箱错误,解决方法是修改loadNextBitmap方法:


// ___________________________________________________________________ LOAD NEXT BITMAP

  private function loadNextBitmap():void
  {
    // Retrieve next filename in queue
    var file:String = _waitingBitmaps[0];

    var request:URLRequest = new URLRequest( file );
    var lc:LoaderContext = new LoaderContext(true);
    var bitmapLoader:Loader = new Loader();

    bitmapLoader.contentLoaderInfo.addEventListener( Event.COMPLETE, loadBitmapCompleteHandler );

    try
    {
      // Load bitmap
      bitmapLoader.load( request, lc );

      // Save original url
      _loaderUrls[ bitmapLoader ] = file;

      // Busy loading
      _loadingIdle = false;

      Papervision3D.log( "BitmapFileMaterial: Loading bitmap from " + file );
    }
    catch( error:Error )
    {
      // Remove from queue
      _waitingBitmaps.shift();

      // Loading finished
      _loadingIdle = true;

      Papervision3D.log( "[ERROR] BitmapFileMaterial: Unable to load file " + error.message );
    }
  }

分享到:
评论
1 楼 raywill 2011-03-05  
对方服务器根目录没有crossdomain.xml文件的时候,还是不行的。

相关推荐

    cesium跨域加载问题

    然而,当使用Cesium进行3D地球渲染时,我们可能需要加载来自不同源的数据,如瓦片、模型、纹理等,这就涉及到跨域问题。本篇文章将详细介绍如何解决Cesium在使用Tomcat服务器时的跨域问题。 首先,我们需要理解...

    ajax跨域懒加载图片

    在现代Web开发中,为了提升用户体验,我们常常需要在用户滚动页面时按需加载图片,这就是所谓的“懒加载”技术。结合Ajax的跨域能力,我们可以实现从远程服务器获取图片资源,同时保证加载顺序,避免一次性加载大量...

    flash as3 加载图片的两种方法

    在Flash ActionScript 3.0 (AS3) 中,加载图片是常见的操作,适用于创建动态图形、游戏或者交互式应用程序。本篇文章将详细介绍两种方法来加载图片,并通过代码实例进行解析。 方法一:使用Loader 类 Loader 类是...

    Vue动态加载图片在跨域时无法显示的问题及解决方法

    问题:VUE开发时因为要访问后端的接口所以要配置请求转发,如果直接转发全部请求,那么VUE动态绑定的src也会转发到后端,因为图片在前端,所以会收到404 NOT FOUND的报错。 常规的请求转发 在vue-cli3内,直接编辑...

    Cesium加载Geoserver跨域问题

    当我们在Cesium中尝试加载由Geoserver提供的地图服务时,可能会遇到跨域问题。这个问题主要是由于浏览器的安全策略限制了不同源之间的通信。以下是对这个问题的详细解释和解决方法。 首先,理解“跨域”是什么至关...

    MP3跨域音频频谱AS3播放器

    【MP3跨域音频频谱AS3播放器】是一种基于Adobe Flash ActionScript 3(AS3)技术开发的多媒体播放器,专为处理跨域音频频谱显示而设计。ActionScript是Flash平台上的编程语言,它允许开发者创建交互式、动画化的Web...

    pdfjs 跨域预览文件(完整版t)

    3. **预加载 PDF**:使用 PDF.js 的 `PDFDocumentProxy` 对象,你可以加载 PDF 文件。这通常通过 `PDFJS.getDocument(url)` 方法实现,其中 `url` 是 PDF 文件的 URL。这个过程可以异步处理,以避免阻塞页面加载。 ...

    跨域加载资源

    当一个网页尝试通过Ajax、图片、样式表等手段获取或操作其他源的资源时,如果不符合同源策略,浏览器就会阻止这种行为,这就是我们所说的“跨域”。 解决跨域问题的方法有多种,主要包括以下几种: 1. **CORS...

    ajax上传图片,PHP上传图片,PHP上传图片跨域,跨域上传图片,上传图片缩览图

    在处理跨域上传图片时,我们需要考虑CORS(Cross-Origin Resource Sharing)策略。由于浏览器的安全限制,不同源的请求会被阻止,除非服务器明确允许。在PHP中,我们可以通过设置响应头来允许特定域名的跨域请求: ...

    as3.0跨域源码

    as3.0跨域源码,需要结合服务器一起实现

    跨域图片资源权限(CORS enabled image)

    例如,从其他站点保存图片的示例代码中,我们首先创建一个img元素和canvas元素,然后将img元素的crossOrigin属性设置为"Anonymous",并设置其onload事件来加载图片到canvas中,并且存储为数据URL格式。这个过程涉及...

    Vue中跨域及打包部署到nginx跨域设置方法

    一般来讲,前后端分离的项目在大公司都会由后台设置允许跨域访问,因为后台设置允许跨域是很简单和方便的,但是某些情况下,一些小公司或者你工作的场所后台不怎么配合的情况下,这就需要前端来配置跨域请求来方便我们...

    as3.0通过XML加载外部图片实例

    3. **加载图片**: AS3.0中的`Loader`类是用于加载媒体内容,如图片的关键工具。创建一个Loader对象,调用其`load()`方法,传入一个`URLRequest`对象,该对象包含图片的URL。加载完成后,可以将图片内容添加到舞台...

    FLASH XML加载外部图片

    在Flash开发中,使用ActionScript 3(AS3)与XML进行交互是一种常见的技术,它允许动态地加载和展示外部资源,如图片。本篇文章将深入探讨如何在Flash环境中使用AS3通过XML来加载外部图片。 首先,XML是一种轻量级...

    ueditor跨域图片上传

    ueditor跨域图片上传ueditor跨域图片上传ueditor跨域图片上传ueditor跨域图片上传ueditor跨域图片上传ueditor跨域图片上传ueditor跨域图片上传

    Dubbox跨域请求、Cookie设置

    【标题】"Dubbox跨域请求、Cookie设置"所涉及的知识点主要集中在分布式服务框架Dubbo的跨域问题处理和Cookie的配置上。Dubbox是阿里巴巴开源的一个基于Dubbo的扩展,提供了更多的特性,如REST支持、Zookeeper注册...

    跨域post上传图片

    在Web开发中,"跨域post上传图片"是一项常见的需求,尤其在用户需要在网站上上传个人头像或分享照片时。"跨域"是指一个域下的文档或脚本尝试请求另一个域下的资源,由于浏览器的同源策略限制,这种行为通常会被禁止...

    as3.0 XML加载

    3. **设置URLLoader的数据格式**:由于我们要加载的是XML,所以需要设置URLLoader的dataFormat属性为`URLLoaderDataFormat.TEXT`,这样加载的数据将以文本形式返回。 ```actionscript urlLoader.dataFormat = ...

    解决openlayers跨域访问的解决方案

    然而,由于浏览器的同源策略限制,当你尝试从不同的域加载地图或者地理数据时,可能会遇到跨域访问的问题。下面将详细介绍如何解决OpenLayers中的跨域问题。 ### 一、理解同源策略 同源策略是Web浏览器的一项安全...

Global site tag (gtag.js) - Google Analytics