2010-03-25 72 views
0

我基本上想通過循環鏈接按鈕而不是製作文本框來讓事情更輕鬆,因爲鏈接按鈕的翻轉已經編好了。我可以創建包含文本字段的LinkBut​​ton嗎?

但我有很多文字,它只是繼續前進。我希望它能夠像我可以使用textfields一樣進行換行。

感謝

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的高度,即使它包裝,我相信它是單線。

+0

讓我們看看multiLineLinkBut​​ton類後面的代碼,這將是我們如何弄清楚你的身高問題。 – invertedSpear 2010-03-27 00:05:07

+0

對不起,上面的第一部分代碼是multiLineLinkBut​​ton。 – Adam 2010-03-27 01:11:46

+0

杜,我應該看到這一點。所以這就是你所做的。 1)給你的文本字段一個名字。 2)編寫一個公共函數,將其稱爲getHeight()。 3)使用getchildbyname函數返回文本字段的高度。現在,您可以從主應用調用一個函數,該函數將返回您正在查找的高度。 – invertedSpear 2010-03-29 15:08:37

回答

2

這傢伙做到了: http://ooine.com/index.php/2009/10/12/flex-linkbutton-word-wrap/

僅供參考,這是在谷歌第一主打的搜索術語「柔性LinkBut​​ton的自動換行」

+0

謝謝。這導致我另一個問題。你如何利用腳本中的組件tags/actionscript – Adam 2010-03-25 20:18:03

+0

瞭解它嗨:multiLineLinkBut​​ton = new multiLineLinkBut​​ton(); 謝謝 – Adam 2010-03-25 20:24:46

+0

我試過了代碼,它有點作用。由於某些原因,文本的邊界寬度大約爲50個像素。我增加了.width,但它所做的只是增加了翻轉框的寬度,而不是實際的文本。 – Adam 2010-03-25 20:31:21

相關問題