通过使用
<img>
标签,可以将 SWF 文件和位图加载到文本字段中,如以下代码所示:
<img src = 'filename.jpg' id = 'instanceName' >
通过使用 TextField 实例的
getImageReference()
方法,可以访问以这种方式加载的内容,如以下代码所示:
var loadedObject:DisplayObject = myTextField.getImageReference('instanceName');
但是请注意,以这种方式加载的 SWF 文件和图像会被放入与各自来源相应的沙箱中。
当在文本字段中使用
<img>
标签加载图像文件时,通过 URL 策略文件可以允许访问图像中的数据。通过将
checkPolicyFile
属性添加到
<img>
标签上,可以检查是否存在策略文件,如以下代码所示:
<img src = 'filename.jpg' checkPolicyFile = 'true' id = 'instanceName' >
当在文本字段中使用
<img>
标签加载 SWF 时,可以允许通过调用
Security.allowDomain()
方法来访问该 SWF 文件的数据。
当在文本字段中使用
<img>
标签加载外部文件时(相对于使用嵌在 SWF 文件中的 Bitmap 类),会自动创建一个 Loader 对象作为 TextField 对象的子对象,并且会将外部文件加载到该 Loader 对象中,就如同使用了 ActionScript 中的 Loader 对象来加载文件一样。在这种情况下,
getImageReference()
方法返回自动创建的 Loader。由于此 Loader 对象与调用代码位于同一安全沙箱中,因此访问此对象不需要任何安全检查。
但是,当引用 Loader 对象的
content
属性来访问加载的媒体时,需要应用安全规则。如果内容是图像,则需要实现 URL 策略文件;如果内容是 SWF 文件,则需要让 SWF 文件中的代码调用
allowDomain()
方法。
Adobe AIR
在应用程序沙箱内,将忽略文本字段中的 <img> 标签以防止仿冒攻击。此外,不允许在应用程序沙箱中运行的代码调用 Security
allowDomain()
方法。