snippets
Distance to Mouse using a dummy 3d object
package { import flash.events.Event; import org.papervision3d.core.math.Number3D; import org.papervision3d.objects.DisplayObject3D; import org.papervision3d.objects.primitives.Sphere; import org.papervision3d.view.BasicView; [SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")] public class DistanceFrom3DMouse extends BasicView { private var sphere:Sphere = new Sphere(); private var mouseDO3D:DisplayObject3D = new Sphere(); public function DistanceFrom3DMouse () { sphere.x = -500; sphere.y = 200; // scene.addChild(mouseDO3D); uncomment to see mouse sphere scene.addChild(sphere); startRendering(); } override protected function onRenderTick(event:Event=null):void { var ray:Number3D = camera.unproject(viewport.containerSprite.mouseX, viewport.containerSprite.mouseY); ray.normalize(); ray.multiplyEq(sphere.distanceTo(camera)); ray = Number3D.add(ray, camera.position); mouseDO3D.position = ray; var distance:Number = sphere.distanceTo(mouseDO3D); renderer.renderScene(scene, camera, viewport); } } }
I’m open to suggestions for a better way to do this
Distance from Mouse using screen coordinates
package { import flash.events.Event; import org.papervision3d.objects.primitives.Sphere; import org.papervision3d.view.BasicView; [SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")] public class DistanceFrom2DMouse extends BasicView { private var sphere:Sphere = new Sphere(); public function DistanceFrom2DMouse() { sphere.x = -500; sphere.y = -300; sphere.autoCalcScreenCoords = true; scene.addChild(sphere); startRendering(); } override protected function onRenderTick(event:Event=null):void { var distanceX:Number = viewport.containerSprite.mouseX - sphere.screen.x; var distanceY:Number = viewport.containerSprite.mouseY - sphere.screen.y; var distance:Number = Math.sqrt(distanceX * distanceX + distanceY * distanceY); renderer.renderScene(scene, camera, viewport); } } }
Glow Filter on a ViewportLayer
package { import flash.filters.GlowFilter; import org.papervision3d.materials.ColorMaterial; import org.papervision3d.objects.primitives.Sphere; import org.papervision3d.view.BasicView; import org.papervision3d.view.layer.ViewportLayer; [SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")] public class GlowSnippet extends BasicView { public function GlowSnippet() { var material:ColorMaterial = new ColorMaterial(0xcc0000); var sphere:Sphere = new Sphere(material); var viewportLayer:ViewportLayer = new ViewportLayer(viewport, sphere); viewport.containerSprite.addLayer(viewportLayer); var glowFilter:GlowFilter = new GlowFilter(0xcccc00, 1, 20, 20, 4, 3); viewportLayer.filters = [glowFilter]; scene.addChild(sphere); singleRender(); } } }
Waiting for an image to load – BitmapFileMaterial
package { import org.papervision3d.events.FileLoadEvent; import org.papervision3d.materials.BitmapFileMaterial; import org.papervision3d.objects.primitives.Plane; import org.papervision3d.view.BasicView; [SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")] public class WaitForAnImageToLoad extends BasicView { public function WaitForAnImageToLoad() { var url:String = "http://content.screencast.com/media/1676f247-e7f0-4035-a826-06e2d7885731_089125cc-8776-47ed-92d7-280330071c15_static_0_0_00000149.png"; var bitmapFileMaterial:BitmapFileMaterial = new BitmapFileMaterial(url); bitmapFileMaterial.addEventListener(FileLoadEvent.LOAD_COMPLETE, loadCompleteHandler); } private function loadCompleteHandler(event:FileLoadEvent):void { var plane:Plane = new Plane(BitmapFileMaterial(event.target)); scene.addChild(plane); singleRender(); } } }
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
- شقق للبيع في الاردن on Moving to johnlindquist.com
- Annakhan006 on Augmented Reality – Recursive Webcam
- Yarout on Augmented Reality – Recursive Webcam
- Vivon on about
- Josh @ Wall Stickers on Moving to johnlindquist.com
- list of lpn courses on SpringCamera3D and Driving a Car
- rn to bsn in montgomery al on archive
- PowerPoint Recovery on Eclipse Theme Designer Preview
- cheat mw3 on Test if a plane is within the view of the camera (aka testing if culled)
- Goa Hotels on Looking around the inside of a Sphere
Categories
| M | T | W | T | F | S | S |
|---|---|---|---|---|---|---|
| « May | ||||||
| 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 | |||
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

