Game: http://positlabs.com/files/code/drive/
I'm making a driving game of sorts. I made a dust effect that spawns a textured plane on enterframe 25% of the time. This plane grows for some time, and then it's removed from the scene. I made sure to limit the number of planes being displayed to 25. The game crashes after some time due to running out of resources for vertices or something like that. I don't think the planes are being disposed of properly. Here's the class: package { import away3d.primitives.Plane; import flash.events.TimerEvent; import flash.geom.Vector3D; import flash.utils.Timer; public class SmokeParticle extends Plane { public static var globalCount : int; public static var collection : Vector.<SmokeParticle> = new Vector.<SmokeParticle>(26, false); private var fadetimer : Timer = new Timer(100); public function SmokeParticle(pos : Vector3D, rotY : Number) { super(Materials.SMOKE_MAT, 128, 128); if(globalCount > 25) { destroy(collection[0]); } position = pos; rotationY = rotY + Math.random()*31 - 15; Drive.view.scene.addChild(this); collection.push(this); globalCount++; fadetimer.addEventListener(TimerEvent.TIMER, fade); fadetimer.start(); } private function fade(e : TimerEvent) : void { scaleX += .3; scaleY += .3; if (fadetimer.currentCount == 15)destroy(this); } private function destroy(target : SmokeParticle) : void { if(target != null){ collection.shift(); target.dispose(false); Drive.view.scene.removeChild(target); target.fadetimer.removeEventListener(TimerEvent.TIMER, fade); target.fadetimer.stop(); globalCount--; } } } } And here's the error I get: Exception fault: Error: Error #3691: Resource limit for this resource type exceeded. at flash.display3D::Context3D/createVertexBuffer() at away3d.core.base::SubGeometry/getVertexNormalBuffer()[C:\Users \Beeker\workspace\Drive\src\away3d\core\base\SubGeometry.as:192] at away3d.core.base::SubMesh/getVertexNormalBuffer()[C:\Users\Beeker \workspace\Drive\src\away3d\core\base\SubMesh.as:130] at away3d.materials.passes::DefaultScreenPass/render()[C:\Users\Beeker \workspace\Drive\src\away3d\materials\passes\DefaultScreenPass.as:377] at away3d.materials::MaterialBase/renderPass()[C:\Users\Beeker \workspace\Drive\src\away3d\materials\MaterialBase.as:308] at away3d.core.render::DefaultRenderer/drawRenderables()[C:\Users \Beeker\workspace\Drive\src\away3d\core\render\DefaultRenderer.as:184] at away3d.core.render::DefaultRenderer/draw()[C:\Users\Beeker \workspace\Drive\src\away3d\core\render\DefaultRenderer.as:109] at away3d.core.render::RendererBase/executeRender()[C:\Users\Beeker \workspace\Drive\src\away3d\core\render\RendererBase.as:308] at away3d.core.render::DefaultRenderer/executeRender()[C:\Users\Beeker \workspace\Drive\src\away3d\core\render\DefaultRenderer.as:88] at away3d.core.render::RendererBase/render()[C:\Users\Beeker\workspace \Drive\src\away3d\core\render\RendererBase.as:289] at away3d.core.render::DefaultRenderer/render()[C:\Users\Beeker \workspace\Drive\src\away3d\core\render\DefaultRenderer.as:79] at away3d.containers::View3D/render()[C:\Users\Beeker\workspace\Drive \src\away3d\containers\View3D.as:254] at Drive/onEnterFrame()[C:\Users\Beeker\workspace\Drive\src\Drive.as: 262]