如何设置ActionScript类中定义的自定义组件的尺寸?

时间:2010-05-22 12:41:14

标签: flex

我正在尝试设置垂直条(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 :(得分:0)

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;
}
}
}

请参阅上面的更新代码。