打印

[AS3] 如何用as3获取php中的变量

以下是Flash中的代码:
复制内容到剪贴板
代码:
var myload=new URLLoader();
myload.load(new URLRequest("test.php"));
myload.addEventListener(Event.COMPLETE,com);
function com(e:Event):void
{
        trace(e.target.data);
}
以下是php中的代码:
复制内容到剪贴板
代码:
<?php
$a ='this data is form php!';
echo $a;
?>
结果Flash中输入的是
"<?php
$a ='this data is form php!';
echo $a;
?>"

我想获取到这个页面中变量a的值,就写成了"trace(e.target.data.a);",可是编译时却报错说"ReferenceError: Error #1069: 在 String 上找不到属性 a,且没有默认值。
        at album_fla::MainTimeline/com()
        at flash.events::EventDispatcher/dispatchEventFunction()
        at flash.events::EventDispatcher/dispatchEvent()
        at flash.net::URLLoader/onComplete()"

请教大家,我应该怎样才能获取到变量a的值呢?

[ 本帖最后由 xiguanqingyu 于 2008-5-13 11:41 编辑 ]

TOP

你現在這個樣子就可以獲取了。

TOP

获取不到啊,flash报错,没有属性a

TOP

trace(e.target.data);
這個就是a的值。

TOP

當需要獲取多個值的時候
如果采用對象的方式獲取值可以使用AMFPHP
或者用xml格式輸出信息,在AS中進行取值。

TOP

不是吧,老兄?
我trace出的是整个页面的代码啊,而不是变量a的值。
以下是trace出的内容:
<?php
$a ='this data is form php!';
echo $a;
?>

TOP

你的php頁面,是被當作文本文件讀入的。
吧這個php文件放到一個服務中來讀取。

像IIS 或者Apache 這種,具備了執行php代碼的能力。

現在你的load的是一個文件。而不是一個服務頁。
這個問題。

TOP

不是啊,我的php文件和flash都是放在Apache中,用的localhost域来读的,执行PHP页面的话就会显示出变量a的值。

[ 本帖最后由 xiguanqingyu 于 2008-5-13 13:14 编辑 ]

TOP

讀取的時候也加上localhost試試呢。

TOP

不明白您的意思啊版主,我的swf文件是在php文件中的,难道这还不够吗?

TOP

我想這樣是沒有問題的。我去做個測試。

TOP

我測試了。
單獨在flash運行是不會出a的值。

要用服務連接打開

FLASH CS3 IDE中的效果

瀏覽器中效果


htdocs/main目錄下的文件


[ 本帖最后由 enc0717 于 2008-5-13 14:02 编辑 ]
附件: 您所在的用户组无法下载或查看附件,您需要注册/登录后才能查看!

TOP

myload.load(new URLRequest("http://localhost/test.php"));

TOP

多谢版主,您是对的!
http://www.namipan.com/d/test.ra ... 1b79d2e56b8aa1e0000
我的级别太低不能发文件,以上是我的文件的地址,您能看一下吗?
我现在的问题是如果这个php页面中有其他的代码,并且这些代码不在php的标签中,那么除去我正确获取到的变量外,其他这些不在php标签中的代码全部都被swf文件获取到了,具体您可以看一下我的文件,这应该怎么处理呢?

TOP

你用網址直接調用這個php顯示出來的結果,就是FLASH接受到底結果。


我看了php標簽以外的東西,是用來在被瀏覽器解析用的,而不是送給FLASH的數據,可以去掉的。

TOP

可问题是我的这个swf文件是嵌入在php页面中的,如果去掉标签,不就没办法嵌入了吗?

TOP

你可以把這個部分的php分離出去單獨做一個php文件。

TOP

谢谢版主的热心帮助,我去试一下。我在天地会论坛提问了几天,也没人回答;在这却得到了热心的回答,差距啊。

TOP

关注这个问题!

TOP