我需要設置火花標籤的文本,然後根據其寬度定位此類標籤沿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