Archive for February 16th, 2009
Carousel with Forward Facing Planes
Yes, it’s another Carousel post, but people just seem to keep on asking for them.
Instead of going through all the trig, I just used the handy Casa Lib for the circle management. There are some other great utility classes with Casa, so make sure to check it out.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | package { import flash.events.Event; import flash.geom.Point; import org.casalib.math.geom.Ellipse; import org.papervision3d.materials.ColorMaterial; import org.papervision3d.objects.primitives.Plane; import org.papervision3d.view.BasicView; [SWF(width="900", height="480", backgroundColor="#ffffff", frameRate="60")] public class CarouselWithForwardPlanes extends BasicView { private static const NUM_PLANES:int = 10; private static const RADIUS:Number = 600; private var diameter:Number = RADIUS * 2; //defines the carousel (thanks to CASA) private var circle:Ellipse = new Ellipse(-RADIUS, -RADIUS, diameter, diameter); private var planes:Array = []; public function CarouselWithForwardPlanes() { for(var i:int = 0; i < NUM_PLANES; i++) { var color:Number = Math.random() * 0xffffff; var colorMaterial:ColorMaterial = new ColorMaterial(color); var plane:Plane = new Plane(colorMaterial, 150, 150); //get the x and y (or z) point based on the current index var point:Point = circle.getPointOfDegree(360 / NUM_PLANES * i); plane.x = point.x; plane.z = point.y; planes.push(plane); scene.addChild(plane); } startRendering(); } override protected function onRenderTick(event:Event = null):void { var n:int = 0; for each(var plane:Plane in planes) { var degrees:Number = 360 / NUM_PLANES * n; var mouseDegrees:Number = viewport.containerSprite.mouseX / 2; var totalDegrees:Number = degrees + mouseDegrees; var point:Point = circle.getPointOfDegree(totalDegrees); plane.x = point.x; plane.z = point.y; n++; } super.onRenderTick(event); } } } |
Search
Recommended Books
Speaking at FITC Toronto
Recent Posts
- Moving to johnlindquist.com
- AsyncCommand with Robotlegs, Signals, Flight, MinimalComps
- Search Widget – Robotlegs, Signals, Flight, Minimal Comps, Yahoo Astra
- FDT Super Awesome March Deal
- haXe Tutorial
- AS3 Signals Tutorial
- Preferred Video Tutorial Resolution?
- TweenMax – Tweening a timeline (Advanced Tweening)
- Robotlegs + Flight + Union Platform
- Back in the saddle
- Eclipse Theme Designer Preview
- RobotLegs Hello World Video Tutorial
- 10 Things Every Senior Flash Developer Should Know
- Efflex – 3D Effects for Flex
- MorphController – Mighty Morphing Papervision3D
Recent Comments
- Ocatarinabelachichix on about
- Rajiv on faq
- Rajiv on 3ds max texture baking for Papervision3D
- Anupam Biswas on Maya Texture Baking
- Anupam Biswas on Maya Texture Baking
- Arindam Mojumder on requests
- Arindam Mojumder on requests
- Arindam Mojumder on Full Screen Cube
- Arindam Mojumder on faq
- Mimosa123321 on requests
Categories
Archives
Preferred Video Tutorial Resolution
- 1024x768 (53%, 85 Votes)
- 1280x1024 (15%, 24 Votes)
- 1920x1080 (15%, 24 Votes)
- 800x600 (13%, 20 Votes)
- 480x320 (4%, 6 Votes)
- 640x480 (0%, 2 Votes)
Total Voters: 160

