加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

关于flex开发中的跨域访问问题

发布时间:2020-12-15 01:02:16 所属栏目:百科 来源:网络整理
导读:1,一次偶然的机会碰到这个问题了,flex有跨域访问问题,但是,imgage.soure='其它域名地址是可以的'。能显示出来,为什么? 不是说有跨越访问的问题么,其实flash说的跨域访问问题,不是跨域不能显示,而是跨域不能访问你加载的对象的内容 ,比如一个图片,
1,一次偶然的机会碰到这个问题了,flex有跨域访问问题,但是,imgage.soure='其它域名地址是可以的'。能显示出来,为什么?

不是说有跨越访问的问题么,其实flash说的跨域访问问题,不是跨域不能显示,而是跨域不能访问你加载的对象的内容 ,比如一个图片,你是以imgage.soure='其它域名地址是可以的' 这种方式跨域加载可以显示出来的,但是若想不作处理直接访问它的像素是不行的。还有你跨域加载的swf,可以显示 的,但你想访问swf中的对象是不行的。

2,我们这里不说swf,单就图片来说。你在flex开发测试中,用firebug看到你想加载的图片已到了本地了,可就是不能访问他的内部,比较像素,数据。即然已加载到本地,就说明它的全部数据都已加载到我们自己的域中,我们就有办法解决它跨域访问的问题。

你可以这样写的你代码。。

private var loader:Loader = new Loader();
private var lc:LoaderContext = new LoaderContext();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadImage_over);
loader.load(new URLRequest(“crossDomianImageUrl”),lc);
private function loadImage_over(e:Event):void {
			var bitmap:DisplayObject;
			try {
				bitmap= loader.content;
			} catch (err:SecurityError) {
					loader.loadBytes(loader.contentLoaderInfo.bytes);
				return;
			}
			bitmapdata= new BitmapData(bitmap.width,bitmap.height);
			bitmapdata.draw(bitmap);
///到此你的bitmapdata对象就可以自由使用了,比较直接赋给image.soure.也可访问更改其像素信息了,它就不是跨域的数据了。
?}; 3,如果没有flashplayer,安全限制,通常它是安全沙盒的形式来表述的。你就不能运行网上的flash,一运行你可能就会中毒,或者隐私被盗。。这是真的。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读