Papervision2 Forums The best resource for Papervision3d tutorials Skip to content Advanced search * Board index ‹ Help! * Change font size * Print view * FAQ * Register * Login Interesting predicament: papervision gets slower and slower Post your Papervision-related problems here Post a reply 1 post • Page 1 of 1 Interesting predicament: papervision gets slower and slower Postby icd2k3 on Mon Aug 11, 2008 10:05 pm Hey guys, this problem is driving me crazy. any suggestions would be greatly appreciated. I've been working on a cube transition for swapping out pages in a flash app I'm developing. It bitmaps the current screen and the next screen, makes them sides of a cube, then rotates the cube. The problem is, the more I run the transition, the slower it gets?? all I'm doing is calling the cube transition class, the enterframe and all class references are removed after it's done rotating, so what's the problem? is something in papervision still open? to see the problem, run the transition a few times (hit the back button in browser to go back) http://www.entrance4.net/handjive/ Class: Code: Select all public class Cubeify extends Sprite { private var viewport; private var renderer; private var scene; private var camera; private var curSideMaterial; private var nextSideMaterial; private var cube; private var textures; private var cubeMaterial; private var light:PointLight3D; private var shader:FlatShader = new FlatShader(light, 0xffffff, 0x000000); private var shader2:FlatShader = new FlatShader(light, 0xffffff, 0x000000); private var stageRef:Stage; private var onComplete:Function; public function CubeifyInit(_stage:Stage, side1:BitmapData, side2:BitmapData, speed:Number, W:Number, H:Number, D:Number, _onComplete:Function):void { trace("> CLASS CALLED: library.transitions.Cubeify"); stageRef = _stage; onComplete = _onComplete; renderer = new BasicRenderEngine(); viewport = new Viewport3D(0, 0, true, false); scene = new Scene3D(); camera = new Camera3D(200, 10, 20000); light = new PointLight3D(); cubeMaterial = new ColorMaterial(0x000000); addChild(viewport); stageRef.quality = StageQuality.MEDIUM; light.z = -1500; light.x = W/2; light.y = H/2; scene.addChild(light); curSideMaterial = new BitmapMaterial(side1); nextSideMaterial = new BitmapMaterial(side2); curSideMaterial.smooth = true; curSideMaterial.doubleSided = false; nextSideMaterial.smooth = true; nextSideMaterial.doubleSided = false; var curSideMaterialShaded:ShadedMaterial = new ShadedMaterial(curSideMaterial, shader); var nextSideMaterialShaded:ShadedMaterial = new ShadedMaterial(nextSideMaterial, shader2); textures = new MaterialsList({ front:curSideMaterialShaded, bottom:nextSideMaterialShaded, left:cubeMaterial, right:cubeMaterial, top:cubeMaterial, back:cubeMaterial }); camera.zoom = 75; camera.focus = 100; camera.z = -7800; cube = new Cube(textures, W, D, H, 5, 5, 5); curSideMaterialShaded.registerObject(cube); nextSideMaterialShaded.registerObject(cube); scene.addChild(cube); cube.rotationY = 180; TweenLite.to(this.cube, 2, {rotationX:-90, ease:Elastic.easeInOut, onComplete:removeLoop}); Tweener.addTween(this.camera,{zoom:60, time:.5, transition:"easeInBack"}); Tweener.addTween(this.camera,{zoom:75, time:.5, delay:1.5, transition:"easeOutBack"}); addEventListener(Event.ENTER_FRAME, loop); } private function loop(e:Event):void { trace("render"); renderer.renderScene(scene, camera, viewport); } private function removeLoop():void { trace("Cubify Done"); Tweener.removeAllTweens(); stageRef.quality = StageQuality.HIGH; removeEventListener(Event.ENTER_FRAME, loop); removeChild(viewport); onComplete(); } }