Flash 使用transform.matrix缩放拟合flex组件
有人可以告诉我如何使用transform.matrix缩放画布,以便组件的内容可以向内或向外装入父容器(应用程序) 此函数名为Zoomfit(),我有以下代码:Flash 使用transform.matrix缩放拟合flex组件,flash,apache-flex,actionscript,zooming,transform,Flash,Apache Flex,Actionscript,Zooming,Transform,有人可以告诉我如何使用transform.matrix缩放画布,以便组件的内容可以向内或向外装入父容器(应用程序) 此函数名为Zoomfit(),我有以下代码: public function calcScaleToFitRatio(parentObj:DisplayObject, childObj:DisplayObject):Number{ var retVal:Number = 1; if (null == childObj) { return 1;
public function calcScaleToFitRatio(parentObj:DisplayObject, childObj:DisplayObject):Number{
var retVal:Number = 1;
if (null == childObj) {
return 1;
}
var containerRatio:Number = parentObj.height / parentObj.width;
var contentsRatio:Number = childObj.height / childObj.width;
var isContainerLarger:Boolean = (containerRatio > contentsRatio);
if (true === isContainerLarger) {
retVal = parentObj.width / childObj.width;
} else {
retVal = parentObj.height / childObj.height;
}
return retVal;
}
但我不能应用于矩阵 像这样的方法会奏效,显然,用您正在拉伸的容器的名称替换
stretchedCanvas
<mx:Canvas width="600"> <!-- outer container -->
<mx:Canvas id="stretchedCanvas"
scaleX="{IContainer(stretchedCanvas.parent).width/stretchedCanvas.width}"
scaleY="{IContainer(stretchedCanvas.parent).height/stretchedCanvas.height}"
>
</mx:Canvas>
</mx:Canvas>
为什么不直接使用childObj.scaleX=childObj.scaleY=theScaleYouCalculate?