[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