2012-04-07 2 views
0

Je travaille sur une application de fournisseur de données pour la classe et je voulais aller plus loin pour la convivialité et ajouter des tabulations pour la navigation, mais le code tabIndex que j'ai ci-dessous ne fait rien. Je voudrais tabuler entre les boutons et les champs de texte. La tabulation fonctionne-t-elle avec les fournisseurs de données?en utilisant la touche de tabulation as3

package 
{ 

    import fl.controls.Button; 
    import fl.controls.List; 
    import fl.controls.TextInput; 

    import flash.display.Sprite; 
    import flash.events.Event; 
    import flash.events.MouseEvent; 

    public class EditableList extends Sprite 
    { 

     public function EditableList() 
     { 
      init(); 
     } 

     private function init():void 
     { 
      addName_bn.addEventListener(MouseEvent.CLICK, onAddName); 
      addName_ti.addEventListener(Event.CHANGE, onNameEnter); 
      addName_ti.addEventListener("enter", onAddName); 
      deleteName_bn.addEventListener(MouseEvent.CLICK, onDeleteName); 
      editName_ti.addEventListener("enter", onDeleteName); 
      editName_ti.addEventListener(Event.CHANGE, onNameChange); 
      names_li.addEventListener(Event.CHANGE, onNameSelected); 
      addEventListener(Event.ENTER_FRAME, onNextFrame); 
      addEventListener(Event.ENTER_FRAME, onFocus); 
      addName_ti.setFocus(); 

     } 

     private function onFocus(event:Event):void { 
      addName_ti.tabIndex = 0; 
      addName_bn.tabIndex = 1; 
      editName_ti.tabIndex = 2; 
      deleteName_bn.tabIndex = 3; 
     } 

     // Handler for when the next frame is reached after initialization, when buttons can be disabled. 

     private function onNextFrame(event:Event):void { 
      removeEventListener(Event.ENTER_FRAME, onNextFrame); 
      addName_bn.enabled = false; 
      deleteName_bn.enabled = false; 
      editName_ti.enabled = false; 
     } 

     // Handler for when the add name button is clicked, adds item to list. 

     private function onAddName(event:Event):void { 
      var newItem:Object = {label:addName_ti.text}; 
      names_li.dataProvider.addItem(newItem); 
      names_li.dataProvider.sortOn("label"); 
      addName_ti.text = ""; 
      addName_bn.enabled = false; 
      addName_ti.setFocus(); 
     } 

     // Handler for when text is entered into the add name textfield, enables the add name button. 

     private function onNameEnter(event:Event):void { 
      addName_bn.enabled = addName_ti.text.length > 0; 
     } 

     // Handler for when the delete name button is clicked, removes the list item. 

     private function onDeleteName(event:Event):void { 
      names_li.dataProvider.removeItemAt(names_li.selectedIndex); 
      deleteName_bn.enabled = false; 
      names_li.dataProvider.sortOn("label"); 
      editName_ti.text = ""; 
      editName_ti.enabled = false; 
      editName_ti.setFocus(); 
     } 

     // Handler for when text is changed into the edit name textfield, alters the item in the list. 

     private function onNameChange(event:Event):void { 
      var newItem:Object = {label:editName_ti.text}; 
      names_li.dataProvider.replaceItemAt(newItem, names_li.selectedIndex); 
     } 

     // Handler for when an item is selected in the list, populates fields and enables buttons. 

     private function onNameSelected(event:Event):void { 
      editName_ti.text = names_li.selectedItem.label; 
      editName_ti.enabled = true; 
      deleteName_bn.enabled = true; 
     } 

    } 

} 

Répondre

1

Essayez de définir la propriété InteractiveObject.tabEnabled true sur les boutons que vous voulez être sélectionné avec la touche de tabulation. En outre, si les boutons sont contenus dans un élément parent, vous devez également définir la propriété parent tabChildren sur true.

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/InteractiveObject.html#tabEnabled

+0

Je ne sais pas comment je suis censé ajouter que les boutons. J'ai essayé InteractiveObject (addName_ti) .tabEnabled = true et addName_ti.tabEnabled = true au-dessus du code d'index et toujours rien. – Nerdysyntax

Questions connexes