关于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,一运行你可能就会中毒,或者隐私被盗。。这是真的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |