Доступ к переменным PHP с использованием AS3 без использования OO - PullRequest
0 голосов
/ 21 апреля 2011

Действительно озадачен этим.

У меня есть следующий PHP-файл с переменной, к которой я пытаюсь получить доступ, чтобы поместить его в динамическое текстовое поле на моей стадии флэш-памяти.

Код 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: невозможно получить доступ к свойству или метод ссылки на нулевой объект.

Код был адаптирован из учебника с использованием класса. Однако я не занимаюсь с классами, поэтому не буду их использовать.

Любые идеи будут приветствоваться.

Роб.

Ответы [ 2 ]

0 голосов
/ 22 апреля 2011

Глядя на ваш код, я не вижу ничего плохого в том, как вы работаете в AS3 (не знаю о Php, но я думаю, это тоже будет хорошо). Просто вы добавляете eventListener в загрузчик, когда вы должны добавить его в 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;

        }
0 голосов
/ 21 апреля 2011

Код выглядит совсем не так

Прежде всего, вы уверены, http_build_query это то, что вам нужно?

Во-вторых, я не ветеран AS, но определение переменной с именем "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.

...