我一周前开始学习ActionScript 3,并且偶然发现了一个巨大的学习曲线。我在互联网上找到了这个脚本:
var _loader:URLLoader;
var _request:URLRequest;
function loadData():void {
_loader = new URLLoader();
_request = new URLRequest("http://www.travoid.com/game/Purchase.php?gid=1");
_request.method = URLRequestMethod.POST;
_loader.addEventListener(Event.COMPLETE, onLoadData);
_loader.addEventListener(IOErrorEvent.IO_ERROR, onDataFailedToLoad);
_loader.addEventListener(IOErrorEvent.NETWORK_ERROR, onDataFailedToLoad);
_loader.addEventListener(IOErrorEvent.VERIFY_ERROR, onDataFailedToLoad);
_loader.addEventListener(IOErrorEvent.DISK_ERROR, onDataFailedToLoad);
_loader.load(_request);
}
function onLoadData(e:Event):void {
trace("onLoadData",e.target.data);
}
function onDataFailedToLoad(e:IOErrorEvent):void {
trace("onDataFailedToLoad:",e.text);
}
这一切似乎都有效,并且没有产生任何错误或输出,但是当我使用下一部分代码(我制作)时出现问题
function vpBuy(e:MouseEvent):void{
loadData();
if (e.target.data == "false") {
inf_a.visible = true;
inf_b.visible = true;
inf_c.visible = true;
inf_d.visible = true;
btn_ok.visible = true;
}
}
我收到此错误:
ReferenceError:错误#1069:找不到属性数据 flash.display.SimpleButton并没有默认值。在 travoid_fla :: MainTimeline / vpBuy()onLoadData
可能抛出这个的部分是:
if (e.target.data == "false") {
我希望e.target.data
是将值存储在网页上的内容(显示为false),但显然不是。使用我在互联网上找到的代码,将信息存储在网页上的是什么?
谢谢,Ethan Webster。
答案 0 :(得分:0)
试图在数据加载之前检查数据。因为数据加载是基于时间的过程,而不是即时的。所以,你要让你的数据检查条件等待数据真正加载
我认为你应该从“onLoadData”
使用vpBuy的回调函数或者您可以尝试将数据检查条件移动到onLoadData函数,如
function onLoadData(e:Event):void {
trace("onLoadData",e.target.data);
if (e.target.data == "false")
{
inf_a.visible = true;
inf_b.visible = true;
inf_c.visible = true;
inf_d.visible = true;
btn_ok.visible = true;
}
}