[Papervision3D] movieAssetMaterial play and stop

nospam at therossman.org nospam at therossman.org
Thu Jul 16 06:48:37 PDT 2009


Instead of using a MovieAssetMaterial, just use a regular movie material
where you create the material first with like:

var myMaterialMC:MovieClip = new yourMaterialMCName();

then when you make a movie material out of that you can still keep your
reference to "myMaterialMC" and you should be able to use like:

myMaterialMC.animatedDoll.stop();

or what have you.

This shouldn't be that hard, you must be missing something simple.

Cheers,
mark

>
> Why don't you try another approach:
>
> Place a function on the main timeline of the movieclip that you are using
> as
> a material:
>
> function traceMe() {
>   trace("hello there");
> }
>
> Then, see if you can call that function from papervision with
> movieAssetMaterial.movie.traceMe();
>
> If that works, then you can set up a series of controller functions for
> your
> nested movieclips on the material's main timeline and call them from
> papervision. That way, Papervision doesn't need a reference to all of your
> nested movieclips - it just needs a reference to the main one.
>
> -Andy
>
>
>
>
>
> Maggical wrote:
>>
>> Any help with this? =(
>>
>> 2009/7/15 Javier España | javierespana.com <info at javierespana.com>
>>
>>> It gives me this error:
>>>
>>> "Access of undefined property DislpayObjectContainer" :S
>>>
>>> I'm googling and searching but it seems weird...
>>>
>>>
>>> On Wed, Jul 15, 2009 at 1:09 PM, Damien Pegoraro
>>> <dpegoraro at actiplay.com>wrote:
>>>
>>>> try  trace(movieAssetMaterial.movie["animatedDoll"]);
>>>> or in a cleaner way
>>>> trace(  (movieAssetMaterial.movie as
>>>> DisplayObjectContainer).getChildByName("animatedDoll"));
>>>>
>>>>
>>>> Javier España | javierespana.com a écrit :
>>>>
>>>>> I'm tracing this:
>>>>>
>>>>> trace(movieAssetMaterial);
>>>>> trace(movieAssetMaterial.movie);
>>>>> trace(movieAssetMaterial.movie.animatedDoll);
>>>>>
>>>>> First two are ok, but the last one generates 3 errors, any ideas?
>>>>>
>>>>> 1119: Access to a possibly undefined property animatedDoll through a
>>>>> reference with static type flash.display:DisplayObject
>>>>>
>>>>> Maybe this will help someone help me =)
>>>>>
>>>>> 2009/7/15 Javier España | javierespana.com <http://javierespana.com>
>>>>> <
>>>>> info at javierespana.com <mailto:info at javierespana.com>>
>>>>>
>>>>>    Tried both of those solutions and none of them worked :S I seem to
>>>>>    be missing something :S Any other ideas?
>>>>>
>>>>>
>>>>>    On Tue, Jul 14, 2009 at 7:31 PM, Mark I. Ross
>>>>>    <nospam at therossman.org <mailto:nospam at therossman.org>> wrote:
>>>>>
>>>>>        what if you just replace these two lines:
>>>>>
>>>>>        var obj:*= getMaterial(plane as displayObject3D);
>>>>>        obj.animatedDoll.stop();
>>>>>
>>>>>        with:
>>>>>
>>>>>        movieAssetMaterial.movie.animatedDoll.stop();
>>>>>
>>>>>
>>>>>        also if you aren't going to do that, or it doesn't work, the
>>>>>        other suggestion is:
>>>>>
>>>>>
>>>>>        var obj:*= getMaterial(plane as displayObject3D);
>>>>>
>>>>>        should be:
>>>>>
>>>>>        var obj:*= getMaterial(walkingDoll as displayObject3D);
>>>>>
>>>>>
>>>>>        HTH,
>>>>>        mark
>>>>>
>>>>>
>>>>>
>>>>>        Javier España | javierespana.com <http://javierespana.com>
>>>>> wrote:
>>>>>
>>>>>>        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
>>>>>>        <mailto:butilon at gmail.com>> wrote:
>>>>>>
>>>>>>            it's a function inside obj. It is an example.
>>>>>>
>>>>>>
>>>>>>            Javier España | javierespana.com
>>>>>>            <http://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>
>>>>>>                <mailto: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> <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>
>>>>>>                <mailto: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>
>>>>>>                <mailto: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
>>>>>> <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 <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
>>>>
>>>>
>>>
>>
>> _______________________________________________
>> Papervision3D mailing list
>> Papervision3D at osflash.org
>> http://osflash.org/mailman/listinfo/papervision3d_osflash.org
>>
>>
>
>
> -----
> ===============================================
> Check out my blog for Flash, AS3, and web development stuff:
> http://www.wastedpotential.com
> --
> View this message in context:
> http://www.nabble.com/movieAssetMaterial-play-and-stop-tp24485566p24516641.html
> Sent from the Papervision3D mailing list archive at Nabble.com.
>
>
> _______________________________________________
> Papervision3D mailing list
> Papervision3D at osflash.org
> http://osflash.org/mailman/listinfo/papervision3d_osflash.org
>





More information about the Papervision3D mailing list