chirpstream sample 2
SocketアクセスはFlashPolicy.xmlがないだかでerrorになるっぽい
@see http://wonderfl.net/c/3NzN
crossdomain.xmlはちゃんとある
♥0 |
Line 83 |
Modified 2010-07-02 12:52:28 |
MIT License
archived:2017-03-20 06:43:31
ActionScript3 source code
/**
* Copyright uwi ( http://wonderfl.net/user/uwi )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/X8PL
*/
// SocketアクセスはFlashPolicy.xmlがないだかでerrorになるっぽい
// @see http://wonderfl.net/c/3NzN
// crossdomain.xmlはちゃんとある
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.net.*;
import flash.events.*;
import flash.system.*;
import mx.utils.*;
import com.bit101.components.*;
import com.adobe.serialization.json.JSON;
import com.adobe.serialization.json.*;
import flash.utils.*;
public class Test extends Sprite {
private var _tf : TextField;
private var _st : URLStream;
private var _user : InputText;
private var _pass : InputText;
public function Test() {
Wonderfl.disable_capture();
_tf = new TextField();
_tf.width = 465;
_tf.height = 465;
addChild(_tf);
_user = new InputText(this, 350, 10, "username");
_pass = new InputText(this, 350, 35, "password");
var submit : PushButton = new PushButton(this, 350, 60, "Submit", onSubmit);
var stop : PushButton = new PushButton(this, 350, 85, "Stop", onStop);
init();
}
private function init() : void
{
_st = new URLStream();
_st.addEventListener(IOErrorEvent.IO_ERROR, onError);
_st.addEventListener(Event.OPEN, onOpen);
_st.addEventListener(ProgressEvent.PROGRESS, onProgress);
_st.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onError);
}
private function onSubmit(e : MouseEvent) : void
{
var req : URLRequest = new URLRequest("http://chirpstream.twitter.com/2b/user.json");
req.method = "POST";
req.data = {};
var enc : Base64Encoder = new Base64Encoder();
// tr(_user.text + ":" + _pass.text);
enc.encode(_user.text + ":" + _pass.text);
req.requestHeaders = [ new URLRequestHeader("Authorization", "Basic " + enc.toString())];
_st.load(req);
}
private var _buf : String = "";
private function onProgress(e : ProgressEvent) : void
{
var re : String = _st.readUTFBytes(_st.bytesAvailable);
_buf += re;
var sp : Array = _buf.split("\n");
_buf = sp.pop(); // あまりは次に持ち越し
for each(var str : String in sp){
if(str.length == 0)continue;
str = unescape(str.replace(/\\\u/g, "%u"));
tr(str);
try{
var json : Object = JSON.decode(str);
// tr(json != null);
}catch(e : JSONParseError){
tr(e);
}
}
}
private function onOpen(e : Event) : void
{
tr("open", e);
}
private function onError(e : ErrorEvent) : void
{
tr("error", e);
}
private function onStop(e : MouseEvent) : void
{
_st.close();
}
private function tr(...o : Array) : void
{
_tf.appendText(o + "\n");
_tf.scrollV = _tf.maxScrollV;
}
}
}