0
我試圖使點擊文本輸入默認的最近按鈕。爲此,我寫了下面的代碼。通過使用事件監聽器的默認按鈕切換器
首先,爲什麼我的buttonSwitcher函數跟在MouseEvent.CLICK後面?其次,有沒有更好的方法來做到這一點?
在此先感謝
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="addListeners()">
<mx:Script>
<![CDATA[
public function addListeners():void {
a.addEventListener(MouseEvent.CLICK, buttonSwitcher);
b.addEventListener(MouseEvent.CLICK, buttonSwitcher);
}
public function buttonSwitcher(event:MouseEvent):void {
form.defaultButton = (((event.currentTarget as TextInput).id == "a") ? aButton : bButton);
}
]]>
</mx:Script>
<mx:Panel>
<mx:Form id="form">
<mx:FormItem label="a" direction="horizontal">
<mx:TextInput id="a" />
<mx:Button id="aButton" label="aButton" />
</mx:FormItem>
<mx:FormItem label="b" direction="horizontal">
<mx:TextInput id="b" />
<mx:Button id="bButton" label="bButton" />
</mx:FormItem>
</mx:Form>
</mx:Panel>
</mx:Application>
謝謝,它的工作,但仍然是我的第一個問題是沒有答案。 – bfaskiplar
這是因爲defaultButton的改變來得太晚。當表單(或其任何子項)獲得焦點時,它將'更新'defaultButton(在頁面上可以有多個defaultButton)。你的eventlistener在更新已經發生之後被調用第二次。通過在捕獲階段捕獲事件(第三個參數爲true),在其餘(頁面的defaultButton更新)運行之前更改defaultButton ... – pkyeck