get camera, alert queue
/**
* Copyright meHigh ( http://wonderfl.net/user/meHigh )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/9TCv
*/
package {
import flash.display.Sprite;
import flash.media.Video;
import flash.media.Camera;
public class FlashTest extends Sprite {
private var _aq:AlertQueue = new AlertQueue();
public function FlashTest() {
Alert.holder = this;
_aq.add(new Alert("started"));
new ButtonMaker(this, 300,50,100,100, handlerClick);
function handlerClick():void{
_aq.add(new Alert("clicked"));
var cam:Camera = Camera.getCamera();
var video:Video = new Video();
if (!cam)
_aq.add(new Alert("no cam present"));
else
_aq.add(new Alert( "found cam"));
video.attachCamera(cam);
}
}
}
}
import flash.utils.setTimeout;
import flash.text.TextFieldAutoSize;
import flash.text.TextField;
import flash.display.DisplayObject;
import flash.events.MouseEvent;
import flash.display.Sprite;
import flash.display.DisplayObjectContainer;
class ButtonMaker{
public static var color:uint = 0x999999;
public function ButtonMaker(holder:DisplayObjectContainer,
w:Number, h:Number, x:Number, y:Number,
clickHandler:Function){
super();
var b:Sprite = new SpriteRect(w, h, x, y, color);
holder.addChild(b);
b.x = x;
b.y = y;
b.buttonMode = true;
b.addEventListener(MouseEvent.CLICK, clickHandler);
}
}
class Alert{
public static var holder:DisplayObjectContainer;
public var timeShown:Number;
private var _text:String;
public function Alert(msg:String, timeShown:Number = 1000){
this.timeShown = timeShown;
_text = msg;
}
public function setPreText(s:String):void{
_text = s + _text
}
public function show():void{
var tf:TextField = new TF(null, 300,300,0,0);
tf.autoSize = TextFieldAutoSize.LEFT;
tf.text = _text;
var bg:Sprite = new SpriteRect(tf.width, tf.height,
holder.stage.stageWidth/2-tf.width, holder.stage.stageHeight/2-tf.height,
0xff0000);
bg.addChild(tf);
holder.addChild(bg);
setTimeout(function():void{
bg.parent.removeChild(bg);
},timeShown);
}
}
class AlertQueue{
private var _queue:Vector.<Alert>;
private var _count:int;
private var _isShowing:Boolean;
public function AlertQueue(){
_queue = new Vector.<Alert>;
}
public function add(alert:Alert):void{
alert.setPreText((++_count)+":");
_queue.push(alert);
if (!_isShowing)
_showNext();
}
private function _showNext():void{
if (_queue.length>0){
_isShowing = true;
var a:Alert = _queue.shift();
a.show();
setTimeout(_showNext, a.timeShown);
} else {
_isShowing = false;
}
}
}
class SpriteRect extends Sprite{
public function SpriteRect(w:Number, h:Number, x:Number, y:Number, color:uint){
super();
this.graphics.beginFill(color);
this.graphics.drawRect(0,0,w,h);
this.graphics.endFill();
}
}
class TF extends TextField{
public function TF(holder:DisplayObjectContainer, w:Number, h:Number, x:Number, y:Number){
super();
this.width = w;
this.height = h;
this.x = x;
this.y = y;
if (holder)
holder.addChild(this);
}
}