使用AS3访问PHP变量而不使用OO

时间:2011-04-21 18:52:50

标签: php flash actionscript-3 flash-cs5

真的难倒这个。

我有以下PHP文件,其中包含我想要访问的变量,放置在我的flash舞台上的动态文本框中。

PHP代码:

$returnVars = array();

$returnVars['username'] = "test";

$returnString = http_build_query($returnVars);

//send variables back to Flash

echo $returnString;

AS3代码:

var request:URLRequest = new URLRequest("http://www.mysite.com/flash.php");
            request.method = URLRequestMethod.GET;

            var loader2:URLLoader = new URLLoader();
            loader.addEventListener(Event.COMPLETE, completeHandler);
            loader2.dataFormat = URLLoaderDataFormat.VARIABLES;
            loader2.load(request);


            function completeHandler(event:Event) :void{

                var username = event.target.data.username;

            // dynamic text box called username
            username.text=event.target.data.username;

            }

错误:

  

错误#1009:无法访问媒体资源   或null对象引用的方法。

代码改编自使用类的教程。但是我没有上课,所以不会使用任何课程。

任何想法都会受到欢迎。

-Rob。

2 个答案:

答案 0 :(得分:0)

代码看起来错了

首先,您确定http_build_query是您需要的吗?

其次,我不是AS的老手,但是定义一个名为“username”的变量然后以这种方式设置它的属性“text”看起来非常糟糕。

编辑:事实上,我的观察解释了错误。当你定义“用户名”时,它显然不是一个对象。当您尝试设置属性“text”时,由于同样的原因,它将无法工作。

我真的认为你需要学习面向对象编程的基础知识......

<强> EDIT2:

这是教程中的相关代码:

var username = evt.target.data.username;
var email = evt.target.data.email;

trace ('username is ' + username);

trace ('email is ' + email);

如你所见,没有提到username.text

答案 1 :(得分:0)

在查看你的代码时,我真的没有看到你在AS3工作的方式有什么问题(不知道Php,但我猜也是如此)。只是你应该将eventListener添加到loader,当你应该将它添加到loader2时。

第二,为什么你命名变量的方式与textBox相同?那是在问问题:)

        function completeHandler(event:Event) :void{

        //Change the variable name of this to something else
        var _someOtherVariableName = event.target.data.username;

        //dynamic text box called username
        username.text = event.target.data.username;

        }