     @_renderNewSpriteSheet()
     
   _renderNewSpriteSheet: (async) ->
+    @asyncBuilder.stopAsync() if @asyncBuilder
+      
     async ?= @buildAsync
     builder = new createjs.SpriteSheetBuilder()
     groups = _.groupBy(@toRenderBundles, ((bundle) -> @renderGroupingKey(bundle.thangType, '', bundle.colorConfig)), @)

      
  onBuildSpriteSheetComplete: (e, builder) ->
    return if @initializing
    
    if builder.spriteSheet._images.length > 1
      @resolutionFactor *= 0.9
      console.debug('Sprite sheet is too large... re-rendering at', @resolutionFactor.toFixed(2))
      @_renderNewSpriteSheet(e.async)
      return
    

        @renderRasterThangType(thangType, builder)
        
    if async
      try
        builder.buildAsync()
      catch e
        @resolutionFactor *= 0.9
        return @_renderNewSpriteSheet(async)
      builder.on 'complete', @onBuildSpriteSheetComplete, @, true, builder
      @asyncBuilder = builder
    else
      sheet = builder.build()
      @onBuildSpriteSheetComplete({async:async}, builder)
