zoom подгоняет гибкий компонент с помощью transform.matrix - PullRequest
0 голосов
/ 08 июля 2011

кто-то может сказать мне, как я могу масштабировать Canvas с помощью transform.matrix, чтобы содержимое компонента помещалось в родительский контейнер (приложение), внутрь или наружу

эта функция называется Zoomfit(), У меня есть этот код:

    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;
}

Но я не могу применить к matrix.scale ();

1 Ответ

1 голос
/ 09 июля 2011

Примерно так будет работать, очевидно, замените 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...