行业新闻

Flash正在某些多标签阅读器中的“伪沙箱”成绩

作者:admin    来源:tfxk    发布时间:2011-10-26    阅读:1399次

假如你装置的是debug读物的播放器,能够看到Flash运转时发作了异样。
点击拜访测试页面
正在Chrome、Firefox等非IE阅读器上,是没有成绩的。正在“纯粹”的IE6、IE7、IE8上也是畸形的。(义务编者:帝位库)


   
       
            }
             
             }
             
              }
               graphics.endFill();
                50);
                Math.random() * stage.stageHeight,
                Math.random() * stage.stageWidth,
               graphics.drawCircle(
               graphics.beginFill(Math.random() * 0xFFFFFF, .5);
             
               TextField(getChildAt(0)).appendText('\nDraw a circle');
              {
              private function drawCircle():void
             
              }
               ExternalInterface.addCallback('drawCircle', drawCircle);
               ExternalInterface.call("alert", "Hi, flash is ready!");
               //正在基于IE的多标签阅读器中,那里运转时能够出错
              {
              private function start():void
             
              }
               start();
             
               Security.allowDomain("*");
               //答应被一切其余沙箱中的js或者flash调用
             
               addChild(tf);
               tf.autoSize = 'left';
               tf.text = 'flash ready';
               var tf:TextField = new TextField();
              {
              public function Main():void
             
             {
             public class Main extends Sprite
              */
              * @author qhwa
              * Flash缓存形成的伪沙箱成绩演示
             /**
             
             import flash.text.TextField;
             import flash.system.Security;
             import flash.external.ExternalInterface;
             import flash.display.Sprite;
            {
            package
       
   


Flash的源码:
at Main()
at Main/init()
at Main/start()
at flash.external::ExternalInterface$/call()
at flash.external::ExternalInterface$/_initJS()
SecurityError: Error #2060: 保险沙箱摩擦:ExternalInterface 调用者 http://pnq.cc/temp/test-dmm-crssdmn.swf 没有能拜访 http://q.pnq.cc/works/test/test-dmm-crssmn.html。
那样假如html和flash都安装了相互能够拜访,能否Flash和html之间就能够相互拜访了呢?实践上是的,但是实践上却没有是。
正在Flash播放器运转时,将没有同起源的资源区分到金鸡独立的沙箱(sandbox)内,没有同沙箱之间没有能相互操算数据(除了指标沙箱做过一些安装,受权其余沙箱可拜访),这就是Flash的跨沙箱成绩。然而正在傲游、360阅读器、腾讯阅读器等基于IE的多标签阅读器中,刷新页面的时分,Flash播放器还是会抛保险沙箱谬误。
    

。当Flash资料(.swf) 和页面(.html)没有正在同一度域名下时,假如没有通过Flash外部申明System.allowDomain,html无奈拜访flash界说的接口;没有通过html安装allowScriptAccess为’always’,Flash也无奈调用页面上的js因变量。

运用下面说的“基于IE的多标签阅读器”拜访,你会看到,第一次是畸形的,刷新以后就没有畸形。

回到顶部