「AIRで付箋紙アプリケーションを作ろう!」をやったよ。

[Think IT] 第1回:付箋紙アプリケーションを作ろう! をやってみたよ。 バックエンドは Django とか Pylons でやった訳ですが。

「これ、このままじゃ動かないんじゃ?」なところを調べながら作ってみて、 一応一通り動くところまで作った(つもり)。 恥をさらす為にも、書いたソース(抜粋)載せておこう。

以下、 menu.mxml

<mx:Script>
<![CDATA[

public var stickies:Array = new Array();


public function create():void
{
    var sticky:Sticky = new Sticky();
    sticky.show();
    stickies.push(sticky);

}//END: create.


public function load():void
{
    // re initialize stickies.
    for (var i:int = 0; i < stickies.length; i++)
    {
        stickies[i].window.close();
        delete stickies[i];
    }

    var request:URLRequest = new URLRequest("http://localhost:5000/stickies.xml");
    request.method = 'GET';
    var loader:URLLoader = new URLLoader();
    loader.addEventListener(Event.COMPLETE, function (evt:Event):void
    {
        var items:XMLList = (new XML(evt.target.data)).items.child('item');
        if (items.length() > 0)
        {
            for each (var item:XML in items)
            {
                var sticky:Sticky = new Sticky();
                sticky.id = item.id;
                sticky.editor.text = item.body;
                sticky.window.x = item.x * Capabilities.screenResolutionX;
                sticky.window.y = item.y * Capabilities.screenResolutionY;
                sticky.window.width = item.width;
                sticky.window.height = item.height;
                sticky.show();
                stickies.push(sticky);
            }
        }
    });
    loader.load(request);

}//END: load.


public function save():void
{
    for each (var sticky:Sticky in stickies)
    {
        var request:URLRequest;
        if (sticky.id > 0)
        {
            request = new URLRequest('http://localhost:5000/stickies/'+sticky.id);
            if (sticky.editor.text.length > 0)
            {
                request.method = 'PUT';
            }
            else
            {
                request.method = 'DELETE';
            }
        }
        else
        {
            if (sticky.editor.text.length > 0)
            {
                request = new URLRequest('http://localhost:5000/stickies');
                request.method = 'POST';
            }
            else
            {
                continue;
            }
        }
        var variables:URLVariables = new URLVariables();
        variables.x = sticky.window.x / Capabilities.screenResolutionX;
        variables.y = sticky.window.y / Capabilities.screenResolutionY;
        variables.width = sticky.window.width;
        variables.height = sticky.window.height;
        variables.body = sticky.editor.text;
        request.data = variables;

        var loader:URLLoader = new URLLoader();
        loader.load(request);

    }

}//END: save.
]]>
</mx:Script>

本編は [Think IT] 第1回:付箋紙アプリケーションを作ろう! でお楽しみください。

まだまだ日本語が化けまくりですが、 Adobe AIR は面白い!

ps. Pygments のActionScriptハイライトは0.9からなのかぁ。残念。

Posted at: 
2007/09/30 20:58:52
2 Comments
0 TrackBacks
Tags: 
ActionScript
AIR
Flash
Trackback: 
http://humming.via-kitchen.com/2007/09/30/tried-make-stickies-on-adobe-air/trackback/

TrackBacks

まだ登録されていません。

Comments

t-matsuda

さっそくやってますなぁー
相変わらず仕事が速い。
自分もやったら、恥をさらすためにもソース公開します!!

Created at: 
2007/10/01 00:20:47

nobu

かーなり面白かったですよ。

個人的にはXMLとかサーバとの連携とか、
押さえておきたい部分が多くて良かったです。

みんなで恥さらしていきましょ!

Created at: 
2007/10/01 01:04:34

Add Comment

Add Comment