Thanks for you suggest
but i dont understand something
here is my code:
var room = Collada.load("floor0.dae",{materials:
{urgenceID:colorShad1,Color_A06ID:colorShad2},autoLoadTextures :
false,scaling:0.005});
room.addOnSuccess(onLoaderSuccess);
function onLoaderSuccess(event:LoaderEvent):void{
room = ObjectContainer3D(event.loader.handle);
room.addOnMouseOver(onMouseOverOnObject);
View.scene.addChild(room);
}
function onMouseOverOnObject(event:MouseEvent3D):void {
var object:Object3D = event.object;
var myMesh = event.object as Mesh
trace(myMesh.material)
}
this always return "null"...and i don't understand why
can you help me ?
On 15 juil, 18:13, Rob Bateman <[email protected]> wrote:
> Hey Cyril
>
> the MouseEvent3D returns a property "material" which is the material
> instance you have rolled over in the mesh. if you use an if statement in
> your listener, you can check which instance is which by comparing it to all
> material instances:
>
> if (mouseEvent3D.material is myFirstMaterial)
> ...do something
> else if (mouseEvent3D.material is mySecondMaterial)
> ...do something else
> else if (mouseEvent3D.material is myThirdMaterial)
> ...etc
>
> I agree that keeping a name property in the material object would help
> though - will look into implementing that in the future
>
> cheers
>
> Rob
>
>
>
> On Fri, Jul 10, 2009 at 7:58 AM, Away3D <[email protected]> wrote:
>
> > The problem is that i will have a lot of room (it will be a plan of an
> > hospital) and i can't name my mesh in sketchup...so it will be very
> > long to setup correct information on correct room:
> > I will have to trace each mesh name and associated the room action....
> > and find for example " mesh12 = urgency " it will be very long....
> > an another trouble is that my room have commun plan so 1mesh can be 2
> > or more room...
> > It will be very easier if i can use material: in sketuchup i define
> > the name of material with the name of a service and apply action for
> > one color...
>
> > I see in the api an intersting property which is "view.mouseMaterial"
> > but i haven't find the way to use it....
> > thanks
>
> > On 9 juil, 21:41, ben <[email protected]> wrote:
> > > Hi Cyril !
> > > " implement differente action on each room/material "
> > > well if you won't change the material, why not use the mesh as
> > > reference for your actions ??
>
> > > Object3D(yourMesh).addOnMouseOver(action);
>
> > > function action(e:MouseEvent3D):void
> > > {
> > > var id:String = e.target.name;
> > > switch(id){
> > > case "horseAss":
> > > kickit();
> > > break;
> > > case " LauraBushAss"
> > > kickItTwice();
> > > break;
> > > case " CarlaAss"
> > > kickItTen();
> > > break;
> > > default:
> > > trace(e.target.name);
> > > }
>
> > > }
>
> > > if not, I know that a materialData (including name property) do exist,
> > > but don't know how to access it... take a look at the API !
>
> --
> Rob Bateman
> Flash Development & Consultancy
>
> [email protected]