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


Accessing PHP variables using AS3 without using OO

真是难倒了。

我有以下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对象引用的方法。

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

欢迎大家多多指教。

抢劫。

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

其次,为什么要用和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;
        }

代码看起来都不对

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

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

Edit:事实上,我的观察解释了错误。当您定义"username"时,它显然不是对象。当你尝试设置属性"text"时,由于同样的原因,它将不起作用。

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

Edit2:

这是教程中的相关代码:

var username = evt.target.data.username;
var email = evt.target.data.email;
trace ('username is ' + username);
trace ('email is ' + email);

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