首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缩放flex组件并调整其大小

问缩放flex组件并调整其大小
EN

Stack Overflow用户
提问于 2011-03-30 16:14:57
回答 3查看 3.1K关注 0票数 0

我有从UIComponent继承的自定义flex组件(已编译,没有源代码访问)。它有固定的宽高比例,并且是可伸缩的。如果我将它的宽度和高度设置为100%,它试图适应父组件的大小,但它保持宽到高的比例,所以如果它的比例不等于父组件的比例,在调整父组件的大小时,该组件附近可能会出现空白空间。

​

我需要的是,使我的组件完全适合父级的大小。有什么好方法可以做到这一点吗?我可以监听父母的resize事件,玩组件的scaleX和scaleY,但可能有更好的方法来解决我的问题(任何属性?)。谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-30 17:37:11

一个很好的方法就是使用greensock's AutoFitArea。编码非常简单,如下所示

代码语言:javascript
复制
var area:AutoFitArea = new AutoFitArea(this, 50, 70, 300, 100);
area.attach(myImage, {scaleMode:ScaleMode.PROPORTIONAL_OUTSIDE, crop:true});

这将约束,无论里面是什么,从那里到外面,你可以改变area的宽度,这将会为你解决所有的问题。

希望能有所帮助

票数 2
EN

Stack Overflow用户

发布于 2011-03-31 02:19:55

就我个人而言,我要做的是将父组件中的组件设置为100%的宽度/高度,然后在组件本身中,覆盖updateDisplayList函数(该函数返回未缩放的宽度/高度),然后根据容器的宽度/高度调整您试图显示的任何子项的大小。如下所示:

代码语言:javascript
复制
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
    if(this._child!= null)
    {
        if(unscaledWidth > unscaledHeight)
        {
            this._child.height = unscaledHeight;
            this._child.scaleX = this._video.scaleY;
        }else{
            this._child.width = unscaledWidth;
            this._child.scaleY = this._video.scaleX;
        }
    }
}

应该做这件事。

票数 1
EN

Stack Overflow用户

发布于 2011-03-30 17:37:04

组件是否应该保持其比例?如果没有,您可以像您所说的那样,监听父对象的resize事件,并将宽度和高度设置为组件的值。

如果组件应该保持其比例,您可以调整组件的背景大小,使其适合父组件的大小,并根据组件的比例分别调整组件内容的大小。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5483703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档