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

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,一运行你可能就会中毒,或者隐私被盗。。这是真的。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值