Как установить размеры пользовательского компонента, определенного в классе ActionScript? - PullRequest
1 голос
/ 22 мая 2010

Я пытаюсь установить высоту вертикальной черты (ActivityBar), но, похоже, ничего не делает. я пробовал нечто подобное со всем компонентом, но установка размеров ничего не делает (даже в mxml, используемом для создания экземпляра класса). Действительно, я добавил прозрачную графику только для того, чтобы дать компоненту некоторые размеры

Я не уверен, что я делаю неправильно. Это что-то плохое, хотя; мой подход кажется ужасным.

К вашему сведению: я пытаюсь создать панель активности микрофона, которая будет реагировать на микрофон, просто устанавливая высоту дочернего элемента ActivityBar (что мне кажется более эффективным, чем каждый раз перерисовывать графику).

Спасибо за вашу помощь!

package components {

  import mx.core.UIComponent;

  public class MicActivityBar extends UIComponent {        
    public var activityBar:UIComponent; 

    // Constructor

    public function MicActivityBar() {

        super();

        this.opaqueBackground = 0xcc4444;

        graphics.beginFill(0xcccccc, 0);

        graphics.drawRect(0,-15,5,30);

        graphics.endFill();// background for bar 

        activityBar = new UIComponent();
        activityBar.graphics.beginFill(0xcccccc, 0.8);
        activityBar.graphics.drawRect(0,-15,5,20);
        activityBar.graphics.endFill();
        activityBar.height=10;

        addChild(activityBar);

    }
  }
}

1 Ответ

0 голосов
/ 22 мая 2010
package components {

  import mx.core.UIComponent;

  public class MicActivityBar extends UIComponent {        
    public var activityBar:UIComponent; 

    private var _w:Number;


    // Constructor

    public function MicActivityBar() {

        super();

        this.opaqueBackground = 0xcc4444;

        graphics.beginFill(0xcccccc, 0);

        graphics.drawRect(0,-15,5,30);

        graphics.endFill();// background for bar 

        activityBar = new UIComponent();
        activityBar.graphics.beginFill(0xcccccc, 0.8);
        activityBar.graphics.drawRect(0,-15,5,20);
        activityBar.graphics.endFill();
        activityBar.height=10;

        addChild(activityBar);

    }

    public function get w():Number {
    return _w;
    }

    public function set w(value:Number):void {
     _w = value;
    }

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

    this.height=w;
    this.weight=w;
}
}
}

См. Мой обновленный код выше.

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