Recipe 8.6. Setting Allowable Characters for Input


Problem

You want to restrict allowable characters for an input text field or text input component instance.

Solution

Use the Character Options to embed only those characters you want to allow the user to input.

Use the text field's restrict property to assign a list or range of characters to include or not include.

Discussion

If you are using an input text field, there are two ways you can restrict the allowable characters. One way is to embed the font and to use the Character Options to specify which characters to embed. Because only that subset of characters gets embedded, the user can enter only those characters. For example, if you want to make sure that a user can only enter a number into an input field, you can embed only the number characters.

The downside of relying on embedding a font to restrict allowable characters is that embedded fonts increase the file size of the Flash movie. You can use ActionScript to restrict the allowable characters even with device fonts. The restrict property for a text field determines what characters can be entered by the user. You can assign a string value to the restrict property that contains all the characters you want to allow. The following example restricts the allowable characters for tInputField to the lowercase letters from a to g and the uppercase letters X, Y, and Z:

 tInputField.restrict = "abcdefgXYZ"; 

The restrict property affects what characters an input text field can display. If the user presses a key, there are several possible results. If the user presses a key that is in the restrict property value, the character appears in the text field. If the user presses a key that isn't directly in the restrict property value but can be shifted to a character in the restrict property value (adding or removing a Shift key), the shifted value appears in the text field. For example, if the user presses the z key yet only the Z character is allowed, the Z character will appear in the text field. If the user presses a key for which there is no shifted or unshifted value in the restrict property, no character is added to the text field.

You can also specify ranges of characters by using the dash between the starting and ending (inclusive) letters or numbers. The following example restricts the allowable characters to the ranges of the upper- and lowercase letters, as well as the numbers. Therefore, the disallowed characters include all punctuation and other non-alpha-numeric characters.

 tInputField.restrict = "a-zA-Z0-9"; 

In addition to specifying allowable characters, you can also disallow characters with a restrict string by using the caret character (^). All characters and ranges in a restrict string following the caret will be disallowed. For example:

 tInputField.restrict = "^abcdefg"; // Allows all except lowercase a through g tInputField.restrict = "^a-z";     // Disallows all lowercase letters (but                                    // allows all other characters including                                    // uppercase) tInputField.restrict = "0-9^5";    // Allows numbers only, with the exception of 5 

You can also specify allowable characters using Unicode escape sequences. For example, if you want to disallow users from entering the character into a field, you can specify its Unicode code point in the restrict property as follows:

 tInputField.restrict = "^\u001A"; 

To allow a literal character that has a special meaning when used in a restrict string (such as a dash or caret), you must escape the character in the restrict string by preceding it with two backslashes (not just one):

 tInputField.restrict = "0-9\\-";     // Allow numbers and dashes tInputField.restrict = "0-9\\^";     // Allow numbers and caret marks 

If you want to escape the backslash character, you must precede it with three backslashes for a total of four backslashes:

 tInputField.restrict = "0-9\\\\"; // Allow numbers and backslashes 

The text input component has a restrict parameter that corresponds to the restrict property of text fields. You can assign a value to the parameter using the Component Inspector panel. The only difference between values assigned to the restrict property of a text field using ActionScript and the restrict parameter of a text input component using the Component Inspector panel is that when you want to specify a backslash character in the string for the parameter, you need to use only two consecutive backslashes rather than four.




Flash 8 Cookbook
Flash 8 Cookbook (Cookbooks (OReilly))
ISBN: 0596102402
EAN: 2147483647
Year: 2007
Pages: 336
Authors: Joey Lott

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net