Async HTTPGet for Monkey
Monkey Forums/Monkey Code/Async HTTPGet for Monkey
| ||
| ** Flash Target Added I've only implemented HTML5 target so far but will move on to the others when I have more time. Grab the files and plop them in your modules directory to use : http://www.moofoo.net/monkey/moofoo.rar Simple use : But you could extend the asyncStream class and over-ride the callback methods to do more complex things ;) |
| ||
| Example of how you might over-ride a method |
| ||
| Good stuff. |
| ||
| So is this likely to get M U N G E D or obfuscated into oblivion in the future? Perhaps you'd let us tell the compiler that we've already used the obfuscation of choice :) |
| ||
| Hey 'cause people are requesting it - unobfuscated version of moofoo.html5.js |
| ||
| Just added Flash Target |
| ||
| Just to know everyone. I get an error about 'Overriding method does not match any overriden method'... I found I need to 'strictize'(with :String) the methods to compile it. |
| ||
| My bad - I didn't test with a STRICT example. |
| ||
| That link above is broken... :( |
| ||
| Hi guys. Got some trouble with this stuff. Everytime I get an error if I want to start my request. Code: ajax.js
// HTML5 moofoo runtime.
//
// Copyright 2011 Indiepath Ltd, all rights reserved.
// No warranty implied; use at your own risk.
//***** moofooStream class *****
function mfStrm(){};
mfStrm.prototype.getUrl=function( host, query ){
var self = this;
var xhr = new XMLHttpRequest();
if(xhr==null){
self.onRequestError("Failed to create Request");
};
xhr.open("GET", host + query, true);
xhr.onreadystatechange = function() {
switch (xhr.readyState){
case 0:
self.onRequestError("Error: "+xhr.statusText);
break;
case 1:
self.onConnectionEstablished();
break;
case 2:
self.onRequestReceived();
break;
case 3:
self.onRequestProcessing();
break;
case 4:
if (xhr.status == 200){
self.onRequestComplete(xhr.responseText);
} else {
self.onRequestError("Error: "+xhr.statusText);
}
break;
}
};
xhr.send(null);
};
mfStrm.prototype.onRequestError=function(status){};
mfStrm.prototype.onConnectionEstablished=function(){};
mfStrm.prototype.onRequestReceived=function(){};
mfStrm.prototype.onRequestProcessing=function(){};
mfStrm.prototype.onRequestComplete=function( response ){};
monkey code:
' Module moofoo.stream
'
' Copyright 2011 Indiepath Ltd, all rights reserved.
' No warranty implied; use at your own risk.
Import "ajax.js"
Extern
Class moofooStream="mfStrm"
Method getUrl( host$, query$)
Method onRequestError:String(status:String)
Method onConnectionEstablished:String()
Method onRequestReceived:String()
Method onRequestProcessing:String()
Method onRequestComplete:String(response$)
End
Public
Class asyncStream Extends moofooStream
Method New()
End
Method onRequestError$(status:String)
Print status
End
Method onConnectionEstablished$()
Return "connection made"
End
Method onRequestReceived$()
Return "request received"
End
Method onRequestProcessing$()
Return "request processing"
End
Method onRequestComplete$(response$)
Print response
End
End
Function Main()
Local tmp:asyncStream = New asyncStream
tmp.getUrl("http://localhost/test/index.php", "")
End
The file "index.php" in "/test" definitely exists but I´ll get an error without any text. xhr.status is 0. May someone can explain what´s going wrong here. Mfg Suco |
| ||
| Have you tried with a 'real' on-line test? I have similar problem on local, then I uploaded it online on my site and it did work. |
| ||
| Ooops, seems my DNS is pointing to a server that no longer exists - I'll fix it shortly. |
| ||
| Anybody have moofoo.rar? I've gotten around to getting a test app on facebook and am now looking at actually getting Facebook user into into the app. |
| ||
| You can get it here for now : http://culturalvibes.co.uk/monkey/moofoo.rar |
| ||
| Thanks Indepath. |
| ||
| For flash, all overriden functions in moofoo.stream.flash.as have to use same return type as overriding function (String), otherwise it will return error on compiling. Thanks for this lib :) |
| ||
| @thoast I'm trying to use moofoo with flash, but I can't get it to compile (I don't know actionscript). with the example given by indiepath (#2) I have this: Chargement du fichier de configuration C:\FlexSDK\frameworks\flex-config.xml ERROR:C:\....build\flash\MonkeyGame.as(1869): col: 27 Erreur: override non compatible. public override function onRequestError():String{ I changed the stream.moofoo.flash.as as you said. any clue ? |
| ||
| I had to change from "internl function" to "public function" to compile in flash. |