Gainer mini+ActionScript3.0でマトリクスLEDを試す。
コード全体
と言うわけで、今回のコードはこちら。
次は、そろそろアイデアっぽい事をしよう。
そのために、色々な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




