Hey rocketmcm

loks like you're using the wrong version of the FLARManager, take a look at
the latest source from the online directory:

http://transmote.com/codeshare/FLARManager/deploy/FLARManager_v061/src/org/libspark/flartoolkit/support/away3d/FLARCamera3D.as

teh viewMatrix getter seems to have the _projectionMatrix passed in the
inverse method, so you shouldn't get a null value...

only other possibility is the _projectionMatrix value is not yet set. have
you checked you are calling the setParam method on the FLARCamera3D object
before trying to render?

Rob


2010/1/24 rocketmcm <[email protected]>

> EDIT:
> Can anyone confirm that I am using the correct version of Away3D? I am
> aware of that change that is mentioned above.
>
> I will also be using the Jiglib physics library for this project. Does
> anyone know of any problem areas I could face with regards to that.
> I have already got this working together in a seperate project file
>
> Thanks again
>
> On Jan 24, 4:57 pm, rocketmcm <[email protected]> wrote:
> > Can anyone confirm that I am using the correct version of Away3D? I am
> > aware of that change that is mentioned above.
> >
> > I will also be using the Jiglib physics library for this project. Does
> > anyone know of any problem areas I could face with regards to that.
> >
> > Thanks again
> >
> > On Jan 22, 7:03 pm, rocketmcm <[email protected]> wrote:
> >
> > > 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.
>



-- 
Rob Bateman
Flash Development & Consultancy

[email protected]
www.infiniteturtles.co.uk
www.away3d.com

Reply via email to