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.

Reply via email to