Apache flex 父子约束
例如:Apache flex 父子约束,apache-flex,flash,matrix,transform,scale,Apache Flex,Flash,Matrix,Transform,Scale,例如: var circle1 :Canvas = new Canvas(); var circle2 :Canvas = new Canvas(); circle1.addChild( circle2 ) circle1.scaleX = 2; 在前面的示例之后,Flash将渲染circle2,因为它是circle1的子对象,所以它将缩放为。有没有一种方法可以在不影响circle2的情况下缩放circle1,或者如何处理circle2使其具有相同的缩放比例?这很简单,只是为了补偿您将父对象
var circle1 :Canvas = new Canvas();
var circle2 :Canvas = new Canvas();
circle1.addChild( circle2 )
circle1.scaleX = 2;
在前面的示例之后,Flash将渲染circle2,因为它是circle1的子对象,所以它将缩放为。有没有一种方法可以在不影响circle2的情况下缩放circle1,或者如何处理circle2使其具有相同的缩放比例?这很简单,只是为了补偿您将父对象的大小增加了一倍的事实
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 )
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;
}
}
可能会帮助您:可能会帮助您:这里的问题是,我在移动鼠标时缩放事件。因此,如果我在每次鼠标移动时使用父缩放来更改子缩放,它的值将是错误的。如果我能在渲染前捕捉到一个事件,然后更改子矩阵,再在渲染后将其更改回来。渲染完成后是否有事件?我修复了代码。但你认为错误的价值是什么意思?这样子精灵的大小将始终相同。这里的问题是我在鼠标移动时缩放事件。因此,如果我在每次鼠标移动时使用父缩放来更改子缩放,它的值将是错误的。如果我能在渲染前捕捉到一个事件,然后更改子矩阵,再在渲染后将其更改回来。渲染完成后是否有事件?我修复了代码。但你认为错误的价值是什么意思?这样子精灵将始终具有相同的大小。