In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

get camera, alert queue

Get Adobe Flash player
by meHigh 25 Oct 2011
    Embed
/**
 * 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);
    }
}