video playback

This commit is contained in:
Jeremy Penner 2011-05-03 09:20:28 -07:00
parent 0757363573
commit 9110fc006a
3 changed files with 51 additions and 4 deletions

View file

@ -13,10 +13,12 @@ package
{
private var clickarea:ClickArea;
private var sketchShape:SketchShape;
private var videotube:Videotube;
public function Main():void
{
clickarea = new ClickArea([new Point(50, 50), new Point(100, 80), new Point(30, 120)], 0x555555);
sketchShape = new SketchShape();
videotube = new Videotube();
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
@ -25,21 +27,27 @@ package
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
addChild(videotube);
addChild(clickarea);
addChild(sketchShape);
addEventListener(MouseEvent.CLICK, onClick);
sketchShape.addEventListener(Event.COMPLETE, onShapeComplete);
sketchShape.addEventListener(SketchShape.DRAW_BEGIN, onShapeBegin);
sketchShape.addEventListener(SketchShape.DRAW_END, onShapeComplete);
videotube.stream.play("The Last Eichhof - Longplay.flv");
}
private function onClick(e: MouseEvent): void
{
if (clickarea.FHit(new Point(e.stageX, e.stageY)))
clickarea.Toggle();
}
private function onShapeBegin(e: Event): void
{
videotube.stream.pause();
}
private function onShapeComplete(e: Event): void
{
addChild(new ClickArea(sketchShape.rgpoint, 0x883388, 0.5));
sketchShape.clear();
videotube.stream.resume();
}
}
}

View file

@ -16,6 +16,10 @@ package
private var shape: Shape;
private var shapeLine: Shape;
private var msClickLast: int;
public static const DRAW_BEGIN:String = "draw-begin";
public static const DRAW_END:String = "draw-end";
public function SketchShape()
{
super();
@ -28,6 +32,7 @@ package
}
private function init(e: Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
stage.doubleClickEnabled = true;
stage.addEventListener(MouseEvent.CLICK, onClick);
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMove);
@ -48,7 +53,7 @@ package
var dmsClick:int = msClickNow - msClickLast;
if (dmsClick < 200)
{
dispatchEvent(new Event(Event.COMPLETE));
dispatchEvent(new Event(DRAW_END));
clear();
}
else
@ -57,6 +62,7 @@ package
{
shapeLine = new Shape();
addChild(shapeLine);
dispatchEvent(new Event(DRAW_BEGIN));
}
rgpoint.push(new Point(e.stageX, e.stageY));
redrawShape();

33
src/Videotube.as Normal file
View file

@ -0,0 +1,33 @@
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
/**
* ...
* @author jjp
*/
public class Videotube extends Sprite
{
private var flv:Video;
public var stream:NetStream;
public function Videotube()
{
super();
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e: Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
flv = new Video(stage.stageWidth, stage.stageHeight);
addChild(flv);
var conn:NetConnection = new NetConnection();
conn.connect(null);
stream = new NetStream(conn);
stream.client = new Object();
flv.attachNetStream(stream);
}
}
}