The object needs to know that the matrix has changed. This has been solved similarly to how the filters array works on display objects in the standard Flash library, i.e. you need to reset the transform property:
mtx = myObject.transform; mtx.rawData = someData; myObject.transform = mtx; The last line will do a notifySceneTransformChange() internally. Also, for the issues that you are having with the rawData, Michael, this probably stems from the fact that everytime you use the rawData getter, a new Vector is created and populated by the Matrix3D class. This should mean that (mtx.rawData == mtx.rawData) is false, but I'm not sure. It definitely means though that you cannot just change an item in a vector returned by rawData and expect that by reference the internal value inside the matrix has also changed. I'm not sure about the reason for this -- it really looks like a design flaw on Adobe's end and everyone's always complaining about it. :) So I bet if you do trace(matrix2.rawData[0]) in your example above, it will not be 0.3 (but probably 1.0 assuming that this is a default identity matrix.) This again is because every time you invoke the rawData getter, you get a new vector and changing that one will not propagate that change to the matrix and any subsequent calls to rawData() will continue to get the current matrix data. Make it into a habit to always get the raw data into a local vector variable, perform your changes on that and only reset it once it's done. var raw : Vector.<Number> = mtx.rawData; raw[0] = 1; raw[5] = 1; raw[10] = 1; raw[15] = 1; mtx.rawData = raw; Cheers /R On Dec 3, 11:03 am, John Brookes <[email protected]> wrote: > Its not just working on matrix components though. > Same again in render loop > > c.transform.prependRotation(1, Vector3D.Y_AXIS); > //c.updateMe() > > If you don't do the update me, the cube will move 1 degree and stop. Even > though its matrix continues to change. With the > > public function updateMe():void > { > notifySceneTransformChange(); > > } > > dropped into object3D it rotates.
