Я создал собственный компонент - MyImage, который имеет двух дочерних элементов, включая растровое изображение и спрайт.
Моя иерархия экранных объектов выглядит следующим образом -
mx:Canvas
view:MyImage
mx:Bitmap
my:Sprite
Если я изменю свойство MyImage.scaleX, scaleY, дочерние элементы масштабируются так, как я ожидал.
Однако, когда я пытаюсь поместить детей в центр, используя placeAgain () при получении события изменения размера:
public function placeAgain():void
{
if (image==null) return;
var pCanvas:Canvas = this.parent as Canvas;
if (image.width <= pCanvas.width)
{
pCanvas.horizontalScrollPolicy="off";
image.x = (pCanvas.width -image.width)/2;
}
else
{
pCanvas.horizontalScrollPolicy="on";
image.x=0;
}
if (image.height <= pCanvas.height)
{
pCanvas.verticalScrollPolicy="off";
image.y = (pCanvas.height -image.height)/2;
}
else
{
pCanvas.verticalScrollPolicy="on";
image.y=0;
}
alignKids();
}
Я считаю, что высота и ширина изображения не изменились, несмотря на то, что изображение масштабируется!
Разве ребенок не должен менять свои границы после масштабирования своего родителя? Особенно после того, как ребенок был правильно масштабирован? Почему границы ребенка застряли на том же значении, что и до масштабирования? Я не кеширую растровое изображение, не включил кеширование растровых изображений.