[Papervision3D] movieAssetMaterial play and stop

Javier España | javierespana.com info at javierespana.com
Tue Jul 14 14:00:14 PDT 2009


Nope, can't seem to make it work, I may be doing something wrong... Here's
the complete code:

-----------------------------

package{
    ///
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    ///
    import org.papervision3d.view.Viewport3D;
    import org.papervision3d.scenes.Scene3D;
    import org.papervision3d.cameras.Camera3D;
    import org.papervision3d.materials.*;
    import org.papervision3d.objects.primitives.Plane;
    import org.papervision3d.render.BasicRenderEngine;
    ///
    import org.papervision3d.lights.PointLight3D;
    import org.papervision3d.materials.shaders.GouraudShader;
    import org.papervision3d.materials.shaders.ShadedMaterial;
    ///
    public class walkingTest_04 extends Sprite{
        ///
        // VARIABLES
        ///
        private var viewport:Viewport3D;
        private var scene:Scene3D;
        private var camera:Camera3D;
        private var movieAssetMaterial:MovieAssetMaterial;
        private var walkingDoll:Plane;
        private var renderer:BasicRenderEngine;
        ///
        // MATERIAL SHADER
        ///
        private var gShader:GouraudShader;
        private var gMaterial:ShadedMaterial;
        private var light:PointLight3D;
        ///
        // MOUSE MOVEMENT
        ///
        private var cameraPitch:Number = 90;
        private var cameraYaw:Number = 270;
        private var previousMouseX:Number = 0;
        private var previousMouseY:Number = 0;

        /*----------------------- INITIALIZE -----------------------*/
        /*----------------------- INITIALIZE -----------------------*/
        /*----------------------- INITIALIZE -----------------------*/
        /*----------------------- INITIALIZE -----------------------*/
        /*----------------------- INITIALIZE -----------------------*/
        /*----------------------- INITIALIZE -----------------------*/

        public function walkingTest_04():void{
            ///
            // VIEWPORT
            ///
            viewport = new Viewport3D(550, 400, false, true);
            addChild(viewport);
            ///
            // BASICS PV3D
            ///
            scene = new Scene3D();
            camera = new Camera3D();
            renderer = new BasicRenderEngine();
            ///
            // MATERIALS
            ///
            light = new PointLight3D();
            ///
            movieAssetMaterial = new MovieAssetMaterial("walkingTest",
true);
            movieAssetMaterial.animated = true;
            movieAssetMaterial.doubleSided = true;
            movieAssetMaterial.interactive = true;
            ///
            gShader = new GouraudShader(light, 0xFFFFFF, 0x111111, 30);
            gMaterial = new ShadedMaterial(movieAssetMaterial, gShader);
            gMaterial.doubleSided = true;
            ///
            // OBJECTS
            ///
            walkingDoll = new Plane(gMaterial, 600, 600, 3, 3);
            scene.addChild(light);
            scene.addChild(walkingDoll);
            ///
            var obj:*= getMaterial(plane as displayObject3D);
            obj.animatedDoll.stop();
            ///
            // LISTENERS
            ///
            stage.addEventListener(Event.ENTER_FRAME, procesarFrame);
            stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoving);
            stage.addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheel);
        }

        /*----------------------- MATERIAL STOP & PLAY
-----------------------*/
        /*----------------------- MATERIAL STOP & PLAY
-----------------------*/
        /*----------------------- MATERIAL STOP & PLAY
-----------------------*/
        /*----------------------- MATERIAL STOP & PLAY
-----------------------*/
        /*----------------------- MATERIAL STOP & PLAY
-----------------------*/
        /*----------------------- MATERIAL STOP & PLAY
-----------------------*/

        protected function getMaterial(donde:*):MovieClip{
            ///
            var mat:MovieMaterial = donde.material as MovieMaterial;
            ///
            if(mat){
                ///
                //cast as our sub class, then test for null
                var mov:MovieClip = mat.movie as MovieClip;
                if(mov){
                    ///
                    // now you’re talking to the instance directly
                    return mov;
                }
            }
            ///
            return null;
        }

        /*----------------------- MOUSE MOVEMENT -----------------------*/
        /*----------------------- MOUSE MOVEMENT -----------------------*/
        /*----------------------- MOUSE MOVEMENT -----------------------*/
        /*----------------------- MOUSE MOVEMENT -----------------------*/
        /*----------------------- MOUSE MOVEMENT -----------------------*/
        /*----------------------- MOUSE MOVEMENT -----------------------*/

        private function mouseWheel(event:MouseEvent):void{
            ///
            camera.moveForward(10 * event.delta);
        }

        private function mouseMoving(event:MouseEvent):void{
            ///
            var differenceX:Number = event.stageX - previousMouseX;
            var differenceY:Number = event.stageY - previousMouseY;
             ///
            cameraPitch += differenceY;
            cameraYaw += differenceX;
            ///
            previousMouseX = event.stageX;
            previousMouseY = event.stageY;
        }

        /*----------------------- ON ENTER FRAME -----------------------*/
        /*----------------------- ON ENTER FRAME -----------------------*/
        /*----------------------- ON ENTER FRAME -----------------------*/
        /*----------------------- ON ENTER FRAME -----------------------*/
        /*----------------------- ON ENTER FRAME -----------------------*/
        /*----------------------- ON ENTER FRAME -----------------------*/

        private function procesarFrame(e:Event):void{
            ///
            // MOUSE MOVEMENT
            ///
            cameraPitch %= 360;
            cameraYaw %= 360;
            ///
            cameraPitch = cameraPitch > 0 ? cameraPitch : 0.0001;
            cameraPitch = cameraPitch < 90 ? cameraPitch : 89.9999;
            ///
            camera.orbit(cameraPitch, cameraYaw);
            ///
            // LIGHT MOVEMENT
            ///
            light.x = (mouseX - 275) * 5;
            light.y = (mouseY - 200) * -5;
            ///
            // PROCESS SCENE
            ///
            renderer.renderScene(scene, camera, viewport);
        }
    }
}

------------------------

On Tue, Jul 14, 2009 at 4:24 PM, Buti <butilon at gmail.com> wrote:

> it's a function inside obj. It is an example.
>
> Javier España | javierespana.com wrote:
>
>> But what does that rollover() function do?
>>
>> On Tue, Jul 14, 2009 at 3:46 PM, Buti <butilon at gmail.com <mailto:
>> butilon at gmail.com>> wrote:
>>
>>    I use this function. Don't remember where I got it.
>>
>>    protected function getMaterial(donde:*):MovieClip{
>>           var mat:MovieMaterial = donde.material as MovieMaterial;
>>           if( mat ){
>>           // cast as our sub class, then test for null
>>                   var mov:MovieClip = mat.movie as MovieClip;
>>                   if( mov ){
>>                           // now you’re talking to the instance directly
>>                           return mov;
>>                   }
>>           }
>>                           return null;
>>    }
>>
>>    var obj:*= getMaterial(plane as displayObject3D);
>>    obj.rollover();
>>
>>
>>
>>    Javier España | javierespana.com <http://javierespana.com> wrote:
>>
>>        Hi there,
>>
>>        I have managed to create a Plane with a material that is a
>>        running movieClip with 8 frames. The thing is that I want to be
>>        able to play and stop that movieClip that's acting as the
>>        material of the Plane but can't seem to get to it...
>>
>>        Here's how I load it:
>>
>>        movieAssetMaterial = new MovieAssetMaterial("walkingTest", true);
>>        movieAssetMaterial.animated = true;
>>        movieAssetMaterial.doubleSided = true;
>>        movieAssetMaterial.interactive = true;
>>
>>        walkingDoll = new Plane(movieAssetMaterial, 600, 600, 3, 3);
>>        scene.addChild(walkingDoll);
>>
>>        That movieClip called "walkingTest" that I'm using as the
>>        material, has another movieClip inside it called animatedDoll
>>        that is the one I need to play and stop. Any help on how to
>>        reach it? If I use:
>>
>>        walkingTest.animatedDoll.stop();
>>
>>        I get an error...
>>
>>        Thanks a lot,
>>
>>        Javier
>>
>>
>>
>>  ------------------------------------------------------------------------
>>
>>        _______________________________________________
>>        Papervision3D mailing list
>>        Papervision3D at osflash.org <mailto:Papervision3D at osflash.org>
>>        http://osflash.org/mailman/listinfo/papervision3d_osflash.org
>>
>>
>>
>>
>>    _______________________________________________
>>    Papervision3D mailing list
>>    Papervision3D at osflash.org <mailto:Papervision3D at osflash.org>
>>    http://osflash.org/mailman/listinfo/papervision3d_osflash.org
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Papervision3D mailing list
>> Papervision3D at osflash.org
>> http://osflash.org/mailman/listinfo/papervision3d_osflash.org
>>
>
>
>
> _______________________________________________
> Papervision3D mailing list
> Papervision3D at osflash.org
> http://osflash.org/mailman/listinfo/papervision3d_osflash.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://osflash.org/pipermail/papervision3d_osflash.org/attachments/20090714/89fa0070/attachment-0001.html>


More information about the Papervision3D mailing list