Render Event... Frame Change Detection

I need to detect when a frame has changed to properly call the Render Event

Is there a more memory efficient way to detect if someone has used play(), gotoAndPlay(), gotoAndStop(), ect…

I feel like relying on ENTER_FRAME wouldn’t be very efficient.

var sprite:Sprite = new Sprite();


sprite.addEventListener(Event.ENTER_FRAME, enterFrame);
stage.addEventListener(Event.RENDER, render);
stage.addEventListener(MouseEvent.CLICK, click);
stage.addChild(sprite);

var lastFrame:uint = 0;



function enterFrame(event:Event):void {
    if(lastFrame!=this.currentFrame)
    {
        lastFrame = this.currentFrame;
        stage.invalidate();
    }
                                      
}  
function render(event:Event):void {
    trace("Render Event Called");
}


function click(event:MouseEvent):void {
    nextFrame();
}
stop();