Actionscript 3 在flex中打开弹出窗口时,在按钮中设置焦点

Actionscript 3 在flex中打开弹出窗口时,在按钮中设置焦点,actionscript-3,apache-flex,flex4,flex3,flex4.5,Actionscript 3,Apache Flex,Flex4,Flex3,Flex4.5,我无法将焦点设置在打开弹出窗口的按钮上。 按钮获得焦点,但它没有获得该焦点的外观。 就好像没有任何组件是focu 我的源代码: <?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="libr

我无法将焦点设置在打开弹出窗口的按钮上。 按钮获得焦点,但它没有获得该焦点的外观。 就好像没有任何组件是focu

我的源代码:

<?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 comps.MyPopUpWindow;

        import mx.events.FlexEvent;
        import mx.managers.PopUpManager;

        // declare a variable for the reusable custom PopUp Window
        private var popup:MyPopUpWindow;

        private function openPopUpWindow(evt:FlexEvent=null):void {
            // open the PopUp Window as a modal popup window
            // and store it in a variable for later use
            popup = PopUpManager.createPopUp(this,MyPopUpWindow,true)  as MyPopUpWindow;
        }

        protected function button1_clickHandler(event:MouseEvent):void
        {
            openPopUpWindow();
        }

    ]]>
</fx:Script>

<s:Button click="button1_clickHandler(event)" label="Open popup"/>  
</s:Application>

弹出窗口:

<mx:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009" 
            xmlns:s="library://ns.adobe.com/flex/spark" 
            xmlns:mx="library://ns.adobe.com/flex/mx" 
            width="400" height="300"
            layout="vertical"
            title="Title"
            showCloseButton="true"                                                          
            keyDown="titlewindow1_keyDownHandler(event)"
            close="titlewindow1_closeHandler(event)"
  creationComplete="titlewindow1_creationCompleteHandler(event)">       

<fx:Script>
    <![CDATA[
        import mx.controls.Alert;
        import mx.core.IFlexDisplayObject;
        import mx.events.CloseEvent;
        import mx.events.FlexEvent;
        import mx.managers.IFocusManagerComponent;
        import mx.managers.PopUpManager;

protected function titlewindow1_creationCompleteHandler(event:FlexEvent):void
        {
            login.setFocus();                           
            var componente:Button = focusManager.getFocus() as Button;
//Alert.show(componente.name ,'Save'); to ensure that the component holds the focu.                     
        }           

protected function titlewindow1_keyDownHandler(event:KeyboardEvent):void
        {
if (event.charCode == Keyboard.ESCAPE) {
        this.dispatchEvent(new CloseEvent(CloseEvent.CLOSE));
            }
        }

        protected function titlewindow1_closeHandler(event:CloseEvent):void
        {
        PopUpManager.removePopUp(event.target as IFlexDisplayObject);
        }


        protected function save_keyDownHandler(event:KeyboardEvent):void
        {
            if (event.keyCode == Keyboard.ENTER) 
                Alert.show('Login','Login');            
        }

        protected function login_clickHandler(event:MouseEvent):void
        {
            Alert.show('Login','Login');            
        }       
    ]]>
</fx:Script>    


<mx:Button id="login" label="Login"     click="login_clickHandler(event)"/>

<mx:Button id="cancel" label="Cancel" />            

</mx:TitleWindow>


谢谢。

最好在特定按钮上手动发送事件。

我通过了一个简单的测试,但不知道它为什么有效。当我打开弹出窗口时,我在按钮中首先配置了文本输入,然后配置了文本输入和文本输入。

您已经包含了很多代码;你可以试着更专注一点。我看不到一个你试图设置焦点的地方。你好。正在尝试中的方法creationComplete=“titlewindow1\u creationcompletedhandler(event)”。