Am I right in saying that to use an older version like 2.3 I would
need to target FP9? This is not something I can do with this version
of the FLARManager and I am unwilling to compromise by dropping down
in the version of FLARManager too.

Surely I am just missing something syntactically, no? Or my method of
implementation perhaps.


On Jan 22, 5:55 am, Alex <[email protected]> wrote:
> Try older version of Away3D (such as 2.3.3), maybe the problem is
> MatrixAway3D class which in older version is named as Matrix3D
>
> On 1月22日, 上午6时02分, rocketmcm <[email protected]> wrote:
>
> > Hey there,
>
> > I can not figure out where I am going wrong below. I have downloaded
> > the demo's on both the FLARManager(to see how Away3D is implemented)
> > and the Away3D site but can not see what I am missing.
>
> > What I am trying to do here is place a sphere on top of the marker.
> > This is the code I have below.
>
> > FLARManager Version: latest download from site
> > Away3D version: 3.4
> > Targeting FP10 from Flex.
>
> > Code:
> > ************************************
> > package {
> >         import away3d.*;
> >         import away3d.containers.ObjectContainer3D;
> >         import away3d.containers.Scene3D;
> >         import away3d.containers.View3D;
> >         import away3d.core.render.*;
> >         import away3d.materials.WireColorMaterial;
> >         import away3d.primitives.Plane;
> >         import away3d.primitives.Sphere;
>
> >         import com.transmote.flar.FLARManager;
> >         import com.transmote.flar.marker.FLARMarker;
> >         import com.transmote.flar.marker.FLARMarkerEvent;
> >         import com.transmote.flar.utils.geom.FLARAwayGeomUtils;
>
> >         import examples.*;
>
> >         import flash.display.Sprite;
> >         import flash.events.Event;
> >         import flash.events.MouseEvent;
>
> >         import org.libspark.flartoolkit.support.away3d.FLARCamera3D;
>
> >         [SWF(width="640", height="480", frameRate="30",
> > backgroundColor="#FFFFFF")]
>
> >         public class FLARManagerExampleLauncher extends Sprite {
>
> >                 private var fm:FLARManager;
> >                 private var scene:Scene3D;
> >                 private var view:View3D;
> >                 private var camera:FLARCamera3D;
> >                 private var ball:Sphere;
> >                 private var p:Plane;
> >                 private var activeMarker:FLARMarker;
> >                 private var v:Vid;
> >                 private var con:ObjectContainer3D;
> >                 private var re:BasicRenderer;
>
> >                 public function FLARManagerExampleLauncher () {
> >                         initFLAR();
> >                 }
>
> >                 private function initFLAR():void{
> >                         fm = new 
> > FLARManager("../resources/flar/flarConfig.xml");
>
> >                         fm.addEventListener(FLARMarkerEvent.MARKER_ADDED, 
> > onAdded);
> >                         fm.addEventListener(FLARMarkerEvent.MARKER_REMOVED, 
> > onRemoved);
> >                         fm.addEventListener(Event.INIT, init3D);
> >                         addChild(Sprite(fm.flarSource));
> >                 }
>
> >                 private function init3D(e:Event):void{
> >                         // remove init event listener
> >                         fm.removeEventListener(Event.INIT, init3D);
>
> >                         scene = new Scene3D();
> >                         camera = new FLARCamera3D(fm.cameraParams);
> >                         camera.z = -30;
> >                         view = new View3D({scene:scene, camera:camera});
> >                         addChild(view);
>
> >                         con = new ObjectContainer3D();
> >                         scene.addChild(con);
>
> >                         var ballMat:WireColorMaterial = new 
> > WireColorMaterial(0x666666,
> > {wirecolor:0xFFFFFF});
> >                     ball = new Sphere({material:ballMat, radius:18, 
> > segmentsW:10,
> > segmentsH:10});
> >                         con.addChild(ball);
>
> >                         //addChild(new FramerateDisplay());
> >                         this.addEventListener(Event.ENTER_FRAME, loop);
> >                 }
>
> >                 private function loop(e:Event):void{
> >                         trace("loop")
> >                         if(activeMarker != null){
> >                                 con.transform = 
> > FLARAwayGeomUtils.convertFLARMatrixToAwayMatrix
> > (activeMarker.transformMatrix);
> >                         }
> >                         view.render();
> >                 }
>
> >                 private function onAdded(e:FLARMarkerEvent):void{
> >                         activeMarker = e.marker;
> >                         trace("Marker Added");
> >                 }
>
> >                 private function onRemoved(e:FLARMarkerEvent):void{
> >                         activeMarker = null;
> >                         trace("Marker Removed");
> >                 }
> >         }
>
> > }
>
> > Error printed in the console:
> > ************************************
> > TypeError: Error #1009: Cannot access a property or method of a null
> > object reference.
> >         at 
> > away3d.core.math::MatrixAway3D/inverse()[U:\Global\away3d\core\math
> > \MatrixAway3D.as:649]
> >         at org.libspark.flartoolkit.support.away3d::FLARCamera3D/get
> > viewMatrix()[U:\Flex Builder\FLARManager\src\org\libspark\flartoolkit
> > \support\away3d\FLARCamera3D.as:131]
> >         at away3d.core.traverse::ProjectionTraverser/set view()[U:\Global
> > \away3d\core\traverse\ProjectionTraverser.as:46]
> >         at away3d.containers::Scene3D/update()[U:\Global\away3d\containers
> > \Scene3D.as:211]
> >         at away3d.containers::Scene3D/onUpdate()[U:\Global\away3d\containers
> > \Scene3D.as:63]
> >         at flash.events::EventDispatcher/dispatchEventFunction()
> >         at flash.events::EventDispatcher/dispatchEvent()
> >         at away3d.containers::View3D/notifySceneUpdate()[U:\Global\away3d
> > \containers\View3D.as:228]
> >         at away3d.containers::View3D/render()[U:\Global\away3d\containers
> > \View3D.as:907]
> >         at FLARManagerExampleLauncher/loop()[U:\Flex Builder\FLARManager\src
> > \FLARManagerExampleLauncher.as:86]
>
> > The launching "suspends" and opens up MatrixAway3D.as with the first
> > line of the inverse() function highlighted.
>
> > I am new to Flex Builder, Away3D and the FLARManager and so it is
> > likely I will be tripping up a lot of the way when I am using this
> > stuff.
> > I would really appreciate some tips on to how I could have used what
> > information I have got here to see where I have gone wrong. This would
> > also stop me from having to annoy people on this forum in future :)
>
> > I know from the debugger that "m" is null which I assume is the
> > problem (being a null object reference), I have tried to dig around in
> > the code and the docs but have not got anywhere. I think I am just not
> > using the render function correctly but I can not see any difference
> > in the way I have implemented this code and others that work.
>
> > Thanks for your time.

Reply via email to