使用transform.matrix缩放适合flex组件

发布于 2024-11-19 06:26:00 字数 734 浏览 0 评论 0原文

有人可以告诉我如何使用transform.matrix缩放Canvas,以便组件的内容适合父容器(应用程序),向内或向外

这个函数称为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();

someone could tell me how I can zoom a Canvas, with transform.matrix, so that the content of the component fits into the parent container (application), either inward or outward

this function is called Zoomfit(), I have this code:

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

But I can't applied to matrix.scale();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一袭白衣梦中忆 2024-11-26 06:26:00

像这样的东西会起作用,显然将 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>

Something like this would work, obviously replace stretchedCanvas with name of your container you're stretching.

    <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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文