как обрабатывать код во flash as3 без добавления прослушивателя событий (как только его обнаружит flash) - PullRequest
0 голосов
/ 24 июля 2011

Я пытаюсь извлечь некоторые данные из php во флэш-память и распечатать их в динамическом текстовом поле. Я знаю, что это может быть глупый вопрос, но я не могу понять, как заставить Flash обрабатывать код text_field.text = data.return_msg; без необходимости прослушивания событий.

Итак, я хочу, чтобы код был обработан, как только Flash обнаружит его.

это то, что у меня есть на данный момент:

var variables:URLVariables = new URLVariables("get_blog_info.php");


// Build the varLoader variable
var varLoader:URLLoader = new URLLoader;
varLoader.dataFormat = URLLoaderDataFormat.VARIABLES;


trace(varLoader);


var data:URLVariables = new URLVariables(event.target.data);
title_txt.text = data.return_msg;
}

и я получаю эту ошибку:

"1120: доступ к неопределенному событию свойства."

Я знаю, что это основной вопрос, но я новичок во вспышке, поэтому любая помощь будет высоко ценится.

Спасибо

Ответы [ 3 ]

2 голосов
/ 24 июля 2011

Веб-запросы асинхронны только во Flash.У вас нет выбора, кроме как добавить прослушиватель событий, который будет информирован о завершении загрузки, когда вы сможете получить доступ к данным.

1 голос
/ 24 июля 2011

Документация показывает единственный способ сделать то, что вы ищете.Вы должны ждать, пока он не получит информацию обратно из запроса, чтобы отобразить текст:

// notice: you want to have a request which points to the URL, not the variables.
var urlRequest:URLRequest = new URLRequest("get_blog_info.php");
var urlLoader:URLLoader = new URLLoader();
// it looks like you just want a string returned.
urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete);
urlLoader.load(urlRequest);

function urlLoader_complete(evt:Event):void {
    title_txt.text = urlLoader.data;
}
0 голосов
/ 24 июля 2011

Вам необходимо прослушивать ваш загрузчик, чтобы определить, когда он получает ответ от PHP. Только тогда у вас будет объект события и заполненное свойство данных. Вы должны делать что-то вроде этого:

var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE,onLoaded);
loader.load(new URLRequest("get_blog_info.php"));

function onLoaded(evt:Event):void
{
    loader.removeEventListener(Event.COMPLETE,onLoaded); // recomended, to prevent memory leaks. if you will not be using this loader again.
    title_txt.text = evt.target.data;
}

Я сознательно проигнорировал ваше использование URLVariables, так как считаю, что вы неправильно поняли его назначение. Вы должны создать экземпляр URLVariables со строкой пар имя / значение, которые являются переменными, которые будут отправлены в ваш PHP-скрипт. Поскольку вы, похоже, не используете переменные для запроса, я проигнорировал его

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...