真的难倒这个。
我有以下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。
答案 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;
}