2011-12-09 12 views
1

実行時に複数行になるスパークラベルの高さを(widthプロパティが設定されているため)とすると、テキストのオーバーフローを考慮します。フレックス4.6 - スパークラベルの可視高さ

私が試してみました(スパークlabelという名前のタイトルのために):

Title.measureText(Title.text).height - これは、1行の高さのみを返すように思えます。 (画面サイズとフォントのレンダリングが異なるため、テキストが何本までオーバーフローするかは事前にわかっていません...)

Title.heightこれはラベルサイズの高さを返しているようです両方の特性リターン以上)複数行のテキストフローの実行時に

を-adjusted複数行の長異なるテキストの長さを/の.text

に充填されていても不変値が正確に決定実際する方法はありませんオーバーフロースパークラベルの高さ


私は確かのFlex APIとそのなじみのないですが、かなりの時間のためのマニュアルを精練した後、私はまだ適切な間隔で、このタイトルのラベルを配置することができません。どんな助けもありがとう。

+0

を助けるかもしれないあなたはすでにこれを知っているかもしれないが、従来は、AS3クラス名はキャメルケースとインスタンス名です。このサンプルアプリケーションを試すには、headlessCamelCaseです。 –

答えて

1

を聞くことができます。
ただこれはあなたに

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" > 

<fx:Script> 
    <![CDATA[ 
     public var Height:String=""; 
     public function Resize():void 
     { 
      Height=lblLabel.height.toString(); 
      txtText.text="Label Height: "+Height; 
     } 
     public function AddText():void 
     { 
      lblLabel.text += lblLabel.text; 
     } 


    ]]> 
</fx:Script> 
    <mx:Text id="txtText" x="46" y="44" width="200"/> 
    <s:Label id="lblLabel" text="Label Text " x="46" y="99" width="200" resize="Resize()"/> 
    <s:Button id="btnClick" label="AddText" click="AddText()" x="199" y="43"/> 
</s:Application> 
+0

これは既に知っているかもしれませんが、従来はAS3クラス名はCamelCaseで、インスタンス名はheadlessCamelCaseです。 –

+0

明らかに、リサイズリスナーを呼び出すことは、高さ値を正しく更新するために必要なことでした。ありがとう!! :) – ina

0

私が正しくあなたの質問を理解している場合、あなたは私がスパークラベルのresizeイベントが便利になると思うmx.events.FlexEvent.UPDATE_COMPLETE

+0

トレースは、データロード完了リスナー 'datasource.addEventListener(ResultEvent.RESULT、getheights);' - 'datasource.addEventListener(FlexEvent.UPDATE_COMPLETE、getheights);')が未定義プロパティのエラーアクセスを読み込んだ後に実行されます。FlexEvent – ina

+0

@ina 'import mx.events.FlexEvent;'あなたはこれを使用していますか? –

+0

インポートを追加しましたが、データがロードされてもUPDATE_COMPLETEはトリガーされません。 – ina

関連する問題