0

例子:

var circle1 :Canvas = new Canvas();
var circle2 :Canvas = new Canvas();

circle1.addChild( circle2 )
circle1.scaleX = 2;

在之前的示例之后,当 Flash 将渲染 circle2 因为它是 circle1 的子对象时,它将被缩放到。有没有一种方法可以在不影响 circle2 的情况下缩放 circle1 或者我可以对 circle2 做什么以使其具有相同的比例?

4

2 回答 2

2

这很简单,只需补偿您将父级大小加倍的事实。

var circle1 :Canvas = new Canvas();
var circle2 :Canvas = new Canvas();

circle1.addChild( circle2 )
circle1.scaleX = 2;
circle2.scaleX = .5; // Added

一个可能很方便的功能可以解决缩放问题,可能是:

function setParentOnlyScaleX(parent:Canvas, scale:Number):void {
    parent.scaleX = scale;
    for (var i = 0; i < parent.numChildren - 1; ++i) {
        var child:Canvas = circle1.getChildAt(i);
        child.scaleX  = 1 / scale;
    }
}

那么第一个片段将是:

var circle1 :Canvas = new Canvas();
var circle2 :Canvas = new Canvas();

circle1.addChild( circle2 )
setParentOnlyScale(circle1, 2);
于 2009-07-14T08:40:37.730 回答
1

可以帮助你:http ://natejc.com/blog/?p=68

于 2009-07-14T13:25:40.863 回答