forked from: flash on 2010-6-29

by narutohyper
♥0 | Line 115 | Modified 2010-06-29 19:35:25 | MIT License
play

ActionScript3 source code

/**
 * Copyright narutohyper ( http://wonderfl.net/user/narutohyper )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/hG0I
 */

// forked from hacker_q2_kpljv's flash on 2010-6-29
package {
    import flash.display.Stage;
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.events.Event;
    
    public class FlashTest extends Sprite {
        private var twitter:Twitter;
        private var textField:TextField;
        public var fukidasi1:Fukidasi;
        public var canvas1:Sprite;
        public var testcanvas:Sprite;
        public function FlashTest() {
            // write as3 code here..

            textField = new TextField();
            textField.text = 'log Here...';
            
            textField.width = stage.stageWidth;
            textField.height = stage.stageHeight;
            textField.multiline = true;
            textField.wordWrap = true;
            addChild(textField);
                        
            twitter = new Twitter();
            twitter.searchUserTimeline('muramatsut');
            twitter.addEventListener(Twitter.RESULT_PARSED, function(e:Event):void
            {
                 textField.text = twitter.result.toString();
            });

            //TextFiledが先にaddChildされてるからひょうじされないのかな?
            var box:Sprite=Fukidasi.box()
            this.addChild(box);
        }
           
           
    }
}

import flash.display.Sprite;

class Fukidasi {
    
    public static function box():Sprite {
        var ts:Sprite = new Sprite()
        ts.graphics.beginFill(0xff0000);
        ts.graphics.drawRoundRect(100,100,50,20,5,5);
        ts.graphics.endFill();
        return ts;
    }
    
    public static function circle():Sprite {
        var ts:Sprite = new Sprite()
        ts.graphics.beginFill(0x00ff00);
        ts.graphics.drawCircle(100,200,50);
        ts.graphics.endFill();
        return ts;
    }    
} 
      


import flash.display.MovieClip;
import flash.display.DisplayObjectContainer;
import flash.display.DisplayObject;

import flash.events.Event;
import flash.events.EventDispatcher;
import flash.events.IOErrorEvent;
import flash.events.SecurityErrorEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLRequestHeader;
import flash.net.URLRequestMethod;
import flash.net.URLVariables;
class Twitter extends EventDispatcher
{
    
    private var atomNs:Namespace;
    private const URL_TWITTER_SEARCH_ATOM:String = 'http://search.twitter.com/search.atom';
    
    private var urlLoader:URLLoader;
    private var urlRequest:URLRequest;
    private var urlRequestMethod:URLRequestMethod;
    private var urlRequestHeader:URLRequestHeader;
    private var urlVariables:URLVariables;
    
    private var _result:Array;
    
    static public const RESULT_PARSED:String = 'result_parsed';
    
    public function Twitter()
    {
        atomNs = new Namespace('http://www.w3.org/2005/Atom');
        _result = new Array();
    }
    
    public function searchUserTimeline(userid:String):void
    {
        urlLoader = new URLLoader();
        urlRequest = new URLRequest(URL_TWITTER_SEARCH_ATOM);
        
        urlVariables = new URLVariables();
        urlVariables.q = 'from:' + userid;
        
        urlRequest.data = urlVariables;
        
        try{
            urlLoader.load(urlRequest);
        }
        catch (e:Error)
        {
            //error
            trace("hoge");
        }
        
        urlLoader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
        urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
        
        urlLoader.addEventListener(Event.COMPLETE, completeHandler);
    }
    
    private function completeHandler(e:Event):void 
    {
        default xml namespace = atomNs;
        var atomData:XML = new XML(urlLoader.data);
        
        for each(var tweet:String in atomData.entry.content)
        {
            _result.push(decodeURIComponent(tweet));
        }
        dispatchEvent(new Event(RESULT_PARSED));
    }
    
    private function securityErrorHandler(e:SecurityErrorEvent):void 
    {
        //error
         trace("Security Error...");
    
    }
    
    private function ioErrorHandler(e:IOErrorEvent):void 
    {
        //error
        trace("ioError");
    }
    
    public function get result():Array { 
        return _result; 
    }
        
 }