2014-02-09 15 views
0

我一週前開始學習ActionScript 3,並偶然發現了一條巨大的學習曲線。我發現在互聯網上這個腳本:如何使用此URLRequest腳本?

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: Error #1069: Property data not found on flash.display.SimpleButton and there is no default value. at travoid_fla::MainTimeline/vpBuy() onLoadData

的一部分可能是引發此是:

if (e.target.data == "false") { 

我希望e.target.data是存儲在網頁上的值(顯示爲false),但顯然不是。通過我在互聯網上找到的代碼,什麼將信息存儲在網頁上?

謝謝, Ethan Webster。

+0

任何人能幫助我嗎? –

+0

[actionscript 3 - 我如何使用這個URLRequest腳本?]的可能的重複(http://stackoverflow.com/questions/21661990/actionscript-3-how-do-i-use-this-urlrequest-script) – Zhafur

回答

1

URLLoader加載方法是異步的,您必須在triyng之前等待服務器響應才能獲得結果。

函數onLoadData和onDataFailedToLoad是那裏做的。當響應良好收到函數onLoadData被調用,你可以得到e.target.data或_loader.data中的數據

函數vpBuy中的錯誤是你試圖訪問觸發對象上的data屬性MouseEvent(也許是一個Button),並且該對象沒有這樣的變量。

嘗試以下操作:

/** button clicked load the datas from the server **/ 
function vpBuy(e:MouseEvent):void 
{ 
    // load the datas from the server 
    loadData(); 
} 

/** the datas are well loaded i can access them **/ 
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; 
    } 
} 

希望這可以幫助你:)