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

それは非常に簡単です。親のサイズを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 に答える