如何使用 php readfile 将 swf 加载到另一个 swf 中并保留 url 参数?

发布于 2024-10-21 14:40:41 字数 704 浏览 8 评论 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 返回一个为 null 的 url(使用 this.root.loaderInfo.url),因此由于没有配置文件 (CONFIG_URL),无法正确执行。

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

I am using php to read a file (specified by a cookie on the users machine) with the function readfile().
the file I am reading is an actionscript 3 flash file that depends on a configuration file appended to the url to function properly.

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

When I use readfile - the headers are set properly and the swf is returned to the browser which then runs it. I have discovered that using this method the config file (CONFIG_URL) has to be appended to the php file's url to be read properly by the swf - as the swf considers the path to the php file it's own.

This is fine when these are the only two elements involved - but when loading the php>read(swf) combination into another swf - the 'read' swf returns a url that is null (using this.root.loaderInfo.url) and therefore fails to execute properly as there is no config file (CONFIG_URL).

My question is: how can I load in a swf file from a php page (using readfile, fopen, whatever) and pass in $get parameters?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

源来凯始玺欢你 2024-10-28 14:40:41

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

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

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

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

mainConfig=xml/config.xml
secondarySWFconfig=xml/secondconfig.xml

等...

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

    公共函数设置参数(值:Object)
    {
    // 这里是所有参数的分配
    公共

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

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

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

问候。

First of all:this.root.loaderInfo.url needs to be: this.root.loaderInfo.parameters.url.

Second of all root.loaderInfo.parameters can be only accessed only from root swf.
This means that you can not say inside swf to php: load.php?swf=second.swf&someParameter=1234, and parse some parameter for the loaded swf directly.

The solution ( there is more thant one ) is:

  1. You need to set all this parameters for the root.swf ( when you loading it )

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

and etc...

  1. in the second.swf which will be loaded by root.swf you need to create function:

    public function set parameters ( value : Object )
    {
    // here all the assigment of the parameters
    }

  2. In the root.swf function which is launched after second.swf is loaded:

    private function onSecondSWFLoaded ( e : Event ) : void
    {
    e.currentTarget.content['parameters'] = this.root.loaderInfo.parameters;
    }

ANd then in the second swf you will be gettin these parameters and after them you can launch everything you need.

regards.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文