2011-04-21 75 views

回答

1

要使用J_A_X的ANS走此外,如果您尝试在应用程序首次加载时将注意力放在组件上,则还需要use some javascript to set the focus on your SWF

下面是这篇文章的示例代码:

的JavaScript:

<script type="text/javascript"> 
function onFlexInitialized() 
{ 
    //alert("onFlexInitialized"); 

    <!-- Force the browser to set flex app with focus --> 
    document.getElementById("${application}").focus(); 
} 
</script> 

动作脚本:

/** 
* Constructor. 
*/ 
public function AppController() 
{ 
    FlexGlobals.topLevelApplication.addEventListener(FlexEvent.APPLICATION_COMPLETE, onAppComplete); // Flex 4 
     //Application.application.addEventListener(FlexEvent.APPLICATION_COMPLETE, onAppComplete); // Flex 3 
} 

/** 
* Handles the application complete event. 
*/ 
protected function onAppComplete(e:FlexEvent):void 
{ 
    FlexGlobals.topLevelApplication.removeEventListener(FlexEvent.APPLICATION_COMPLETE, onAppComplete); // Flex 4 
     //Application.application.removeEventListener(FlexEvent.APPLICATION_COMPLETE, onAppComplete); // Flex 3 

    if(ExternalInterface.available) 
    { 
     ExternalInterface.call("onFlexInitialized"); 
    } 
} 
+0

谢谢@Jason Towne。以前,我不知道如何使用动作脚本这就是为什么我没有与你的答案去。我做不到,并最终使用JavaScript,我做到了。再次感谢 :)。 – 2011-04-25 06:21:20

1

您不能手动移动鼠标光标,但是,你总是可以设置焦点中TextInput后您的形式完成:

<mx:Canvas creationComplete="onCreationComplete()"> 
    <mx:Script> 
     <![CDATA[ 
     private function onCreationComplete():void 
     { 
      input.setFocus(); 
     } 
     ]]> 
    </mx:Script> 
    <mx:TextInput id="input" /> 
</mx:Canvas> 
+0

感谢代码@J_A_X的解释,但文本输入突出显示,我没有在那里获得光标。 – 2011-04-22 04:37:59

+0

正如我在答复中所说的:“您无法手动移动鼠标光标”。 – 2011-04-22 13:26:57

+0

你的力量让我@J_A_X。当表单第一次加载时,用户名textinput突出显示,但我不能在那里看到光标。即使我没有将光标放在它上面,我也看不到文字。这意味着默认情况下光标不在文本输入中。 – 2011-04-23 04:26:53

-1

在Adobe论坛,解决方案提供商是几乎同样的问题 完蛋请

How to move the cursor in a text input programatically

希望帮助

+0

-1该帖子不适用OP问题。他希望知道如何在首次加载表单时自动将焦点置于用户名TextInput字段上。 – 2011-04-21 15:11:37

1
<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> 
    <mx:Label id="laa" x="264" y="118" width="160"/> 
    <mx:Script> 
     <![CDATA[ 
      import mx.controls.Alert; 
      [Bindable] 
      private var tempArr:Array; 
      private function myFunc(event:TextEvent):void{ 
      tempArr=new Array(); 

       for(var i:int=0, j:int=0;i<myarr.length;i++){ 
       if(myarr[i].names.toString().match(textinput.text)){ 
         tempArr[j]=myarr[i]; 
         j++; 
       }else{ 

       } 
       } 
       ls.dataProvider=tempArr; 
       ls.visible=true; 

      } 
     ]]> 
    </mx:Script> 


    <mx:Array id="myarr"> 
     <mx:Object names="Subudhi"/> 
     <mx:Object names="Subbu"/> 
     <mx:Object names="Harish"/> 
     <mx:Object names="Hari"/> 
     <mx:Object names="Subramanyam"/> 
     <mx:Object names="Suresh"/> 
     <mx:Object names="Surya"/> 
     <mx:Object names="Harsha"/> 
     <mx:Object names="Geetha"/> 
     <mx:Object names="Gentle"/> 
     <mx:Object names="gentleman"/> 
     <mx:Object names="sunny"/> 
     <mx:Object names="sunday"/> 
    </mx:Array> 
    <mx:TextInput id="textinput" x="264" y="10" textInput="myFunc(event)" focusOut="ls.visible=false"/> 
    <mx:List id="ls" x="264" y="31" height="66" visible="false" labelField="names" width="160" backgroundColor="#F3EBEB"></mx:List> 
</mx:Application> 

    enter code here 
+0

对此进行描述不仅对提问的人有益,而且对其他人也有问题。 – Boeckm 2012-11-16 16:51:32

0
navigateToURL(new URLRequest("javascript: document.getElementById('XXX').focus();"), "_self"); 
userNameInput.setFocus(); 

其中XXX是swf文件的名称。

相关问题