[Papervision3D] It takes two clicks to activate ONReLEASE why?
Dwayne Neckles
dwayneneckles at hotmail.com
Wed Feb 27 08:28:31 PST 2008
I forgot the CODE
function initObjects() sets up ONRELEASE the listenerrss
package {
import caurina.transitions.Tweener;
import com.dnecklesportfolio.util.loading.LoadXMLData;
import flash.display.*;
import flash.events.Event;
import org.papervision3d.cameras.*;
import org.papervision3d.core.proto.*;
import org.papervision3d.events.InteractiveScene3DEvent;
import org.papervision3d.materials.*;
import org.papervision3d.objects.*;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.*;
import org.papervision3d.view.Viewport3D;
public class MainNav extends Sprite {
//declare class variables
private var viewport:Viewport3D;
private var scene:Scene3D;
private var renderer:BasicRenderEngine;
private var camera:Camera3D;
private var material:MovieAssetMaterial;
private var plane:Plane;
private var debug_mode:Boolean = false;
private var mainNav:DisplayObject3D = new DisplayObject3D();
private var subNav:DisplayObject3D = new DisplayObject3D();
private var navArr = new Array();
private var xmlData:LoadXMLData = new LoadXMLData();
private var navData:XML = new XML();
public var subNavigation:SubNav
private var xmlDoc:String = new String()
private var _xmlNode:XML = new XML()
public function MainNav(xmlDoc) {
// Call init() when done loading the XML
xmlData.onLoadComplete = init;
xmlData.loadXML(xmlDoc);
}
public function init():void {
navData = xmlData.xml;
initPapervision();
initObjects();
initListeners();
}
public function initPapervision():void {
//Create the viewport, scene, and camera
//set the 4th parameter to "true" Viewport3D( width, height, autoScaleToStage, interactive )
viewport = new Viewport3D(900,600,true,true);
addChild(viewport);
scene = new Scene3D()
;
camera = new Camera3D()
;
camera.zoom = 11;
camera.focus = 100
;
renderer = new BasicRenderEngine();
renderer.renderScene(scene,camera,viewport);
}
public function initObjects():void {
for (var i:uint = 0; i < navData.*.length(); i++) {
// must create the material first
//material = new ColorMaterial(0x333333,1);// set color and make it 100% opacity
material = new MovieAssetMaterial("NavButton",true,true,true,true);
material.doubleSided = true;
//set the interactive property of your material to false
material.interactive = false
;
//var mat:MovieAssetMaterial = plane.material as MovieAssetMaterial
if (material) {
var navItem:NavButton = material.movie as NavButton;
if (navItem) {
//Customize Each Button Here
navItem.label = navData.category[i]. at label.toString()
navItem.redWidth = 80
}
}
// Create the primitive or shape using the material
plane = new Plane(material,navItem.width,navItem.height,4,4);
plane.name = "item "+i
;
//local variable
var breakOutPositions:DisplayObject3D = new DisplayObject3D();
var defaultPositions:DisplayObject3D = new DisplayObject3D();
// xml source
_xmlNode = navData.*[i]
// Set Breakout position
breakOutPositions.x = Math.random()* 900 - 450;
breakOutPositions.y = Math.random()* 600 - 300;
breakOutPositions.z = Math.random()* 1000 - 1000;
breakOutPositions.rotationX = Math.random() * 180 -360;
breakOutPositions.rotationY = Math.random() * 180 -360;
breakOutPositions.rotationZ = Math.random() * 180 -360;
// Set site layout position
defaultPositions.x = -200;
defaultPositions.y = 100 - (i*25);
defaultPositions.z = 0
;
defaultPositions.rotationX = 0;
defaultPositions.rotationY = 0;
defaultPositions.rotationZ = 0
;
plane.extra =
{
goto1: breakOutPositions,
goto2: defaultPositions,
xmlNode: _xmlNode
};
plane.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, onPlaneClick);
navArr.push( plane );
mainNav.addChild( plane );
}
var initialPlane:Plane = navArr[0]
scene.addChild( mainNav );
subNavigation = new SubNav()
subNavigation.initData(initialPlane.extra.xmlNode)
scene.addChild(subNavigation.subNavContainer)
breakOut();
}
public function initListeners():void {
addEventListener( Event.ENTER_FRAME, update );
}
public function update(e:Event):void {
renderer.renderScene(scene,camera,viewport);
}
public function breakOut() {
for (var j:uint = 0; j < navArr.length; j++) {
var goto :DisplayObject3D = navArr[j].extra.goto1;
var myPlane:Plane = navArr[j];
Tweener.addTween(navArr[j],{x:goto.x, y:goto.y, z:goto.z, time:2, delay:2, rotationX: goto.rotationX, rotationY: goto.rotationY, rotationZ: goto.rotationZ, transition:"easeOutExpo"});
}
Tweener.addTween(this,{delay:4,onComplete:flyIn});
}
public function flyIn() {
for (var j:uint = 0; j < navArr.length; j++) {
var goto2 :DisplayObject3D = navArr[j].extra.goto2;
var myPlane:Plane = navArr[j];
Tweener.addTween(navArr[j],{x:goto2.x, y:goto2.y, z:goto2.z, time:.5, rotationX: 0, rotationY: 0, rotationZ: 0, transition:"easeInOutExpo" });
}
Tweener.addTween(this,{delay:.5,onComplete:makeButtonsActive});
}
public function makeButtonsActive() {
viewport.containerSprite.buttonMode = true;
for (var i:uint = 0; i < navArr.length; i ++) {
navArr[i].material.interactive = true
}
}
/*
Outro
*/
public function onPlaneClick(e:InteractiveScene3DEvent):void {
var plane:Plane = Plane(e.target);
subNavigation.initData(plane.extra.xmlNode)
//trace(plane.extra.xmlNode)
trace("clicked", e.displayObject3D.name );
/*Put whatever you want to happen when the plane is clicked here
scene.removeChild(subNavigation.subNavContainer)
subNavigation = new SubNav(plane.extra.xml)
scene.addChild(subNavigation.subNavContainer) */
}
}
}
From: dwayneneckles at hotmail.com
To: papervision3d at osflash.org
Date: Wed, 27 Feb 2008 16:22:33 +0000
Subject: [Papervision3D] It takes two clicks to activate ONReLEASE why?
Hey Gang it's been a while : ) )since I've been on here..Im sure u guys remember the site redesign that Ive been working on...go herehttp://www.dnecklesportfolio.com/pv3d/index.htmlClick on "Interactive" and "Experiements"Can anyone tell me why it takes TWO CLICKS to make the onrelease button fires a.I want to say thank u for all of your help thats gotten me this far!
Dwayne Neckles
Brooklyn New York
dnecklesportfolio.com
Climb to the top of the charts! Play the word scramble challenge with star power. Play now!
_________________________________________________________________
Need to know the score, the latest news, or you need your Hotmail®-get your "fix".
http://www.msnmobilefix.com/Default.aspx
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://osflash.org/pipermail/papervision3d_osflash.org/attachments/20080227/186abda3/attachment-0001.html
More information about the Papervision3D
mailing list