2014-02-09 3 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 было тем, что хранило значение на веб-странице (которое отображается как ложное), но, по-видимому, нет. С кодом, который я нашел в Интернете, что хранит информацию на веб-странице?

Thanks, Этан Вебстер.

+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 - вы пытаетесь получить доступ к свойству данных объекта, который был вызван 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; 
    } 
} 

Надеется, что это может помочь вам :)

Смежные вопросы