Thanks for reply Mike.
Yeah I see what you're saying about it being the non-ash way. I do do that to some degree but didn't think about making the draw calls within the RenderSystem itself (whereby I pull out the graphics instance and do the drawing on it as I THINK you're suggesting). Here is my RenderSystem:
package ds2d.entity.systems
{
import flash.display.DisplayObject;
import flash.display.Sprite;
import flash.geom.Point;
import ash.tools.ListIteratingSystem;
import ds2d.entity.components.Spatial;
import ds2d.entity.nodes.RenderNode;
import ds2d.gfx.iGFX;
import ds2d.ui.ViewStack;
public class RenderSystem extends ListIteratingSystem
{
[Inject]
public var vs:ds2d.ui.ViewStack;
public function RenderSystem()
{
super( RenderNode, updateNode, addNode, delNode );
}
private function addNode( node:RenderNode ):void
{
var s:Sprite = node.display.sprite;
if ( s )
{
s.doubleClickEnabled = true;
vs.gameLayer.addChild( s );
}
}
private function delNode( node:RenderNode ):void
{
var s:Sprite = node.display.sprite;
if ( s )
vs.gameLayer.removeChild( s );
}
private var _iGFX:iGFX;
private var _pt:Point = new Point();
private function updateNode( node:RenderNode, time:Number ):void
{
var gfx:DisplayObject = node.display.sprite;
var spatial:Spatial = node.spatial;
// var isCelestrial:Boolean = node.entity.has( Planet );
if ( node.display.isInvalidated )
{
// if ( isCelestrial )
// {
// var p:Planet = node.entity.get( Planet );
// node.display.draw({ size:p.size });
// }
//
// else
node.display.draw();
node.display.isInvalidated = false;
}
_pt.x = spatial.x //+ node.display.offset.x;
_pt.y = spatial.y //+ node.display.offset.y;
gfx.x = _pt.x;
gfx.y = _pt.y;
gfx.rotation = spatial.r;