从导入到安全域的 SWF 文件加载嵌入内容
Flash Player 9 和更高版本,Adobe AIR 1.0 和更高版本
当加载 SWF 文件时,可以设置用于加载文件的 Loader 对象的
load()
方法中的
context
参数。此参数是一个 LoaderContext 对象。将此 LoaderContext 对象的
securityDomain
属性设置为
Security.currentDomain
时,Flash Player 将在被加载 SWF 文件所在的服务器上检查是否存在 URL 策略文件。如果存在策略文件,并且该文件向执行加载的 SWF 文件所在的域授予访问权限,则可以作为导入媒体加载 SWF 文件。这样,执行加载的文件可以获得对 SWF 文件的库中对象的访问权限。
SWF 文件访问其他安全沙箱中被加载 SWF 文件的类的另一种方法是:使被加载的 SWF 文件调用
Security.allowDomain()
方法,以向执行调用的 SWF 文件所在的域授予访问权限。可以将对
Security.allowDomain()
方法的调用添加到被加载 SWF 文件的主类的构造函数方法中,然后使执行加载的 SWF 文件添加事件侦听器,以便响应由 Loader 对象的
contentLoaderInfo
属性调度的
init
事件。当调度此事件时,被加载的 SWF 文件已经调用构造函数方法中的
Security.allowDomain()
方法,因此被加载 SWF 文件中的类可用于执行加载的 SWF 文件。正在加载的 SWF 文件可以从已加载的 SWF 文件检索类,方法是调用
Loader.contentLoaderInfo.applicationDomain.getDefinition()
或 Loader.contentLoaderInfo.applicationDomain.getQualifiedDefinitionNames()(Flash Player 11.3 和更高版本、AIR 3.3 和更高版本)。
|
|
|