hey, it´s me again.
Seems like noone else has these problems like i have.
...or maybe just noone understands what i´m talking about :)
I really need to find a solution, that´s why i set up an example to
show what´s wrong:

here is a link to the working MouseEvent3D on a ColorMaterial:
http://www.mischen-impossible.de/away3d/clickTestMesh.swf

and here the demonstration of exactly the same code but using a
PhongColorMaterial instead of ColorMaterial:
http://www.mischen-impossible.de/away3d/clickTestMeshPhong.swf

Please, could you show me what´s wrong with my code? Or give me
another quick example of using the MouseDown Event on
PhongColorMaterial?
I´m using the actual SVN Version of Away3D FP10.
Here is my Code with the 3ds file:
http://www.mischen-impossible.de/away3d/clickTestMesh.zip

and that´s what the code looks like:

    package {
        import flash.display.Sprite;
        import flash.display.Stage;
        import away3d.containers.View3D;
        import away3d.materials.PhongColorMaterial;
        import away3d.materials.PhongBitmapMaterial;
        import away3d.materials.ColorMaterial;
        import away3d.events.MouseEvent3D;
        import away3d.lights.DirectionalLight3D;
        import flash.events.MouseEvent;
        import flash.events.Event;
        import com.greensock.TweenLite;
        import away3d.loaders.*;
        import away3d.events.Loader3DEvent;
        import away3d.core.utils.Cast;
        import away3d.containers.ObjectContainer3D;
        import away3d.events.MouseEvent3D;

        public class clickTestMesh extends Sprite {
                private var view:View3D;
                private var xPos:Number;
                private var yPos:Number;
                public var loader:Loader3D;
                private var lastMouseX:Number;
                private var lastMouseY:Number;
                private var lastPanAngle:Number;
                private var lastTiltAngle:Number;
                private var mouseIsDown:Boolean = false;
                private var speed:Number = 1.5;
                public var phongC:PhongColorMaterial = new PhongColorMaterial
(0x9EC482);
                public var phongB:PhongBitmapMaterial;
                public var colorMaterial:ColorMaterial = new ColorMaterial
(0xFFA500);
                public var mesh:ObjectContainer3D;
                private var light:DirectionalLight3D = new 
DirectionalLight3D({color:
0xFFFFFF, ambient:0.15, diffuse:0.75, specular:0.8});

        public function clickTestMesh() {
                view = new View3D({x:200,y:200});
                addChild(view);

                view.scene.addChild(light);
                light.y = 500;
                light.x = -1300;
                light.z = -1200;

                phongB = new PhongBitmapMaterial(Cast.bitmap(Symbol1), 
{smooth:true,
precision:2});

                loader = Max3DS.load("2.3ds");
                loader.addOnSuccess(meshLoaded);
                view.scene.addChild(loader);

                addEventListener(Event.ENTER_FRAME, onEnterFrame);
        }
        private function meshLoaded(e:Loader3DEvent) {
                        mesh = e.loader.handle as ObjectContainer3D;

                        // -------- MATERIALS ------ //
                        mesh.materialLibrary.getMaterial("Mat").material = 
colorMaterial;
                        //mesh.materialLibrary.getMaterial("Mat").material = 
phongB;
                        //mesh.materialLibrary.getMaterial("Mat").material = 
phongC;

                        mesh.useHandCursor = true;

                        mesh.addEventListener(MouseEvent3D.MOUSE_DOWN, 
MouseDown);
                        stage.addEventListener(MouseEvent.MOUSE_UP, MouseUp);
                }
                private function MouseDown(e:MouseEvent3D) {
                        lastPanAngle = mesh.rotationY;
                        lastTiltAngle = mesh.rotationX;
                        lastMouseX = stage.mouseX;
                        lastMouseY = stage.mouseY;
                        mouseIsDown = true;
                        stage.addEventListener(MouseEvent.MOUSE_MOVE, 
MouseMove);
                }
                private function MouseUp(e:MouseEvent):void
                {
                        mouseIsDown = false;
                }
                private function MouseMove(e:MouseEvent) {
                        var newX:Number;
                        var newY:Number;
                        if(mouseIsDown){
                                newY = speed*(stage.mouseX - lastMouseX) + 
lastPanAngle;
                                newX = speed*(stage.mouseY - lastMouseY) + 
lastTiltAngle;
                                TweenLite.to(mesh, 1, 
{rotationX:newX,rotationY:newY});
                        }
                }
                private function onEnterFrame(e:Event) {
                        view.render();
                }
        }
        }


On 27 Jan., 20:21, fab4ce <[email protected]> wrote:
> Thank you for trying to help.
> But...of course i tried that
> It´s not working :(
>
> On 27 Jan., 10:55, Valts Darznieks <[email protected]> wrote:
>
> > Have you tried to apply MouseEvent after applying new material, don`t
> > know if this will fix the issue, but doesn't hurt to try.
>
> > On 26 Janv., 15:20, fab4ce <[email protected]> wrote:
>
> > > Hi all,
>
> > > after i load a mesh and i apply aMouseEvent3D(like MouseDown) on my
> > > Mesh everything works fine.
> > > Then i changed the Material to ColorMaterial and it still worked. But
> > > if i want to use a PhongColorMat, PhongBitmapMat or i.e. Dot3Mat the
> > > MouseEvent just doesn´t work.
> > > Anyone know this conflict? What´s the difference between the ColorMat
> > > and the PhongColorMat in this case?

Reply via email to