Stacked Planes
Compare this to the last post to see how similar they are.
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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | package { import de.polygonal.ds.DLinkedList; import de.polygonal.ds.DListNode; import gs.TweenMax; import org.papervision3d.events.InteractiveScene3DEvent; 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 StackedPlanes extends BasicView { private static const X_SPACING:Number = 400; private static const Z_SPACING:Number = 400; private static const NUMBER_OF_PLANES:int = 10; private static const TIME:Number = .5; private var planeList:DLinkedList = new DLinkedList(); public function StackedPlanes() { viewport.interactive = true; for(var i:int = 0; i < NUMBER_OF_PLANES; i++) { var randomColor:Number = Math.random() * 0xffffff; var colorMaterial:ColorMaterial = new ColorMaterial(randomColor); colorMaterial.interactive = true; var plane:Plane = new Plane(colorMaterial, 400, 400, 4, 4); plane.x = i * X_SPACING; plane.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, plane_objectClickHandler); planeList.append(plane); scene.addChild(plane); } flow(plane); startRendering(); } private function plane_objectClickHandler(event:InteractiveScene3DEvent):void { var plane:Plane = Plane(event.target); flow(plane); } private function flow(plane:Plane):void { var xPosition:Number = 0; var zPosition:Number = 0; TweenMax.to(plane, TIME, {x:xPosition, z:zPosition, rotationY:0}); var current:DListNode = planeList.nodeOf(plane).node; var walkLeft:DListNode = current.prev; while(walkLeft) { plane = Plane(walkLeft.data); xPosition += X_SPACING; zPosition += Z_SPACING; TweenMax.to(plane, TIME, {x:xPosition, z:zPosition}); walkLeft = walkLeft.prev; } xPosition = 0; zPosition = 0; var walkRight:DListNode = current.next; while(walkRight) { plane = Plane(walkRight.data); xPosition -= X_SPACING; zPosition -= Z_SPACING; TweenMax.to(plane, TIME, {x:xPosition, z:zPosition}); walkRight = walkRight.next; } } } } |
-
atulpariharmca
-
atulpariharmca
-
Dave
-
John Lindquist
-
lisa mercedes
-
Paul Mayne
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


