Jump to content


  • Posts

  • Joined

  • Last visited

daniel_siq's Achievements


Newbie (1/14)



  1. hehe, ok, thanks anyway for the response. It can't be impossible, flash has the 3D rotation tool that does exacly that. you can switch 3D rotation from global to local. All it would be required is to emulate how the tool works but in AS3.
  2. well, not quite. for example, using this demo http://hulting.homedns.org/takers_us/li ... D_Demo.swf if you first tween rotationX to 90, and then rotationZ to 90, it will rotate the movieclip clockwise in the screen, pointing up and down. The correct behaviour for local coordinate (not parent/child coordinate) would be for the image to remain a horizontal sliver and rotate around it's new Z axis, which now points "up and down" I've been able to achieve the rotation in the local axis, but as you can see by the code, it's far from an elegant solution and having relative values does not help a bit for what I need. I was hoping you would have something like this somewhere. var mc:MovieClip = new MovieClip(); mc.graphics.beginFill(0xff0000); mc.graphics.drawRect(-stage.stageWidth*.25,-stage.stageHeight*.25,stage.stageWidth*.5,stage.stageHeight*.5); mc.graphics.endFill(); mc.x=stage.stageWidth*.5; mc.y=stage.stageHeight*.5; mc.z=0; addChild(mc); //rotationGlobal(80); rotationGlobal(0,0,45); //Uncomment this for Global rotation //rotationLocal(80); rotationLocal(0,0,45); //Uncomment this for Local rotation function rotationGlobal(x:int=0, y:int=0, z:int=0):void{ //Absolute Values if (x) mc.rotationX=x; if (y) mc.rotationZ=y; if (z) mc.rotationZ=z; } function rotationLocal(x:int=0, y:int=0, z:int=0):void{ //Relative values var raw:Vector. = mc.transform.matrix3D.rawData; var right:Vector3D = new Vector3D(raw[0], raw[1], raw[2]); var up:Vector3D = new Vector3D(raw[4], raw[5], raw[6]); var out:Vector3D = new Vector3D(raw[8], raw[9], raw[10]); var pivot:Vector3D = new Vector3D(mc.x, mc.y, mc.z); mc.transform.matrix3D.appendRotation(x, right, pivot); mc.transform.matrix3D.appendRotation(y, up, pivot); mc.transform.matrix3D.appendRotation(z, out, pivot); }
  3. Hello Jack, I'm looking for a way to rotate movieclips based on local, rather than global coordinates. I'm aware that the examples you gave in this post were about Papervision 3D, but I'm wondering if you have implemented any such functionality in your framework since flash now has 3D coordinate space