Gainer mini+ActionScript3.0でマトリクスLEDを試す。

このエントリをはてなブックマークに追加このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加このエントリをkwoutに追加
2008年12月1日 月曜日1:15:52

コード全体

と言うわけで、今回のコードはこちら。
次は、そろそろアイデアっぽい事をしよう。
そのために、色々なGainer使用例のブログを覗き見せねば。

package org.tarotaro.flash.gainer
{
    import flash.display.Graphics;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.media.Camera;
    import flash.media.Video;
    import flash.net.FileReference;
    import gainer.Gainer;
   
    /**
     * Gainer miniのマトリクスLEDを実験
     * @author 太郎(tarotaro.org)
     */

    [SWF(width="540", height="240", backgroundColor="0xFFFFFF", frameRate="30")]
    public class GainerMatrixLED extends Sprite
    {
        private var _gio:Gainer;
        private const ON:uint = 15;
        private const OFF:uint = 0;
        private var patterns:Array;
        private var currentCount:uint = 0;
       
        private var button:Sprite;
        private var colors:Array = [0xFFCC00, 0x00CCFF];
       
        public function GainerMatrixLED():void
        {
            //パターンの準備
            patterns = new Array(2);
            patterns[0] = [
                ON, ON, ON, ON, ON, ON, ON, ON,
                ON, ON, ON, ON, ON, ON, ON, ON,
                ON, ON, ON, ON, ON, ON, ON, ON,
                ON, ON, ON, ON, ON, ON, ON, ON,
                OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF,
                OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF,
                OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF,
                OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF
            ];
            patterns[1] = [
                OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF,
                OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF,
                OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF,
                OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF,
                ON, ON, ON, ON, ON, ON, ON, ON,
                ON, ON, ON, ON, ON, ON, ON, ON,
                ON, ON, ON, ON, ON, ON, ON, ON,
                ON, ON, ON, ON, ON, ON, ON, ON,
            ];
           
            //ボタンの準備
            this.button = new Sprite();
            this.drawButton(0);

            //Webカメラの準備
            var webcam:Camera = Camera.getCamera();
            webcam.setMode(320, 240, 30);
            var video:Video = new Video();
            video.attachCamera(webcam);
            video.x = 220;
            this.addChild(video);
           
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }

        /**
         * ボタン部分を描画
         * @param    col

         */
        private function drawButton(col:uint):void
        {
            var g:Graphics = this.button.graphics;
            g.beginFill(this.colors[col%this.colors.length]);
            g.drawEllipse(10, 20, 200, 200);
            g.endFill();
        }

        /**
         * 初期化処理
         * @param    e
         */

        private function init(e:Event = null):void
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);
           
            //Gainer I/Oを新規作成
            this._gio = new Gainer("localhost", 2000, Gainer.MODE7, true);
            this._gio.onReady = gioReady;
        }
       
        /**
         * Gainer I/Oの準備が整った
         */

        private function gioReady():void
        {
            //this._gio.onFinished = updateMatrix;
            this.addChild(this.button);
            this.button.addEventListener(MouseEvent.MOUSE_DOWN, updateMatrix);
        }
       
        /**
         * マトリクスLEDの表示を更新
         * @param    e
         */

        private function updateMatrix(e:MouseEvent):void
        {
            trace("マトリクスを更新", currentCount);
           
            //マトリクスLEDの光り方のパターンを変更
            this._gio.scanMatrix(patterns[currentCount++ % this.patterns.length]);
            //ボタン描画を変更
            this.drawButton(currentCount);
        }
    }
   
}

  • ページ:
  • 1
  • 2

TrackBack URL :

コメントする

HTML convert time: 1.125 sec.