ok i edit it but the same situation, both of the objects get the first
texture...
here my complete code:
[Embed(source="assets/texture.jpg")]
private var texture1:Class;
[Embed(source="assets/torso_marble2.jpg")]
private var texture2:Class;
private var scene:Scene3D;
private var camera:Camera3D;
private var view:View3D;
// camera movement
private static const ORBITAL_RADIUS:Number = 150;
private static const CAMERA_ORBIT:Number = 750;
private var doRotation:Boolean = false;
private var lastMouseX:int;
private var lastMouseY:int;
private var cameraPitch:Number = 60;
private var cameraYaw:Number = -60;
private var flashman:ObjectContainer3D;
private var o_asetest:Mesh;
private var model:ObjectContainer3D;
private var mesh1:Mesh;
private var mesh2:Mesh;
private var ob1:ObjectContainer3D;
private var ob2:ObjectContainer3D;
public function colladaChangeMaterialtwo()
{
//Debug
away3d.core.utils.Debug.active = true;
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
stage.addEventListener(Event.MOUSE_LEAVE, onStageLeave );
init3D();
//createScene();
this.addEventListener(Event.ENTER_FRAME, loop);
}
private function init3D():void
{
scene = new Scene3D();
camera = new Camera3D({zoom:10, focus:100, x:-100, y:-200,
z:-500});
view = new View3D({scene:scene, camera:camera});
view.x = 540 / 2;
view.y = 600 / 2;
addChild(view);
setCameraPosition();
var loader:Loader3D = Collada.load("collada/testtex.dae", { scaling:
1, material:texture2});
loader.addOnSuccess(onLoaderSuccess);
view.scene.addChild(loader);
}
private function onLoaderSuccess(event:Loader3DEvent):void
{
model = (event.loader.handle as ObjectContainer3D);
createScene();
trace("onLoaderSuccess end");
}
private function createScene():void
{
var texture1:PhongBitmapMaterial = new PhongBitmapMaterial
( Cast.bitmap( texture1 ));
var texture2:PhongBitmapMaterial = new PhongBitmapMaterial
( Cast.bitmap( texture2 ));
var targetMaterial1:MaterialData =
model.materialLibrary.getMaterial("ID3");
targetMaterial1.material = texture1;
var targetMaterial2:MaterialData =
model.materialLibrary.getMaterial("ID8");
targetMaterial2.material = texture2;
var light:DirectionalLight3D = new DirectionalLight3D({color:
0xFFFFFF, ambient:0.7, diffuse:.8, specular:0.5});
light.x = 100;
light.z = 500;
light.y = 500;
scene.addChild(light);
}
private function loop(event:Event):void
{
updateCamera();
view.render();
}
and this is my log from collada parsing:
! ------------- Begin Parse Collada -------------
! ------------- Begin Parse Scene -------------
+ Parse Node : ID14 : ID14
+ Parse Node : ID23 : ID23
! ------------- End Parse Scene -------------
! ------------- No animations to parse -------------
+ Parse Geometry : ID15
+ Parse MeshMaterialData
+ Parse Geometry : ID24
+ Parse MeshMaterialData
+ Build Material : ID8
+ Build Material : ID3
+ Build Mesh : ID14
+ Build Mesh : ID23
onLoaderSuccess end
why i have always the same texture on both?
thx for help
martin