переключатель кнопок по умолчанию с использованием прослушивателя событий - PullRequest
0 голосов
/ 29 июля 2011

Я пытался сделать ближайшую кнопку к нажатому текстовому вводу по умолчанию. Для этого я написал следующий код.

Во-первых, почему моя функция 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>

1 Ответ

0 голосов
/ 29 июля 2011

используйте фазу ht ecapture для изменения кнопок и, возможно, используйте FocusEvent вместо CLICK, затем вы также переключаете кнопки при использовании «вкладок» через поля ввода:

private function addListeners():void
{
    a.addEventListener(FocusEvent.FOCUS_IN, buttonSwitcher, true);
    b.addEventListener(FocusEvent.FOCUS_IN, buttonSwitcher, true);
}

public function buttonSwitcher(event:FocusEvent):void 
{
    form.defaultButton = (((event.currentTarget as TextInput).id == "a") ? aButton : bButton); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...