0

我正在使用 php 通过函数 readfile() 读取文件(由用户机器上的 cookie 指定)。我正在阅读的文件是一个 actionscript 3 flash 文件,它依赖于附加到 url 的配置文件才能正常运行。

例如: http://www.pathToFlash.com/file.swf?CONFIG_URL=http: //www.pathToConfig.com/config.xml

当我使用 readfile - 标头设置正确,swf 返回到浏览器,然后运行它。我发现使用这种方法,必须将配置文件(CONFIG_URL)附加到 php 文件的 url 才能被 swf 正确读取 - 因为 swf 认为它自己的 php 文件的路径。

当这些是唯一涉及的两个元素时,这很好 - 但是当将 php>read(swf) 组合加载到另一个 swf 时 - 'read' swf 返回一个为空的 url(使用 this.root.loaderInfo.url),因此由于没有配置文件 (CONFIG_URL),无法正确执行。

我的问题是:如何从 php 页面加载 swf 文件(使用 readfile、fopen 等)并传入 $get 参数?

4

1 回答 1

0

首先:this.root.loaderInfo.url需要是:this.root.loaderInfo.parameters.url.

其次,root.loaderInfo.parameters只能从根 swf 访问。这意味着你不能在swf里面对php说:load.php?swf=second.swf&someParameter=1234,而直接为加载的swf解析一些参数。

解决方案(不止一个)是:

  1. 您需要为 root.swf 设置所有这些参数(加载时)

mainConfig=xml/config.xml secondSWFconfig=xml/secondconfig.xml

等等...

  1. 在将由 root.swf 加载的 second.swf 中,您需要创建函数:

    public function set parameters(value:Object) { //这里所有的参数赋值}

  2. 在加载 second.swf 后启动的 root.swf 函数中:

    私有函数 onSecondSWFLoaded ( e : Event ) : void { e.currentTarget.content['parameters'] = this.root.loaderInfo.parameters; }

然后在第二个 swf 中,您将获得这些参数,然后您可以启动所需的一切。

问候。

于 2011-03-13T12:24:09.527 回答