I just had the same issue and I found out the fix. Each object you
load gets placed inside an ObjectContainer3D. If an loaded resource
contains multiple objects they will all be placed inside 1
ObjectContainer3D. In the above example you get the child at index 0.
This means you only copy the first Mesh inside the ObjectContainer3D.
A more elegant approuch would be to copy all the elements and place
them inside an new ObjectContainer3D.

Atleast thats my suggestion.

from my head:

private function onResourceRetrieved(e : ResourceEvent) : void
{
    container = ObjectContainer3D(e.resource);  //acces old container
    view.scene.addChild(container); //add old container
    var clone:ObjectContainer3D = new ObjectContainer3D(); //make new
container
    for(var i:int; i < container.numChildren; i++)
    {
        //I dont know if a container can have a container inside of
itself (when a loaded obj not created yourself).
        //In 3ds max you can nest container so maybe you need to make
a recursive loop to clone all meshes inside all containers.
        var mesh:Mesh = _container.getChildAt(i).clone() as Mesh;
        //you can also acces the old materials and clone/apply them to
the copied mesh if needed.
        clone.addChild(mesh);
        //add a clone from the mesh to the new cloned
ObjectContainer3D
    }
    clone.x = 400; //reposition clone
    view.scene.addChild(clone); // add clone to stage

Reply via email to