Showing the hand cursor on a plane

Tuesday, November 18th, 2008 | examples

Here’s some simple source to another question I see pop up often:

View example
source

package {
	import org.papervision3d.events.InteractiveScene3DEvent;
	import org.papervision3d.materials.ColorMaterial;
	import org.papervision3d.objects.primitives.Plane;
	import org.papervision3d.view.BasicView;
 
	[SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")]
	public class HandCursorDemo extends BasicView
	{
		private var interactivePlane:Plane;
		private var nonInteractivePlane:Plane;
 
		public function HandCursorDemo()
		{
			//set the viewport interactive flag to true
			viewport.interactive = true;
 
			var interactiveMaterial:ColorMaterial = new ColorMaterial(0x00cc00);
			//set your material's interactive flag to true
			interactiveMaterial.interactive = true;
 
			var nonInteractiveMaterial:ColorMaterial = new ColorMaterial(0xcc0000);
 
			interactivePlane = new Plane(interactiveMaterial);
			interactivePlane.x = -500;
 
			nonInteractivePlane = new Plane(nonInteractiveMaterial);
			nonInteractivePlane.x = 500;
 
			//add listeners to the planes that have the interactive material
			interactivePlane.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, objectOverHandler);
			interactivePlane.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, objectOutHandler);
 
			scene.addChild(interactivePlane);
			scene.addChild(nonInteractivePlane);
 
			startRendering();
		}
 
		private function objectOverHandler(event:InteractiveScene3DEvent):void
		{
			//change interactive plane's color to blue on roll over
			Plane(event.target).material.fillColor = 0x0000cc;
			//turn the hand cursor on
			viewport.buttonMode = true;
		}
 
		private function objectOutHandler(event:InteractiveScene3DEvent):void
		{
			//change interactive plane's color back to green on roll out
			Plane(event.target).material.fillColor = 0x00cc00;
			//turn the hand cursor off
			viewport.buttonMode = false;
		}
	}
}

Tags: , ,

  • what about if you have the same interactive material on multiple planes. they all seem to hilite even if you only roll over one of the planes they all change.

    thoughts?
  • John Lindquist
    I'll post a demo of that in the next day or so. It's something, if I find the time, I'd like to make a video tutorial about.
  • Trevor
    how about only showing the handcursor on a button that's on a plane? and making only the button clickable (not the whole plane).
blog comments powered by Disqus

Search

Recommended Books

Speaking at FITC Toronto

 

November 2008
M T W T F S S
    Dec »
 12
3456789
10111213141516
17181920212223
24252627282930

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

Loading ... Loading ...