スパーク・ラベルのテキストを設定し、幅に応じてそのラベルをx軸に沿って配置する必要があります。残念ながら、ラベルの幅が直ちに更新されないため、配置が失敗するようです。私はラベルのupdateCompleteイベントを聞いてその位置を更新することができますが、これはラベルの位置を頻繁に変更することを意味します(updateCompleteは幅の変更より頻繁に発生します)。些細なことであると思われるものを適切に処理する方法に関するアイデアはありますか?スパーク・ラベルの幅
ここに、私が上で説明した内容を示すコードスニペットがあります。ボタンを押すと、テキストを変更する前のラベルの幅、テキストの設定直後、およびラベルの更新が完了したときの3つのトレースが表示されます。ボタン... updateCompleteイベントに耳を傾けることなく、正しい幅を取得する方法はありますかどうかを知るのが大好きとVGroupsは
<?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" minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
protected function button1_clickHandler(event:MouseEvent):void
{
trace("label width = ", lb.width);
lb.addEventListener(FlexEvent.UPDATE_COMPLETE, lb_updateCompleteHandler);
lb.text = "hello world!";
trace("label width post change= ", lb.width);
}
protected function lb_updateCompleteHandler(event:FlexEvent):void
{
lb.removeEventListener(FlexEvent.UPDATE_COMPLETE, lb_updateCompleteHandler);
trace("label width post update complete = ", lb.width);
}
]]>
</fx:Script>
<s:VGroup>
<s:Button label="go" click="button1_clickHandler(event)"/>
<s:Label id="lb" text="h" x="10" y="10" />
</s:VGroup>
</s:Application>
私はあなたの希望のレイアウトを理解していません、あなたは物事をどのように表示するか、実際にどのように表示されているかを別の言葉で説明しようとすることができますか? –
ラベルの幅に応じてx位置を指定したい。これは少し一般的ですが、想像するのは難しいことではありません... –
正確に何を達成しようとしていますか?私は最終結果がどのように見えるのでしょうか?おそらくあなたはスクリーンショットを投稿する可能性があります。私は、あなたが何か難しいことをやろうとしていると感じていますが、わかりません。 – RIAstar