Почему у моего компонента немасштабированная ширина / высота ноль? - PullRequest
1 голос
/ 25 февраля 2010

Почему unscaledWidth и unscaledHeight трассируются до 0, когда вызывающий компонент явно не устанавливает ширину и высоту? (Если вызывающий компонент устанавливает ширину и высоту, они отслеживаются до заданного значения.) Не следует ли измерять () принудительное использование минимальной ширины и высоты?

package {
import flash.display.Graphics;

import mx.core.UIComponent;

public class ToolBar extends UIComponent {
    public function ToolBar() {
        super();    
    }

    override protected function createChildren():void {
        super.createChildren();

    }

    override protected function measure():void {
        super.measure();

        measuredHeight = 400;
        measuredWidth = 75;
        measuredMinHeight = 400;
        measuredMinWidth = 75;
    }

    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
        super.updateDisplayList(unscaledWidth,unscaledHeight);

        var g:Graphics = graphics;
        g.clear();
        g.beginFill(0xfff00f);
        g.drawRect(0,0,unscaledWidth,unscaledHeight);
        g.endFill();

        trace(unscaledWidth + " " + unscaledHeight);
    }
}
}

Дополнительная информация: свойства отслеживаются до 0 при вызове из файла .as. При вызове из файла .mxml они выглядят нормально.

Код вызова (из .as и .mxml - как показано 0,0, mxml показывает 400,75):

override protected function createChildren():void {
        super.createChildren();

        if (!toolBar) {
            toolBar = new ToolBar();
            addChild(toolBar);
        }
    }
...