本ソースはSaqoosha氏の FLARToolKitを利用し、
FLARToolKit Starter KitのSimpleCubeを元に作成させて頂きました。

package
{
import org.papervision3d.objects.primitives.Plane;
import flash.events.Event;
import flash.events.NetStatusEvent;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import org.papervision3d.materials.VideoStreamMaterial;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.view.BasicView;

public class Main extends PV3DARApp
{
private var m_plane:Plane;
private var _connection:NetConnection;
private var _stream:NetStream;
private var m_video:Video;

public function Main():void {
this.init('Data/camera_para.dat', 'Data/jousuiki_logo.pat');
this._connection = new NetConnection();
this._connection.connect(null);
}

protected override function onInit():void {
this._stream = new NetStream(this._connection);
this._stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
this._stream.client = { };
this.m_video = new Video();

this.m_video.attachNetStream(this._stream);
this._stream.play("Data/jousuiki.flv");

var vsm:VideoStreamMaterial = new VideoStreamMaterial(this.m_video, this._stream);
vsm.doubleSided = true;
this.m_plane = new Plane(vsm, 320, 240,20,10);
m_plane.rotationX = -90;
m_plane.rotationY = 180;
m_plane.rotationZ = -90;
m_plane.z = 120;

super.onInit();
this._baseNode.addChild(this.m_plane);
this.addEventListener(Event.ENTER_FRAME, this._onEnterFrame);
}

protected override function _onEnterFrame(e:Event = null):void {
super._onEnterFrame(e);
if (this.m_plane) {
this.m_plane.rotationZ -= 2;
}
}

private function netStatusHandler(event:NetStatusEvent):void {
switch (event.info.code) {
case "NetStream.Play.Stop":
this._stream.play("Data/jousuiki.flv");
break;
}
}
}
}