Aca dejo mi codigo, no se que es lo que tiene mal, si alguno me sabe decir le agradeceria bastante.
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.utils.Timer;
import org.libspark.flartoolkit.core.transmat.FLARTransMatResult;
import org.libspark.flartoolkit.pv3d.FLARBaseNode;
import org.libspark.flartoolkit.pv3d.FLARCamera3D;
import org.papervision3d.render.LazyRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
//import org.papervision3d.view.stats.StatsView;
// import flash.display.Stage;
// import flash.display.StageDisplayState;
[SWF(width="640", height="480", frameRate="30", backgroundColor= "#FFFFFF")]
public class PV3DARApp extends ARAppBase {
private static const PATTERN_FILE:String = "";
private static const CAMERA_FILE:String = "";
protected var _base:Sprite;
protected var _viewport:Viewport3D;
protected var _camera3d:FLARCamera3D;
protected var _scene:Scene3D;
protected var _renderer:LazyRenderEngine;
protected var _baseNode:FLARBaseNode;
protected var capturado:Boolean;
protected var temporizador:Timer=new Timer(2000,25);
protected var _resultMat:FLARTransMatResult = new FLARTransMatResult();
public function PV3DARApp() {
temporizador.addEventListener(TimerEvent.TIMER, accionRepetida);
if(capturado=false){
temporizador.start();
}
}
private function accionRepetida(e:TimerEvent){
capturado=true;
}
protected override function init(cameraFile:String, codeFile:String, canvasWidth:int=350, canvasHeight:int=350, codeWidth:int=80):void {
this.addEventListener(Event.INIT, this._onInit, false, int.MAX_VALUE);
super.init(cameraFile, codeFile);
//stage.displayState = StageDisplayState.FULL_SCREEN;
}
private function _onInit(e:Event):void {
trace("pv3 init")
this.removeEventListener(Event.INIT, this._onInit);
this._base = this.addChild(new Sprite()) as Sprite;
this._capture.width = 700;
this._capture.height = 700;
this._base.addChild(this._capture);
this._viewport = this._base.addChild(new Viewport3D(350, 350)) as Viewport3D;
this._viewport.scaleX = 2;//640 / 320;
this._viewport.scaleY = 2;//480 / 240;
this._viewport.x = -4; // 4pix ???
this._camera3d = new FLARCamera3D(this._param);
this._scene = new Scene3D();
this._baseNode = this._scene.addChild(new FLARBaseNode()) as FLARBaseNode;
this._renderer = new LazyRenderEngine(this._scene, this._camera3d, this._viewport);
//this.stage.addChild(new StatsView(this._renderer));
this.addEventListener(Event.ENTER_FRAME, this._onEnterFrame);
}
protected function _onEnterFrame(e:Event = null):void {
capturado = false;
this._capture.bitmapData.draw(this._video);
if (this._detector.detectMarkerLite(this._raster, 80) && this._detector.getConfidence() > 0.5) {
this._detector.getTransformMatrix(this._resultMat);
this._baseNode.setTransformMatrix(this._resultMat);
this._baseNode.visible = false;
capturado = false;
//trace("added")
} else {
this._baseNode.visible = true;
capturado = true;
//trace("hidden")
}
this._renderer.render();
}
public function set mirror(value:Boolean):void {
if (value) {
this._base.scaleX = -1;
this._base.x = 700;
} else {
this._base.scaleX = 1;
this._base.x = 0;
}
}
public function get mirror():Boolean {
return this._base.scaleX < 0;
}
}
}
es toda la clase de PV3DARA, modificada para q cuando el marker no este funcione el video y cuando aparezca no, y ahora quiero ponerle un timer, para q cuando el video este andando y pasen x segundos el video desaparezca hasta q el marker vuelva a aparecer y desaparecer...