缩放UIComponent不会扩展其子级

时间:2011-02-11 04:18:51

标签: flash actionscript-3 flex3 scale children

我正在构建一个Flex应用程序,它根据一些选项/过滤器创建整洁的矢量图像。相对较新的Flash / Flex / AS3,所以我在学习的时候......

简而言之:

// I create a new UIComponent
var myuic:UIComponent = new UIComponent();

// I then draw some vector graphics to it.. 
myuic_prev.graphics.beginFill(fgRGB, 1);
myuic_prev.graphics.drawRect(xptr, yptr, pxls, pxls);
myuic_prev.graphics.beginFill(fgRGB, 1);
myuic_prev.graphics.drawCircle(cx,cy,cr);
myuic.graphics.beginFill(fgRGB, 1);
myuic.graphics.drawCircle(cx,cy,cr);
myuic_prev.graphics.endFill();

由于各种原因,生成的结果图像可能适合也可能不适合我的Canvas或Display容器,在这种情况下是具有固定宽度的VBOX。在这种情况下我 需要缩放生成的UIComponent图像。

我在Adobe文档中读到,调整UIComponent的比例将适当地扩展其子代。事实上,我看到很多关于如何防止这种情况的线索。

所以我尝试了......简单地说:

// Scale my UIC by changing the width
myuic_prev.width = 520;     
// Now make the two scale factors the same, this keeps proportions.
myuic_prev.scaleY = mxuic_prev.scaleX;

我发现这似乎是为了扩展UIComponent本身,而不是孩子,或者我画入它的形状。现在这些形状超出界限,或者在页面上剪切掉。

我不理解什么?这些形状不被视为儿童吗?或者我如何使这项工作。谢谢!

1 个答案:

答案 0 :(得分:0)

width的{​​{1}}属性与其父类UIComponent的工作方式不同,因为Flex组件具有不同的大小调整逻辑。在示例中,修改Spritewidth不会影响height图层。如果您想扩展graphicsUIComponent图层,请尝试直接使用graphicsscaleX属性。

在示例中尝试此操作(如果要按宽度缩放到520并保持纵横比):

scaleY