hi andrew, can you show your final source to learn how it works ?
bensen On 4 Mai, 19:07, Andrew <[email protected]> wrote: > Thanks to Rob, he addressed my Issue on his homepage. Running > perfectly now. > > On May 3, 10:51 pm, Andrew <[email protected]> wrote: > > > Thanks for the offer Ian. But if its not the Flash IDE I would just > > give up. I'm really used to working with Away3D in the Flash. I'm > > still tinkering away with the code, still no luck. Everything is > > running. There is something I must be missing. I can run it in Flex, > > but I want to add Flash components to it. > > > Latest Code: > > > package > > { > > import away3d.animators.data.*; > > import away3d.cameras.*; > > import away3d.containers.*; > > import away3d.core.base.*; > > import away3d.core.clip.*; > > import away3d.core.render.*; > > import away3d.core.utils.*; > > import away3d.events.*; > > import away3d.lights.*; > > import away3d.loaders.*; > > import away3d.materials.*; > > > import flash.display.*; > > import flash.events.*; > > import flash.filters.*; > > import flash.media.*; > > > import org.libspark.flartoolkit.away3d.*; > > import org.libspark.flartoolkit.core.*; > > import org.libspark.flartoolkit.core.param.*; > > import org.libspark.flartoolkit.core.raster.rgb.*; > > import org.libspark.flartoolkit.core.transmat.*; > > import org.libspark.flartoolkit.detector.*; > > > public class FLARdemo2 extends Sprite > > { > > //camera configuration > > [Embed(source="../assets/camera_para.dat", > > mimeType='application/octet-stream')] > > private var CameraDataClass:Class; > > > //marker configuration > > [Embed(source="../assets/FLAR-marker.pat", > > mimeType='application/octet-stream')] > > private var PatternDataClass:Class; > > > //ogre MD2 animation > > [Embed(source="../assets/ogre.md2", mimeType='application/ > > octet-stream')] > > private var Model:Class; > > > //ogre texture > > [Embed(source="../assets/ogre.jpg")] > > private var Texture:Class; > > > //scene objects > > private var scene:Scene3D; > > private var camera:FLARCamera3D; > > private var view:View3D; > > > //config properties > > private var screenWidth:Number = 400; > > private var screenHeight:Number = 300; > > private var threshold:Number = 80; > > private var markerWidth:Number = 80; > > > //FLARToolkit object > > private var fBaseNode:FLARBaseNode; > > private var fParam:FLARParam; > > private var fCode:FLARCode; > > private var fWebcam:Camera; > > private var fVideo:Video; > > private var fCapture:Bitmap; > > private var fDetector:FLARSingleMarkerDetector; > > private var fResult:FLARTransMatResult; > > private var fRaster:FLARRgbRaster_BitmapData; > > > //marterial objects > > private var material:BitmapMaterial; > > > //scene objects > > private var model:Mesh; > > > //enterframe variables > > private var blurFilter:BlurFilter = new BlurFilter(0, 0, > > BitmapFilterQuality.LOW); > > public var update:Boolean = false; > > > /** > > * Constructor > > */ > > public function FLARdemo2() > > { > > init(); > > } > > > /** > > * Global initialise function > > */ > > private function init():void > > { > > initFLARToolkit(); > > setupCamera(); > > initEngine(); > > initMaterials(); > > initObjects(); > > initListeners(); > > } > > > //Initialize the Camera > > private function setupCamera():void > > { > > fWebcam = Camera.getCamera(); > > fWebcam.setMode(screenWidth, screenHeight, 30); > > fVideo.attachCamera(fWebcam); > > } > > > private function initEngine():void > > { > > scene = new Scene3D(); > > > view = new View3D({scene:scene, camera:camera}); > > view.x = screenWidth - 5; > > view.y = screenHeight; > > //view.addSourceURL("srcview/index.html"); > > addChild(view); > > } > > > /** > > * Initialise the FLARToolkit > > */ > > private function initFLARToolkit():void > > { > > //setup camera parameters > > fParam = new FLARParam(); > > fParam.loadARParam(new CameraDataClass()); > > fParam.changeScreenSize(screenWidth, screenHeight); > > camera = new FLARCamera3D(); > > camera.setParam(fParam); > > > //setup marker code > > fCode = new FLARCode(16, 16); > > fCode.loadARPatt(new PatternDataClass()); > > > //setup marker detector > > fDetector = new FLARSingleMarkerDetector(fParam, fCode, > > markerWidth); > > fDetector.setContinueMode(false); > > fResult = new FLARTransMatResult(); > > > //setup webcam > > fVideo = new Video(screenWidth, screenHeight); > > > //setup output capture > > fCapture = new Bitmap(new BitmapData(screenWidth, > > screenHeight, false, 0), PixelSnapping.AUTO, true); > > fCapture.x = 0; > > fCapture.y = 0; > > fCapture.scaleX = 2.0; > > fCapture.scaleY = 2.0; > > addChild(fCapture); > > > //setup output bitmapData > > fRaster = new FLARRgbRaster_BitmapData > > (fCapture.bitmapData); > > } > > > /** > > * Initialise the materials > > */ > > private function initMaterials():void > > { > > material = new BitmapMaterial(Cast.bitmap(Texture)); > > } > > > /** > > * Initialise the scene objects > > */ > > private function initObjects():void > > { > > //setup baseNode > > fBaseNode = new FLARBaseNode(); > > scene.addChild(fBaseNode); > > > //setup model > > model = Md2.parse(Model, {material:material}) as Mesh; > > model.scale(0.02); > > model.y += 45; > > model.play(new AnimationSequence("stand", true, true, > > 10)); > > fBaseNode.addChild(model); > > } > > > /** > > * Initialise the listeners > > */ > > public function initListeners():void > > { > > addEventListener( Event.ENTER_FRAME, onEnterFrame ); > > } > > > /** > > * Navigation and render loop > > */ > > private function onEnterFrame(event:Event):void > > { > > fCapture.bitmapData.draw(fVideo); > > > if (update) { > > try { > > //check for marker > > if (fDetector.detectMarkerLite(fRaster, threshold) > > && fDetector.getConfidence() > 0.5) { > > view.visible = true; > > fDetector.getTransformMatrix(fResult); > > fBaseNode.setTransformMatrix(fResult); > > } else { > > view.visible = false; > > } > > } catch (e:Error) { > > trace("Error: " + e.message); > > } > > > view.render(); > > > } else { > > fCapture.bitmapData.applyFilter(fCapture.bitmapData, > > fCapture.bitmapData.rect, fCapture.bitmapData.rect.topLeft, > > blurFilter); > > } > > } > > } > > > }
