As far as I am concerned this is a memory leak. I'm not talking about CPU usage at all. The code above does not completely remove Away3D from memory. Every time you click, more memory gets consumed. I've also ran a Flash Profile in FB4 and you can see there al ot of instances from Away3D still live when removed...
On Jun 4, 6:58 pm, Michael Iv <[email protected]> wrote: > This is not memory leak. The CPU increase in your case is due to > transformation that involves memory intensive operations. Memory leaks > when the memory consumption increases over time without resetting . > Usually you should check if you clean up used instances and their > pointers > > Sent from my iPhone > > On Jun 4, 2010, at 8:23 PM, squ <[email protected]> wrote: > > > > > what do you mean by memory leak? please explain, I might be having the > > same problem, I use code similar to this one: _plane.rotationY += 2; > > and my CPU usage just goes up to 80% > > > On 4 Cze, 18:24, colouredfunk <[email protected]> wrote: > >> Hiya, > > >> I've been having memory leak problems with a project that I'm working > >> on.. It's a massive project so thought I would set up a little test > >> to > >> see if I can completely kill away3D from memory... > > >> Below is the code I'm using, but even this has got a memory leak... > > >> package > >> { > >> import away3d.containers.View3D; > >> import away3d.materials.WireColorMaterial; > >> import away3d.primitives.Plane; > > >> import flash.display.Sprite; > >> import flash.events.Event; > >> import flash.events.MouseEvent; > >> import nl.demonsters.debugger.MonsterDebugger; > >> [SWF(backgroundColor="#000000", width="800", height="600")] > >> public class MyTest01_viewCameraScene extends Sprite > >> { > >> private var _view:View3D; > >> private var _plane:Plane; > >> private var _clickFlag:Boolean = false > >> public function MyTest01_viewCameraScene() > >> { > >> this.stage.addEventListener > >> (MouseEvent.CLICK, _onMouseClick) > >> } > >> private function _onMouseClick(e:MouseEvent):void > >> { > > >> if (_clickFlag) { > >> cleanUp() > >> } else { > >> ini() > >> } > >> } > >> private function cleanUp():void > >> { > >> trace("cleanUp") > >> _clickFlag = false; > >> removeEventListener(Event.ENTER_FRAME, > >> _onEnterFrame); > >> _view.scene.removeChild(_plane) > >> _plane = null > >> removeChild(_view) > >> _view = null > >> } > >> private function ini():void > >> { > >> trace("ini") > >> _clickFlag = true > >> _view = new View3D(); > >> addChild(_view); > >> _view.x = 400; > >> _view.y = 300; > >> _plane = new Plane(); > >> _plane.width = 500; > >> _plane.height = 500; > >> _plane.yUp = false; > >> _plane.bothsides = true; > >> _plane.material = new WireColorMaterial > >> (0xFF0000) > >> _view.scene.addChild(_plane); > >> addEventListener(Event.ENTER_FRAME, > >> _onEnterFrame); > >> } > >> private function _onEnterFrame(e:Event):void > >> { > >> _plane.rotationY += 2; > >> _view.render(); > >> } > >> } > > >> }- Ukryj cytowany tekst - > > >> - Pokaż cytowany tekst -
