[Papervision3D] movieAssetMaterial play and stop
Damien Pegoraro
dpegoraro at actiplay.com
Wed Jul 15 09:09:12 PDT 2009
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
>
More information about the Papervision3D
mailing list