Flash / Flex / ActionScript/TextField/text event

Материал из Web эксперт
Перейти к: навигация, поиск

Calling ActionScript from Hyperlinks

   <source lang="java">

package {

 import flash.display.Sprite;
 import flash.text.TextField;
 import flash.events.*;
 
 public class Main extends Sprite {
   public function Main(  ) {
     var field:TextField = new TextField(  );
     field.htmlText = "<a href="event:http://www.wbex.ru">Website</a>";
     field.addEventListener(TextEvent.LINK, onClick);
     addChild(field);
   }
   private function onClick(event:TextEvent):void {
     trace("click");
   }    
 }

}

       </source>
   
  


Listening to TextField Events

   <source lang="java">

textInput Event package {

   import flash.text.TextField;
   import flash.display.Sprite;
   import flash.events.TextEvent;
   public class Main extends Sprite
   {
       private var inputText:TextField;
       private var regex:RegExp;
       private var dict:Array;
       public function Main()
       {
           dict = new Array("flash", "java", "C#", "python", "ruby", "C++");
           inputText = new TextField();
           inputText.type = "input";
           inputText.addEventListener(TextEvent.TEXT_INPUT, predictText);
           inputText.border = true;
           addChild(inputText);
       }
       private function predictText(textEvent:TextEvent):void
       {
           this.regex = new RegExp(textEvent.text, "i");
           for each(var term:String in dict)
           {
               if(regex.test(term))
               {
                   inputText.text = term.substring(textEvent.text.length);
               }
           }
       }
   }

}

       </source>
   
  


Prevent Default Test

   <source lang="java">

package {

    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.text.TextFieldType;
    import flash.events.TextEvent;
    
    [SWF(width=550, height=400)]
    public class Main extends Sprite {
    
         public function Main() {
              var tf:TextField = new TextField();
              addChild(tf);
              
              tf.width = stage.stageWidth;
              tf.height = stage.stageWidth;
              tf.type = TextFieldType.INPUT;
              tf.wordWrap = true;
              
              tf.addEventListener(TextEvent.TEXT_INPUT, onTextFieldTextInput);
         }
         
         private function onTextFieldTextInput(event:TextEvent):void {
              var tf:TextField = event.target as TextField;
              if (tf.text.indexOf(event.text) > -1) {
                   event.preventDefault();
              }
         }
    
    }

}

       </source>
   
  


Responding to User Text Entry: field.addEventListener(TextEvent.TEXT_INPUT, onTextInput);

   <source lang="java">

package {

 import flash.display.Sprite;
 import flash.text.TextField;
 import flash.text.TextFieldType;
 import flash.events.TextEvent;
 import flash.events.TextEvent;
 public class Main extends Sprite {
   private var _field:TextField = new TextField(  );
   public function Main(  ) {
     _field.border = true;
     _field.background = true;
     _field.type = TextFieldType.INPUT;
     addChild(_field);
     _field.addEventListener(TextEvent.TEXT_INPUT, onTextInput);
   }
   
   private function onTextInput(event:TextEvent):void {
     if(event.text == "a" && _field.length == 0) {
         event.preventDefault(  );
     }
   }
 }

}

       </source>