Title: VideoStreamMaterial demo
VideoStreamMaterial demo using BasicView - revision 657 - FLV by bradfitz. Movement based on post here
Actionscript:
-
/**
-
* v0.1 code by dehash.com 2008
-
* Released as open source under the BSD License
-
* http://www.opensource.org/licenses/bsd-license.php
-
*/
-
package com.dehash.pv3d.examples.video {
-
-
import org.papervision3d.view.BasicView;
-
import org.papervision3d.objects.primitives.Plane;
-
import org.papervision3d.materials.VideoStreamMaterial;
-
import flash.events.Event;
-
import flash.media.Video;
-
import flash.net.NetConnection;
-
import flash.net.NetStream;
-
-
[SWF(width="800", height="600", backgroundColor="0xffffff")]
-
-
public class VideoStreamMaterialDemo extends BasicView {
-
-
private var plane:Plane;
-
private var videoStreamMaterial:VideoStreamMaterial;
-
private var quality:uint = 8;
-
private var netConnection:NetConnection;
-
private var video:Video;
-
private var netStream:NetStream;
-
-
public function VideoStreamMaterialDemo(viewportWidth:Number=800, viewportHeight:Number=600, scaleToStage:Boolean=false, interactive:Boolean=false, cameraType:String="CAMERA3D") {
-
super(viewportWidth, viewportHeight, scaleToStage, interactive, cameraType);
-
-
var customClient:Object = new Object();
-
customClient.onMetaData = metaDataHandler;
-
-
netConnection = new NetConnection();
-
netConnection.connect(null);
-
-
netStream = new NetStream(netConnection);
-
netStream.client = customClient;
-
netStream.play("drawcat.flv");
-
-
video = new Video();
-
video.smoothing = true;
-
video.attachNetStream(netStream);
-
-
videoStreamMaterial = new VideoStreamMaterial(video, netStream);
-
-
plane = new Plane(videoStreamMaterial, 1600, 1200, quality, quality);
-
-
scene.addChild(plane);
-
-
camera.target = plane;
-
-
renderer.renderScene(scene, camera, viewport);
-
this.startRendering();
-
}
-
-
protected override function onRenderTick(event:Event = null):void {
-
var rotY: Number = (mouseY-(stage.stageHeight/2))/(stage.height/2)*(300);
-
var rotX: Number = (mouseX-(stage.stageWidth/2))/(stage.width/2)*(-300);
-
camera.x= camera.x+(rotX-camera.x)/5;
-
camera.y= camera.y+(rotY-camera.y)/5;
-
renderer.renderScene(scene, camera, viewport)
-
}
-
-
private function metaDataHandler(infoObject:Object):void {
-
trace('metaDataHandler',infoObject);
-
}
-
-
}
-
}