Maybe I'm being too nice a guy, but here's a script I'm using to communicate to a server asynchly, queuing up 4 things to track as well as flagging an important 'call' and waiting for that one too. On the whole you can use most of it, but I'm calling it up by the global 'gcomlink', and sending it info as a list (ie gComlink.sendInfo([#msgID:"0004", #screenduration: 0039, #sessionID: 0038]), etc. Based on the msgID it does differnet things.. global gSendURL, gQuestionList property pWaitingList, pDispatchedList, pSwitch, pTempList property pRespondID on new me pWaitingList = [] pDispatchedList = [] pTempList=[:] pRespondID = 0 pSwitch = false add(the actorList, me) return me end new me on sendInfo me, tListToSend case tListToSend.MsgID of "001": -- login message createSession(me, tListToSend) "002", "003", "007": -- user tracking messages append(pWaitingList, tListToSend) "004": -- requesting exam requestExam(me, tListToSend) "005": -- exiting / dropping connection messages exitSession(me, tListToSend) end case end sendInfo me on stepFrame me if not(pDispatchedList.count) then if not(pWaitingList.count) then pSwitch = false else grabWaitingTrackingInfo(me) end if else checkCommunicationStatus(me) end if end stepFrame me on requestExam me, tListToSend pRespondID = postNetText (gSendURL & URLEncode(tListToSend), "") append(pDispatchedList, pRespondID) end requestExam me on grabWaitingTrackingInfo me repeat with index = 1 to 4 if index > pWaitinglist.count then exit repeat tNetID = postNetText( gSendURL & URLEncode(pWaitingList[index]), "") -- adds temp placeholder of tNetID and waiting track info in case of error addProp(pTempList, tNetID, pWaitingList[index]) append(pDispatchedList,tNetID) end repeat repeat with newIndex = (index -1 ) down to 1 deleteAt(pWaitingList, newIndex) end repeat end grabWaitingTrackingInfo me --------------------------------------------------------------------------- ------------------- -- if there are messages being sent, this makes sure the server communication returns no error -- and deletes the instance of that tracking information from it's memory or else it displays -- server commuication error properly --------------------------------------------------------------------------- ------------------- on checkCommunicationStatus me repeat with index = (pDispatchedList.count) down to 1 if netDone(pDispatchedList[index]) then -- checking if this netID has response information. This is not handling errors as yet if (pDispatchedList[index] = pRespondID) then gQuestionList=value(netTextResult(pDispatchedList[index])) pRespondID = 0 else case netError(pDispatchedList[index]) of "OK", 0: -- message returned ok pTempList.deleteProp(pDispatchedList[index]) pDispatchedList.deleteAt(index) 4150, 4157, 4154, 4144: -- failed network messages append(pWaitingList, pTempList.getAProp(pDispatchedList[index])) pTempList.deleteProp(pDispatchedList[index]) pDispatchedList.deleteAt(index) otherwise -- temp error tracking put "error" && netError(pDispatchedList[index]) end case end if end if end repeat end checkCommunicationStatus me --------------------------------------------------------------------------- ------------------- -- removing itself from memory (doing it on app quit) --------------------------------------------------------------------------- ------------------- on kill me deleteone(the actorList, me) end kill me --------------------[ http://www.grimmWERKS.com ]------------------ [ graphic design -|- sound design -|- shockwave -|- lingo -|- cdrom ] [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/LUJ/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]) Lingo-L is for learning and helping with programming Lingo. Thanks!]