Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 如何使此linkButton自定义组件工作?_Apache Flex - Fatal编程技术网

Apache flex 如何使此linkButton自定义组件工作?

Apache flex 如何使此linkButton自定义组件工作?,apache-flex,Apache Flex,我这里的问题是,如果你使用这个组件,你会看到文本聚集在一个非常小的区域。它不会填充linkButton的整个宽度。有人知道为什么会这样吗?容器可能不够宽。将容器percentWidth设置为100,看看它是否解决了您的问题。您还可以将LinkButton设置为固定宽度,看看这是否有帮助。类似的内容?textField.percentWidth=100;在自定义组件中?这似乎不起作用。不,我是说把百分宽度放在容器上。尝试将LinkButton的width属性设置为80或100,看看是否可以获得宽度

我这里的问题是,如果你使用这个组件,你会看到文本聚集在一个非常小的区域。它不会填充linkButton的整个宽度。有人知道为什么会这样吗?

容器可能不够宽。将容器percentWidth设置为100,看看它是否解决了您的问题。您还可以将LinkButton设置为固定宽度,看看这是否有帮助。

类似的内容?textField.percentWidth=100;在自定义组件中?这似乎不起作用。不,我是说把百分宽度放在容器上。尝试将LinkButton的width属性设置为80或100,看看是否可以获得宽度。当我手动向LinkButton添加宽度值时,它会为其提供正确的尺寸,但文本仍然聚集在一起。哦,我知道你在做什么了。嗯,我第一次看你的代码时就错过了。我很确定您不应该试图设置lineMetrics维度。这些并没有标记为只读,但我认为它们应该是只读的。他们只是在那一行报告文本的尺寸。通过设置此选项,您到底想获得什么?如果您确实设置了它,您应该在获得lineMetrics后立即执行validateNow,否则它们将不准确。在组件中,textField.textWidth的值始终在95左右。我认为问题在于它没有获得文本字段的适当宽度
package {
 import mx.controls.LinkButton;
 import flash.text.TextLineMetrics;

 public class multiLineLinkButton extends LinkButton {
      override protected function createChildren():void {
           super.createChildren();
           if (textField){
                textField.wordWrap = true;
                textField.multiline = true;

           }
      }

      override public function measureText(s:String):TextLineMetrics {
           textField.text = s;
           var lineMetrics:TextLineMetrics = textField.getLineMetrics(0);
           lineMetrics.width = textField.textWidth;
           lineMetrics.height = textField.textHeight;


           return lineMetrics;
      }
 }