Has anyone succeeded in accessing children of loaded .DAE file?
In my dae there should be one child("COLLADA_scene") containing two
more children. Previously i wrote the code using PV3D and after
compiling I always had some system traces about dae children so i
could see their names. No probs accessing them either.
Now I switched to Away3D and no matter how i try anything like
_daeContainer.getChildByName("child_name"); (tried both
"COLLADA_scene" and inner children names) - it's always null. Though
if I trace a child of _daeContainer children I get something like "$:
x:0 y:0 z:50" in the output. So there is one child.
I must be doing something wrong. Any suggestions would be greatly
appreciated.
Here's a related piece of code:
public var canvasHolder:MovieClip;
private var _model:IModel;
private var _cam:Camera3D;
private var _view:View3D;
private var _materialMug:MovieMaterial;
private var _daeContainer:ObjectContainer3D;
public function DaeObjectAway3D(model:IModel)
{
_model = model;
if (stage)
{
initEngine();
}
else
{
addEventListener(Event.ADDED_TO_STAGE,
initEngine);
}
}
private function initEngine(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, initEngine);
_cam = new Camera3D();
_cam.moveUp(70);
_cam.moveBackward(400);
_view = new View3D({x:stage.width / 2, y:stage.height /
2,
camera:_cam});
addChild(_view);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
initObjects();
}
private function onEnterFrame(e:Event):void
{
_view.render();
}
private function initObjects():void
{
_materialMug = new MovieMaterial(new TextureGFX(),
{autoUpdate:true,precision:
1,smooth:true,interactive:true,transparent:false});
canvasHolder = _materialMug.movie["canvasHolder"];
_daeContainer =
Collada.parse(_model.resourceManager.daeXML, new
Init({autoLoadTextures: false}));
_daeContainer.scale(.25);
_daeContainer.y = 10;
_daeContainer.x = -7;
_daeContainer.rotationY = 180;
_view.scene.addChild(_daeContainer);
for each (var child : Mesh in _daeContainer.children)
{
if(child is Mesh) child.material = _materialMug;
}
///// CONFIGURE EVENT LISTENERS
_daeContainer.addEventListener(MouseEvent3D.MOUSE_OVER,
interactiveEventHandler);
_daeContainer.addEventListener(MouseEvent3D.MOUSE_OUT,
interactiveEventHandler);
_daeContainer.addEventListener(MouseEvent3D.MOUSE_MOVE,
interactiveEventHandler);
_daeContainer.addEventListener(MouseEvent3D.MOUSE_DOWN,
interactiveEventHandler);
_daeContainer.addEventListener(MouseEvent3D.MOUSE_UP,
interactiveEventHandler);
dispatchEvent(new Event(Model.EVENT_DAE_LOADED));
}