Lock sprite size dispite stage scale

I’m trying lock the size of a Sprite while allowing the stage to resize proportionately.
The code below is not doing the job, but is very close. It seems that there is another factor at play.

Any help would be greatly appreciated.

stage.scaleMode=StageScaleMode.SHOW_ALL;
//
var redSprite:Sprite=new Sprite();
addChild(redSprite)
redSprite.graphics.beginFill(0xff0000);
redSprite.graphics.drawRect(0,0,100,100);
var greenSprite:Sprite=new Sprite();
addChild(greenSprite)
greenSprite.graphics.beginFill(0x00ff00);
greenSprite.graphics.drawRect(0,0,50,50);
addEventListener(Event.ENTER_FRAME,resizeParentSprite)
function resizeParentSprite(event){
 var scaleAmount=2-getStageScaleAmount(stage);
 greenSprite.scaleX=scaleAmount
 greenSprite.scaleY=scaleAmount
}
function getStageScaleAmount(stage:Stage):Number {
   var origStageWidth=550;
   var origStageHeight=400;
   var origAspectRatio=origStageWidth/origStageHeight;
   //need to determin which side it is scaled by
   var resizedStageWidth=stage.stageWidth;
   var resizedStageHeight=stage.stageHeight;
   var resizedAspectRatio=resizedStageWidth/resizedStageHeight;
   //
   var scaleAmount;
   //
   if (resizedAspectRatio<origAspectRatio) {
    //scaled to width
    scaleAmount=resizedStageWidth/origStageWidth;
   } else {
    scaleAmount=resizedStageHeight/origStageHeight;
   }
   if (isNaN(scaleAmount)) {
    scaleAmount=1;
   }
   return scaleAmount;
  }