如何在flash as3中处理代码而不添加事件侦听器(一旦flash发现它)


how to process code in flash as3 without adding event listener (as soon as flash discovers it)

我试图从php获取一些数据到flash并在动态文本字段中打印它。我知道这可能是一个愚蠢的问题,但我似乎无法弄清楚如何让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:访问未定义的属性事件。"

我知道这是一个基本的问题,但我是新的闪光,所以任何帮助将非常感激。

谢谢

Web请求在Flash中只能是异步的。您别无选择,只能添加一个事件侦听器,以便在加载完成时得到通知,此时您可以访问数据。

文档显示了执行您正在寻找的操作的唯一方法。您必须等待,直到它接收到来自请求的信息,才能显示文本:

// 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;
}

您需要实际监听您的加载器,以便检测它何时接收到来自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脚本。因为你似乎没有使用任何变量的请求,我忽略了它