PDA

Volledige versie bekijken : setInterval probleempje


W0utR
%Europe/Berlin %830 %2008, 19:55
Hallo, ik gebruik setInterval om een bepaalde functie elke seconde uit te voeren, maar helaas krijg ik de volgende error:
ArgumentError: Error #1063: Argument count mismatch on flashChat_fla::MainTimeline/getMessages(). Expected 1, got 0.
at Function/http://adobe.com/AS3/2006/builtin::apply()
at <anonymous>()
at SetIntervalTimer/onTimer()
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()


dit is mijn code die ik gebruikt:
var i_getMessages:uint = setInterval(getMessages, 1000);
var loader:URLLoader = new URLLoader;
loader.addEventListener(Event.COMPLETE, getMessages);
var xml:XML;

function getMessages(e:Event):void {
xml = new XML(e.target.data);
var il:XMLList = xml.chatbox.chat;
trace(il.length);
//for (var i:uint = 0; i < il.length(); i++) {
//lb.addItem({data:il.description.text()[i],label:il.title.text()[i]});
//}
}

loader.load(new URLRequest("http://localhost:8888/flash/chat/getMessages.php"));

TheDutch
%Europe/Berlin %875 %2008, 21:00
Lees de error nu eens goed, daar staat duidelijk in wat je fout doet.

HINT: setInterval() geeft geen argumenten mee aan de functie.

W0utR
%Europe/Berlin %877 %2008, 21:03
ja dat ik bij die getMessages een parameter moet meegeven, maar ik heb geen idee dewelke.

TheDutch
%Europe/Berlin %916 %2008, 21:59
Je kunt met setInterval nooit het event meegeven wat de functie verwacht. Daarom moet je het anders oplossen en wel zo:

var i_getMessages:uint = setInterval(getMessages, 1000);
var loader:URLLoader = new URLLoader;
loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);
var xml:XML;

function loaderCompleteHandler(e:Event):void{
getMessages();
}

function getMessages():void {
xml = new XML(loader.data);
var il:XMLList = xml.chatbox.chat;
trace(il.length);
//for (var i:uint = 0; i < il.length(); i++) {
//lb.addItem({data:il.description.text()[i],label:il.title.text()[i]});
//}
}

loader.load(new URLRequest("http://localhost:8888/flash/chat/getMessages.php"));

Lees wat vaker de LiveDocs om te weten te komen hoe bepaalde classes werken en wat je ervan kunt verwachten. Gezien je andere onderwerpen doe je dat niet echt en wanneer je het wel doet dan doe je het niet goed genoeg. Jij had hier ook uit kunnen komen als je goed naar de setInterval() en addEventListener() functies had gekeken in de LiveDocs!

W0utR
%Europe/Berlin %919 %2008, 22:04
bedankt, ik had ook iets in die aard geprobeert maar bleef dan dezelfde error krijgen.

Maar nu werkt het inderdaad wel