нет, эти переменные возвращают 300 тоже
Сделал так:

Код AS3:
package components
{
import spark.components.Image;
public class ExtendedImage extends Image
{
public function ExtendedImage()
{
super();
}
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
graphics.clear();
graphics.lineStyle(1,0xff0000,1);
graphics.drawRect(0,0,unscaledWidth,unscaledHeight);
}
[Bindable(event="scaledWidthChanged")]
public function get scaledWidth():Number
{
var num:Number = this.width;
if (scaleMode == "letterbox")
{
try
{
if ( (width > 0) && (sourceWidth < sourceHeight) )
{
num = (sourceWidth/sourceHeight) * height;
}
}
catch(e:Error)
{
num = this.width;
}
}
return num;
}
}
}
Знать ширину растянутой картинки мне нужно было чтобы в разных стэйтах эти картинки прилипали или к правому краю экрана или к левому. То есть если стэйт "normal" -левая картинка слева, правая справа, если стэйт "leftPerson" - правая остается справа, левая приезжает к правому краю стэйджа, если стэйт "rightPerson" - левая слева, а правая приезжает влево

Код AS3:
<s:states>
<s:State name="normal"/>
<s:State name="leftPerson"/>
<s:State name="rightPerson"/>
</s:states>
<fx:Script>
<![CDATA[
[Bindable]
protected var leftPersonX:Number=0;
[Bindable]
protected var rightPersonX:Number=0;
override protected function stateChanged(oldState:String, newState:String, recursive:Boolean):void
{
super.stateChanged(oldState, newState, recursive);
//leftPersonRight-=(personLeftImage.width-personLeftImage.scaledWidth);
try
{
switch(newState)
{
case "normal":
leftPersonX=0;
rightPersonX=stage.stageWidth-personRightImage.width;
break;
case "leftPerson":
personLeftImage.depth=1;
personRightImage.depth=0;
leftPersonX=stage.stageWidth-personLeftImage.scaledWidth;
rightPersonX=stage.stageWidth-personRightImage.width;
break;
case "rightPerson":
personLeftImage.depth=0;
personRightImage.depth=1;
leftPersonX=0;
rightPersonX=-Math.abs((personRightImage.scaledWidth-personRightImage.width));
break;
}
}
catch(error:Error)
{
}
trace(newState+" leftPersonX="+leftPersonX);
}
]]>
</fx:Script>
<s:Group width="100%" height="100%">
<components:ExtendedImage id="personLeftImage"
x="{leftPersonX}"
source="@Embed(source='assets/personLeft.png')"
horizontalAlign="left"
verticalAlign="middle"
height="100%"
scaleMode="letterbox"
moveEffect="Move"/>
<components:ExtendedImage id="personRightImage"
x="{rightPersonX}"
source="@Embed(source='assets/personRight.png')"
horizontalAlign="right"
verticalAlign="middle"
height="100%"
scaleMode="letterbox"
moveEffect="Move"/>
</s:Group>
<s:HGroup width="100%" bottom="0">
<s:Button label="left" click="{currentState='leftPerson'}"/>
<s:Button label="normal" click="{currentState='normal'}"/>
<s:Button label="right" click="{{currentState='rightPerson'}}"/>
</s:HGroup>