我正在构建一个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本身,而不是孩子,或者我画入它的形状。现在这些形状超出界限,或者在页面上剪切掉。
我不理解什么?这些形状不被视为儿童吗?或者我如何使这项工作。谢谢!
答案 0 :(得分:0)
width
的{{1}}属性与其父类UIComponent
的工作方式不同,因为Flex组件具有不同的大小调整逻辑。在示例中,修改Sprite
或width
不会影响height
图层。如果您想扩展graphics
和UIComponent
图层,请尝试直接使用graphics
和scaleX
属性。
在示例中尝试此操作(如果要按宽度缩放到520并保持纵横比):
scaleY