Adobe AIR 中加载.swf找不到其媒体文件

Loaded .swf in Adobe AIR cannot find its media files

本文关键字:找不到 媒体文件 swf 加载 AIR Adobe      更新时间:2023-09-26

我正在开发一个Adobe AIR javascript应用程序,该应用程序加载从InDesign(交互式书籍)导出的.swf文件。该.swf有一个"MySWF_Resources"目录,其中包含示例.flv视频。

问题是,当我使用 SWFobject 将该.swf加载到我的 AIR 应用程序中时,它失去了加载其资产的能力 - 在 AIR 环境中运行时,路径不知何故不正确。在浏览器中执行的相同.swf文件会正确加载"MySWF_Resources"目录中的视频。

是否有可能以某种方式强制.swf应该在其中查找文件的工作目录?AIR 以某种方式中断了包含的 .swfs 的相对路径。

以下是如何在空中应用程序中通过 SWF 包含 FLV/电影文件。您需要使用 FLV 文件的绝对路径,因为 Flash 不知道 Air 应用程序:/结构。您可以执行以下操作:

  1. 包括 AIRAliases.js(位于 air sdk 包中)
  2. 包括jPlayer(链接)
  3. 添加用于调用的空中事件侦听器 (链接)
  4. 将当前目录保存到 javascript 中的变量/对象
  5. 位置的反斜杠 ( myVar.replace(/''/g,"/")
  6. 传入位置 + 文件.flv 到 jPlayer 对象

使用jPlayer可以节省许多步骤,但是如果您想通过标准SWF执行此操作,则需要通过javascript创建嵌入/对象,并传入FLV文件位置的flashvars。然后,让闪存变量通过 ActionScript (LINK) 在 SWF 中设置内容源。