There's an easier way if you directly use the camera's transformation matrix. The 3rd column of a transformation matrix is always the local Z-axis in the transformation's destination space. So the camera's transform object has its local z-axis (which is the "forward" vector) in scene coordinates. Getting that is pretty straightforward:
var camDirVector : Number3D = new Number3D(camera.transform.sxz, camera.transform.syz, camera.transform.szz);
Since your camera isn't (or shouldn't be) scaled, it's also unit-length, so a position 100 in front of the cam is simply as follows:
pos.x = cam.x + camDirVector.x*100;
pos.y = cam.y + camDirVector.y*100;
pos.z = cam.z + camDirVector.z*100;
Alternatively, you can also do something like this:
pos = new Number3D();
tgt = new Number3D(0, 0, 100);
pos.transform(tgt, camera.transform);
This literally means: I want an object 100 in front of the cam, but expressed in the camera's parent (ie: scene) coordinates. Both do the same thing, but the former method should be a bit faster, if it matters.
Hope that helps!
David