我可以创建像文本字段一样换行的链接按钮吗?

Posted

技术标签:

【中文标题】我可以创建像文本字段一样换行的链接按钮吗?【英文标题】:Can I create LinkButtons that wrap like textfields? 【发布时间】:2010-03-25 19:13:17 【问题描述】:

我基本上想通过循环链接按钮而不是制作文本字段来让事情变得更容易,因为链接按钮已经编程了翻转。

但我有很多文字,而且还在继续。我希望它可以像使用文本字段一样换行。

谢谢

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 = 700;
           lineMetrics.height = textField.textHeight;


           return lineMetrics;
      
 

这是组件,但就像我说的那样,一切都自动居中。

我试过 paddingLEFT =0;并尝试 setStyle("paddingLEFT", 0);但这些方法不起作用。

var test:multiLineLinkButton = new multiLineLinkButton();

        test.label = "sdfdsfdsfdsfsdfsdfsdfdsfsdfdsfdsdsfdsfdsfdffsdfdsfdfdsfdsfdsfdsfdsfdsfsdfdsfdfdsfdfdsfdsfsdfsdfsdf";
        test.setStyle("textAlign","left");

        var metrics:TextLineMetrics = measureText(test.label);

        trace(metrics.height);
        myCanvas.addChild(test);

所以 metrics.height 给了我 14 的高度,我相信它是单行,即使它换行了。

【问题讨论】:

让我们看看 multiLineLinkBut​​ton 类背后的代码,这就是我们解决身高问题的方法。 抱歉,上面的第一段代码是multiLineLinkBut​​ton。 呃,我应该看到的。所以这就是你要做的。 1)给你的文本字段一个名字。 2) 编写一个公共函数,将其命名为 getHeight()。 3) 让该函数返回带有 getchildbyname 的文本字段的高度。现在您有了一个可以从主应用程序调用的函数,该函数将返回您要查找的高度。 所以我在我的自定义组件文件中创建了一个名为 getHeight 的函数。一个不是“textField”的文本字段名称吗?两个不会返回 textField.measuredHeight 给我高度?抱歉,我不知道该怎么做? 组件中的 textField.textHeight 在首次运行时也会给出不正确的高度。但是当你翻转链接时,你会得到正确的高度......我只是困惑 【参考方案1】:

这个人做到了: http://ooine.com/index.php/2009/10/12/flex-linkbutton-word-wrap/

仅供参考,这是搜索词“flex linkBut​​ton word wrap”在 Google 上的第一次点击

【讨论】:

谢谢。这让我想到了另一个问题。你如何利用脚本标签/动作脚本中的组件 知道了 var hey:multiLineLinkBut​​ton = new multiLineLinkBut​​ton();谢谢 我尝试了代码,它有点工作。由于某种原因,文本的边界大约是 50 像素宽。我增加了 .width 但它所做的只是增加了翻转框的宽度而不是实际的文本。 var lineMetrics:TextLineMetrics = textField.getLineMetrics(0); lineMetrics.width = 700; lineMetrics.height = textField.textHeight;我刚刚添加了自己的 700 宽度......但现在我如何让它与 LEFT 对齐,自动调整大小不适合我 对齐是一种样式,因此在 mxml 中它将是 textAlign="left" 在 AS 中它将是 setStyle("textAlign","left"); 堆栈溢出提示:在 cmets 中,您可以使用刻度线( [1] 键旁边的小标记通常共享~。至少在美国键盘上是这样的

以上是关于我可以创建像文本字段一样换行的链接按钮吗?的主要内容,如果未能解决你的问题,请参考以下文章

SQL server字符串字段怎么存储换行符?

根据文本输入字段创建动态链接

带有角度 JS 的可编辑文本就像普通链接一样

如何使输入类型=按钮像超链接一样使用获取请求进行重定向? [复制]

thinkpad可以像macbook一样不开盖激活吗

Flutter 文本字段随用户类型扩展