Изменение scaleX / scaleY для родительского элемента масштабирует дочерние элементы, но не обновляет свойство height / width? - PullRequest
1 голос
/ 23 ноября 2010

Я создал собственный компонент - 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();
    }

Я считаю, что высота и ширина изображения не изменились, несмотря на то, что изображение масштабируется!

Разве ребенок не должен менять свои границы после масштабирования своего родителя? Особенно после того, как ребенок был правильно масштабирован? Почему границы ребенка застряли на том же значении, что и до масштабирования? Я не кеширую растровое изображение, не включил кеширование растровых изображений.

1 Ответ

0 голосов
/ 24 ноября 2010

Посмотрим ...

  1. Нет
  2. Все еще нет
  3. Короче говоря, чтобы упростить вашу работу в качестве разработчика, потому что вам не нужно проходить через все дочерние элементы и заново настраивать их ширину / высоту / x / y (таким образом отвечая и на ваш 4-й вопрос). Вы используете некоторые фиксированные значения, применяете масштабирование к родителю и bam!, Остальная вспышка позаботится об остальном.

Также это было бы одной из тех вещей, которые вы могли бы попробовать сами, прежде чем спрашивать, так как установка уже была ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...