flash.system
public final class Security
继承Security Inheritance Object

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

使用 Security 类可以指定不同域中的 SWF 文件相互通信的方式。

查看示例

另请参见

Flash Player 安全性



公共 属性
 属性定义方
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  exactSettings : Boolean
[static] 决定 Flash Player 如何选择用于某些 Flash Player 设置的域,包括摄像头和麦克风权限、存储配额及永久共享对象存储的设置。
Security
 Inheritedprototype : Object
[static] 对类或函数对象的原型对象的引用。
Object
  sandboxType : String
[static] [read-only] 指示其中正在运行执行调用的 SWF 文件的安全沙箱的类型。
Security
公共 方法
 方法定义方
  
allowDomain(... domains):void
[static] 允许所标识的域中的 SWF 文件和 HTML 文件访问包含 allowDomain() 调用的 SWF 文件中的对象和变量。
Security
  
[static] 允许所标识的域中的 SWF 文件和 HTML 文件访问执行调用的 SWF 文件中的对象和变量,该文件是使用 HTTPS 协议承载的。
Security
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
  
[static] 从 url 参数指定的位置加载一个跨域策略文件。
Security
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
  
showSettings(panel:String = "default"):void
[static] 显示 Flash Player 中的“安全设置”面板。
Security
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
公共 常量
 常量定义方
  LOCAL_TRUSTED : String = "localTrusted"
[static] 此 SWF 文件是本地文件,并且用户已经使用“设置管理器”或 FlashPlayerTrust 配置文件将其设置为受信任的文件。
Security
  LOCAL_WITH_FILE : String = "localWithFile"
[static] 此 SWF 文件是本地文件,尚未受到用户信任,且没有使用网络名称进行发布。
Security
  LOCAL_WITH_NETWORK : String = "localWithNetwork"
[static] 此 SWF 文件是本地文件,尚未受到用户信任,且已使用网络名称进行发布。
Security
  REMOTE : String = "remote"
[static] 此 SWF 文件来自 Internet URL,并在基于域的沙箱规则下运行。
Security
属性详细信息
exactSettings属性
exactSettings:Boolean  [read-write]

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

决定 Flash Player 如何选择用于某些 Flash Player 设置的域,包括摄像头和麦克风权限、存储配额及永久共享对象存储的设置。 您可以将 exactSettings 设置为 false,以使 SWF 文件使用的设置与在 Flash Player 6 中使用的设置相同。

在 Flash Player 6 中,为这些播放器设置使用的域基于 SWF 文件的域的末尾部分。 如果 SWF 文件的域包含的段数超过两个,如 www.example.com,则会去除该域的第一段(“www”),并使用该域的剩余部分:example.com。 因此,在 Flash Player 6 中,www.example.com 和 store.example.com 都使用 example.com 作为这些设置的域。 同样,www.example.co.uk 和 store.example.co.uk 都使用 example.co.uk 作为这些设置的域。 在 Flash Player 7 及更高版本中,默认情况下是根据 SWF 文件的精确域来选择播放器设置;例如,来自 www.example.com 的 SWF 文件将使用 www.example.com 的播放器设置,来自 store.example.com 的 SWF 文件将使用 store.example.com 的不同播放器设置。

Security.exactSettings 设置为 true 时,Flash Player 将为播放器设置使用精确域。 当它设置为 false 时,Flash Player 使用在 Flash Player 6 中使用的域设置。 exactSettings 的默认值为 false。 如果将 exactSettings 更改为使用其它值而不是默认值,则必须在要求 Flash Player 选择播放器设置的任何事件(例如,使用摄像头或麦克风,或者检索永久共享对象)发生之前执行此操作。

如果您以前发布了第 6 版 SWF 文件并从该文件创建了永久共享对象,并且现在您需要在将该 SWF 文件移植到第 7 版或更高版本后从该 SWF 文件中检索这些永久共享对象,或者从第 7 版或更高版本的其它 SWF 文件中检索这些永久对象,则您必须在调用 SharedObject.getLocal() 之前将 Security.exactSettings 设置为 false


实现
    public static function get exactSettings():Boolean
    public function set exactSettings(value:Boolean):void

引发
SecurityError — Flash Player 在决定播放器设置时已至少使用了一次 exactSettings 的值。

另请参见

sandboxType属性 
sandboxType:String  [read-only]

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

指示其中正在运行执行调用的 SWF 文件的安全沙箱的类型。

Security.sandboxType 具有下列值之一:

任何版本的 SWF 文件均可以使用此属性,但只在 Flash Player 8 或更高版本中才受支持。 因此,举例来说,您可以从在 Flash Player 8 中播放的第 7 版 SWF 文件中检查此属性。 这种对所有版本的支持意味着,如果您为低于 8 的版本进行发布,则在发布时您将不知道在播放时是否支持此属性。 因此,在第 7 版或更低版本的 SWF 文件中,此属性有一个未定义的值;这仅在播放器版本(由 flash.system.Capabilities.version 指示)低于 8 时发生。 在这种情况下,可以根据该 SWF 文件是否为本地文件来确定沙箱类型。 如果它是本地文件,Flash Player 会将 SWF 文件分类为 localTrusted。 (在 Flash Player 8 之前,所有的本地内容都是这样处理的)。 如果它不是本地文件,Flash Player 会将 SWF 文件分类为 remote

有关详细信息,请参阅以下部分:


实现
    public static function get sandboxType():String

另请参见

方法详细信息
allowDomain()方法
public static function allowDomain(... domains):void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

允许所标识的域中的 SWF 文件和 HTML 文件访问包含 allowDomain() 调用的 SWF 文件中的对象和变量。

如果两个 SWF 文件来自同一个域(例如,http://mysite.com/swfA.swf 和 http://mysite.com/swfB.swf),则 swfA.swf 可以检查和修改 swfB.swf 中的变量、对象、属性、方法等,而且 swfB.swf 也可以对 swfA.swf 执行同样的操作。 这被称为跨影片脚本编写跨脚本编写

如果两个 SWF 文件来自不同的域(例如,http://siteA.com/swfA.swf 和 http://siteB.com/siteB.swf),则在默认情况下,Flash Player 既不允许 swfA.swf 编写 swfB.swf 的脚本,也不允许 swfB.swf 编写 swfA.swf 的脚本。 通过调用 Security.allowDomain(),一个 SWF 文件可授予其它域中的 SWF 文件编写其脚本的权限。 这称为跨域脚本编写。 通过调用 Security.allowDomain("siteA.com"),siteB.swf 可授予 siteA.swf 编写其脚本的权限。

在任何跨域的情况下,明确所涉及的双方非常重要。 为了便于进行此讨论,我们将执行跨脚本编写的一方称为访问方(通常是执行访问的 SWF),将另一方称为被访问方(通常是被访问的 SWF)。 当 siteA.swf 编写 siteB.swf 的脚本时,siteA.swf 是访问方,siteB.swf 是被访问方。

使用 allowDomain() 建立的跨域权限是不对称的。 在上一个示例中,siteA.swf 可以编写 siteB.swf 的脚本,但 siteB.swf 无法编写 siteA.swf 的脚本,这是因为 siteA.swf 未调用 allowDomain() 来授予 siteB.com 中的 SWF 文件编写其脚本的权限。 可以通过让两个 SWF 文件都调用 allowDomain() 来设置对称权限。

除了防止 SWF 文件受到其它 SWF 文件发起的跨域脚本编写影响外,Flash Player 还可防止 SWF 文件受到 HTML 文件发起的跨域脚本编写的影响。 可以使用旧版本的 Flash 浏览器函数(如 SetVariable)或通过 ExternalInterface.addCallback() 创建的回调执行 HTML 到 SWF 的脚本编写。 当 HTML 到 SWF 的脚本编写跨域时,被访问的 SWF 文件必须调用 allowDomain()(这与访问方是一个 SWF 文件时一样),否则操作将失败。

如果将 IP 地址指定为 allowDomain() 的参数,则不允许所有源自指定 IP 地址的访问方进行访问。 相反,只允许 URL 中包含指定 IP 地址的访问方进行访问,而不是允许其域名映射到该 IP 地址的访问方进行访问。

特定于版本的差异

Flash Player 的跨域安全性规则随着版本的升级发生了演变。 下表概述了这些差异。

涉及跨脚本编写的最新 SWF 版本是否需要 allowDomain()是否需要 allowInsecureDomain()哪个 SWF 必须调用 allowDomain()allowInsecureDomain()allowDomain()allowInsecureDomain() 中可以指定哪些内容?
第 5 版或更低版本不可用不可用
6是的,如果超级域不匹配被访问的 SWF 文件,或者任何与被访问的 SWF 文件具有相同超级域的 SWF 文件
  • 基于文本的域 (mysite.com)
  • IP 地址 (192.168.1.1)
7是的,如果域不是完全匹配是的,如果执行 HTTP 到 HTTPS 的访问(即使域完全匹配)被访问的 SWF 文件,或者任何与被访问的 SWF 文件具有完全相同域的 SWF 文件
  • 基于文本的域 (mysite.com)
  • IP 地址 (192.168.1.1)
第 8 版或更高版本是的,如果域不是完全匹配是的,如果执行 HTTP 到 HTTPS 的访问(即使域完全匹配)被访问的 SWF
  • 基于文本的域 (mysite.com)
  • IP 地址 (192.168.1.1)
  • 通配符 (*)

控制 Flash Player 行为的版本是 SWF 版本(SWF 文件的发布版本),而不是 Flash Player 本身的版本。 例如,当 Flash Player 8 正在播放为第 7 版发布的 SWF 文件时,它应用与第 7 版一致的行为。 这种做法可确保播放器升级不会更改已部署 SWF 文件中的 Security.allowDomain() 的行为。

上表中的版本列显示了涉及跨脚本编写操作的最新 SWF 版本。 Flash Player 根据执行访问的 SWF 文件的版本或被访问的 SWF 文件的版本(以两者中的较高版本为准)来确定其行为。

下面的段落提供有关涉及 Security.allowDomain() 的 Flash Player 安全性更改的详细信息。

第 5 版。 没有跨域脚本编写限制。

第 6 版。 引入了跨域脚本编写安全性。 默认情况下,Flash Player 禁止跨域脚本编写;Security.allowDomain() 可允许跨域脚本编写。 为了确定两个文件是否处于同一域中,Flash Player 将使用每个文件的超级域(即文件 URL 中的完全主机名,去掉第一段,最少剩两段)。 例如,www.mysite.com 的超级域为 mysite.com。 来自 www.mysite.com 和 store.mysite.com 的 SWF 文件无需调用 Security.allowDomain() 就可以相互编写脚本。

第 7 版。 超级域匹配更改为域完全匹配。 仅在这两个文件的 URL 中的主机名完全相同时才允许它们相互编写脚本;否则需要调用 Security.allowDomain()。 默认情况下,不再允许从非 HTTPS URL 加载的文件编写从 HTTPS URL 加载的文件的脚本,即使这些文件从完全相同的域加载也是如此。 由于非 HTTPS 文件容易在下载的过程中被修改,而经过恶意修改的非 HTTPS 文件能破坏 HTTPS 文件,此限制可防止这样的篡改,所以有助于保护 HTTPS 文件。 引入了 Security.allowInsecureDomain() 以允许被访问的 HTTPS SWF 文件自主禁用此限制,但不鼓励使用 Security.allowInsecureDomain()

第 8 版。 主要有两项更改:

有时您也可能遇到下面这种情况:您从另一个域中加载一个子级 SWF 文件,并想让该子级 SWF 文件编写父级 SWF 文件的脚本,但您不知道该子级 SWF 文件的最终域。 例如,当您使用负载平衡重定向或第三方服务器时就可能发生这种情况。

在这种情况下,您可以使用您传递给 Loader.load() 的 URLRequest 对象的 url 属性。 例如,如果将子级 SWF 文件加载到父级 SWF 中,则可以访问父级 SWF 的 Loader 对象的 contentLoaderInfo 属性:

Security.allowDomain(loader.contentLoaderInfo.url)

请务必等待,直至子级 SWF 文件开始加载,以便获得 url 属性的正确值。 若要确定子级 SWF 何时开始加载,请使用 progress 事件。

也可能出现相反的情况:即您可能创建一个子级 SWF 文件,并想要允许其父级编辑该子级 SWF 文件的脚本,但不知道该父级将来自哪个域。 在这种情况下,可以访问作为该 SWF 根对象的显示对象的 loaderInfo 属性。 在子级 SWF 中,调用 Security.allowDomain( this.root.loaderInfo.loaderURL)。 您不必等待父级 SWF 文件加载;加载子级时,父级已加载完毕。

如果正在为 Flash Player 8 或更高版本进行发布,也可以通过调用 Security.allowDomain("*") 处理这些情况。 不过,有时这可能是很危险的便捷手段,因为它允许来自任何域的任何其它 SWF 文件访问执行调用的 SWF 文件。 通常,使用 _url 属性更安全。

有关详细信息,请参阅以下部分:

参数

... domains — 一个或多个字符串或者 URLRequest 对象,它们可命名一些域,您希望允许从这些域中进行访问。 可指定特殊域“*”,以允许从所有域进行访问。

若要从通过在 Flash 创作工具中将“本地回放安全性”选项设为“只访问网络”来进行发布的本地 SWF 文件访问非本地 SWF 文件,指定“*”是唯一的方法。

另请参见

allowInsecureDomain()方法 
public static function allowInsecureDomain(... domains):void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

允许所标识的域中的 SWF 文件和 HTML 文件访问执行调用的 SWF 文件中的对象和变量,该文件是使用 HTTPS 协议承载的。 不建议使用此方法;请参阅本条目后面的“安全性注意事项”。

此方法与 Security.allowDomain() 的工作方式相同,但是它还允许在使用非 HTTPS 协议加载访问方并使用 HTTPS 加载被访问方的情况下执行操作。 在 Flash Player 7 及更高版本中,不允许非 HTTPS 文件编写 HTTPS 文件的脚本。 当被访问的 HTTPS SWF 文件使用 allowInsecureDomain() 方法时,该方法可解除此限制。

仅使用 allowInsecureDomain() 启用从非 HTTPS 文件到 HTTPS 文件的脚本编写。 如果执行访问的非 HTTPS 文件和被访问的 HTTPS 文件来自同一个域(例如,如果 http://mysite.com 上的 SWF 文件要编写 https://mysite.com 的 SWF 文件的脚本),请使用它启用脚本编写。 请不要使用此方法在非 HTTPS 文件之间、HTTPS 文件之间或从 HTTPS 文件到非 HTTPS 文件启用脚本编写。 对于那些情况,请改用 allowDomain()

安全性注意事项:Flash Player 提供 allowInsecureDomain() 以获得最佳的灵活性,但不建议调用此方法。 通过 HTTPS 提供文件,可以为您和您的用户提供若干保护措施,而调用 allowInsecureDomain 会削弱这些保护措施之一。 下面的情形说明了在未经仔细考虑的情况下使用 allowInsecureDomain() 时,它将如何削弱安全性。

请注意,下面的信息只是一种可能的情形,旨在通过一个具体的跨脚本编写示例来帮助您了解 allowInsecureDomain()。 它没有涉及安全体系结构的所有问题,仅应用于背景信息。 Flash Player 开发人员中心包含有关 Flash Player 和安全性的大量信息。 有关详细信息,请访问 http://www.adobe.com/cn/devnet/security/

假定您要创建一个电子商务站点,它由两个组件构成:一个是产品目录组件,它不必是安全的,因为它仅包含公共信息;另一个是购物车/结帐组件,它必须是安全的,以保护用户的财务信息和个人信息。 假定您考虑从 http://mysite.com/catalog.swf 提供产品目录,从 https://mysite.com/cart.swf 提供购物车。 对您站点的一个要求便是:第三方应不能通过利用您安全体系结构中的漏洞盗取用户的信用卡号码。

请设想:“中间方”攻击者在您的服务器和您的用户之间进行干预,试图盗取您的用户在购物车申请表中输入的信用卡号码。 中间方是指这样的人员:对于在您的用户和服务器之间通过公共 Internet 传输的网络数据包,他能够进行查看或更改。例如,您的某些用户所使用的不道德的 ISP,或者,在用户工作区的怀有不良企图的管理员,都可能是中间方。 这种情况并不罕见。

如果 cart.swf 使用 HTTPS 将信用卡信息传输到服务器,则中间方攻击者无法直接从网络数据包盗取此信息,因为 HTTPS 传输已加密。 但是,攻击者可以使用其它技术:在您的 SWF 文件发送到用户时更改其中一个 SWF 文件的内容;将您的 SWF 文件替换为更改后的版本,此版本将用户的信息传输到由攻击者所有的其它服务器。

HTTPS 协议等可阻止此“修改”攻击发生作用,因为除了加密外,HTTPS 传输还是防篡改的。 如果中间方攻击者更改数据包,则接收方将检测到更改并丢弃该数据包。 因此在这种情况下,攻击者无法更改您的 cart.swf,因为它是通过 HTTPS 传递的。

不过,假设您希望允许 catalog.swf(通过 HTTP 提供)中的按钮将项目添加到 cart.swf(通过 HTTPS 提供)中的购物车, 为实现此功能,cart.swf 调用 allowInsecureDomain(),这样 catalog.swf 就可以编写 cart.swf 的脚本。 此操作会导致意外的后果:现在攻击者可以在用户最初下载 catalog.swf 时对它进行更改,这是因为 catalog.swf 是使用 HTTP 发送的,无法防止篡改。 现在,攻击者更改过的 catalog.swf 可以编写 cart.swf 的脚本,因为 cart.swf 包含对 allowInsecureDomain() 的调用。 已更改的 catalog.swf 文件可以使用 ActionScript 访问 cart.swf 中的变量,这样就可以读取用户的信用卡信息和其它敏感数据。 然后,已更改的 catalog.swf 可以将此数据发送到攻击者的服务器。

显然,这是您所不愿看到的,但是您仍希望站点上两个 SWF 文件之间可以进行跨脚本编写。 要重新设计此假设的电子商务站点,以避免 allowInsecureDomain(),可以采用下面两种可能的方法:

多年来,Web 浏览器一直强制将 HTTPS 文件和非 HTTPS 文件分开,以上所描述的情形正是此限制的一个很好的理由。 Flash Player 为您提供了在绝对必须时避开此安全限制的能力,但在这样做之前一定要仔细考虑后果。

有关详细信息,请参阅以下部分:

参数

... domains — 一个或多个字符串或者 URLRequest 对象,它们可命名一些域,您希望允许从这些域中进行访问。 可指定特殊域“*”,以允许从所有域进行访问。

若要从使用 Flash 创作工具中“本地回放安全性”设置(“文件”>“发布设置”>“Flash”选项卡)的“只访问网络”发布的本地 SWF 文件访问非本地 SWF 文件,则指定“*”是唯一的方法。

另请参见

loadPolicyFile()方法 
public static function loadPolicyFile(url:String):void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

url 参数指定的位置加载一个跨域策略文件。 Flash Player 使用策略文件来决定是否允许 Flash 影片从它们自己的服务器以外的服务器加载数据。

默认情况下,Flash Player 只在一个位置查找策略文件:特定服务器(正在向该服务器发送数据加载请求)上的 /crossdomain.xml。

使用 Security.loadPolicyFile(),Flash Player 可以从任意位置加载策略文件,如下例所示:

  Security.loadPolicyFile("http://www.example.com/sub/dir/pf.xml");
  

这使得 Flash Player 可以从指定 URL 中检索策略文件。 由该位置处的策略文件授予的任何权限将适用于该服务器虚拟目录层次结构中的同一级别或更低级别中的所有内容。 例如,如果在上一段代码之后添加下面的代码行,则这些代码行不会引发异常:

 import flash.net.*;
  var request:URLRequest = new URLRequest("http://www.example.com/sub/dir/vars.txt");
  var loader:URLLoader = new URLLoader();
  loader.load(request);
  
  var loader2:URLLoader = new URLLoader();
  var request2:URLRequest = new URLRequest("http://www.example.com/sub/dir/deep/vars2.txt");
  loader2.load(request2);
  

但是,下面的代码则会引发安全性异常:

 import flash.net.*;
  var request3:URLRequest = new URLRequest("http://www.example.com/elsewhere/vars3.txt");
  var loader3:URLLoader = new URLLoader();
  loader3.load(request3);
  

您可以使用 loadPolicyFile() 加载任意数量的策略文件。 在考虑需要策略文件的请求时,Flash Player 始终会等待策略文件下载完成后才会拒绝请求。 如果由 loadPolicyFile() 指定的任何策略文件都未对请求进行授权,则 Flash Player 会查询原始的默认位置 /crossdomain.xml,这是最终的后备操作。

与特定端口号一起使用 xmlsocket 协议,您可以直接从 XMLSocket 服务器中检索策略文件,如下例所示:

  Security.loadPolicyFile("xmlsocket://foo.com:414");
  

这会导致 Flash Player 尝试从指定的主机和端口检索策略文件。 不仅可以使用端口 1024 和更高端口,任何端口都可以使用。 使用指定的端口建立连接后,Flash Player 立即传送 <policy-file-request />,并以 null 字节结束。 XMLSocket 服务器可以配置为通过同一端口提供策略文件和常规 XMLSocket 连接,在这种情况中,服务器在传送策略文件之前,应等待 <policy-file-request />。 服务器也可以设置成通过与标准连接不同的端口提供策略文件,在这种情况下,服务器可以在专用策略文件端口上建立了连接之后立刻发送策略文件。 服务器必须发送一个空字节来终止策略文件,并可以随后关闭该连接;如果服务器不关闭该连接,则 Flash Player 在收到终止 null 字节后也会这样做。

由 XMLSocket 服务器提供的策略文件具有与其它策略文件相同的语法,只是它还必须指定授予访问权限的端口。 如果策略文件来自低于 1024 的端口,则它可以对任何端口授予访问权限;如果策略文件来自 1024 或更高的端口,则它只能对其它 1024 端口和更高的端口授予访问权限。 所允许的端口是在 <allow-access-from> 标签的 "to-ports" 属性中指定的。 允许使用单个端口号、端口范围和通配符。 下例显示了一个 XMLSocket 策略文件:

  <cross-domain-policy>
    <allow-access-from domain="*" to-ports="507" />
    <allow-access-from domain="*.foo.com" to-ports="507,516" />
    <allow-access-from domain="*.bar.com" to-ports="516-523" />
    <allow-access-from domain="www.foo.com" to-ports="507,516-523" />
    <allow-access-from domain="www.bar.com" to-ports="*" />
  </cross-domain-policy>
  

从旧的默认位置(HTTP 服务器的端口 80 上的 /crossdomain.xml)获取的策略文件将隐式地授予对 1024 端口及以上的所有端口的访问权限。 不可能从 HTTP 服务器上的任何其它位置检索策略文件来授权 XMLSocket 操作,XMLSocket 策略文件的任何自定义位置必须位于 XMLSocket 服务器上。

连接到低于 1024 的端口的能力只能由使用 loadPolicyFile() 加载的策略文件授予。

可以在包含 SWF 内容的 HTML 页中设置 objectembed 标签的 allowNetworking 参数,防止 SWF 文件使用此方法。

有关详细信息,请参阅以下部分:

参数

url:String — 要加载的跨域策略文件的 URL 位置。

另请参见

showSettings()方法 
public static function showSettings(panel:String = "default"):void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

显示 Flash Player 中的“安全设置”面板。

参数

panel:String (default = "default") — 来自 SecurityPanel 类的一个值,它指定您希望显示哪一个“安全设置”面板。 如果省略此参数,则使用 SecurityPanel.DEFAULT

另请参见

常量详细信息
LOCAL_TRUSTED常量
public static const LOCAL_TRUSTED:String = "localTrusted"

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

此 SWF 文件是本地文件,并且用户已经使用“设置管理器”或 FlashPlayerTrust 配置文件将其设置为受信任的文件。 此 SWF 文件既可以从本地数据源读取数据,也可以与 Internet 进行通信。

另请参见

LOCAL_WITH_FILE常量 
public static const LOCAL_WITH_FILE:String = "localWithFile"

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

此 SWF 文件是本地文件,尚未受到用户信任,且没有使用网络名称进行发布。 此 SWF 文件可以从本地数据源读取数据,但不能与 Internet 进行通信。

另请参见

LOCAL_WITH_NETWORK常量 
public static const LOCAL_WITH_NETWORK:String = "localWithNetwork"

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

此 SWF 文件是本地文件,尚未受到用户信任,且已使用网络名称进行发布。 此 SWF 文件可与 Internet 通信,但不能从本地数据源读取数据。

另请参见

REMOTE常量 
public static const REMOTE:String = "remote"

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

此 SWF 文件来自 Internet URL,并在基于域的沙箱规则下运行。

另请参见

示例 如何使用示例

下例显示如何使用 Sprite 对象上的 click 事件显示“Flash Player 设置”中的“本地存储设置”面板。 使用 draw() 将一个橙色框添加到舞台上。 在 draw() 中,通过指示 Flash Player 打开其“本地存储设置”面板,将 click 事件侦听器以名称 clickHandler() 添加进来,它对应于 click 事件。
package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.events.*;
    import flash.system.Security;
    import flash.system.SecurityPanel;

    public class SecurityExample extends Sprite {
        private var bgColor:uint = 0xFFCC00;
        private var size:uint = 100;

        public function SecurityExample() {
            draw();
        }

        private function draw():void {
            var child:Sprite = new Sprite();
            child.graphics.beginFill(bgColor);
            child.graphics.drawRect(0, 0, size, size);
            child.graphics.endFill();
            child.buttonMode = true;

            var label:TextField = new TextField();
            label.text = "settings";
            label.selectable = false;
            label.mouseEnabled = false;
            child.addChild(label);

            child.addEventListener(MouseEvent.CLICK, clickHandler);
            addChild(child);
        }

        private function clickHandler(event:MouseEvent):void {
            Security.showSettings(SecurityPanel.LOCAL_STORAGE);
        }
    }
}




 

评论添加到页面后给我发送电子邮件 | 评论报告

当前页: http://livedocs.adobe.com/flash/9.0_cn/ActionScriptLangRefV3/flash/system/Security.html