Родительско-Дочерние ограничения
-
13-09-2019 - |
Вопрос
Пример:
var circle1 :Canvas = new Canvas();
var circle2 :Canvas = new Canvas();
circle1.addChild( circle2 )
circle1.scaleX = 2;
После предыдущего примера, когда Flash отобразит circle2, поскольку он является дочерним по отношению к circle1, он будет масштабирован до.Есть ли способ, которым я могу масштабировать circle1, не влияя на circle2, или что я могу сделать с circle2, чтобы он мог иметь тот же масштаб?
Решение
Может помочь вам : http://natejc.com/blog/?p=68
Другие советы
Это довольно просто, просто компенсируйте тот факт, что вы удваиваете размер родительского элемента.
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);
Не связан с StackOverflow