假如你装置的是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的多标签阅读器”拜访,你会看到,第一次是畸形的,刷新以后就没有畸形。