I have been seeing some interesting behavior in a Flash/Flex app around use of international keyboards. For example, in one case I have extended the TextInput field to implement special behavior when the user presses the hyphen key ("-"). The custom behavior we have added to the text field is that whenever the hyphen key is pressed to automatically pad the numbers typed in previously with zeros out to 6 digits. So if the user types in "5-" the text input field will show "000005-".
On a French keyboard the hyphen character shares a key with the numeral 6, and in order to enter the numeral key the user must have CapsLock on. What we have seen is that when configured for a French locale and keyboard it appears that when CapsLock is on and the user types the 6/- key only once both the 6 and - characters are sent to the text field and what is displayed is: "000006-". This makes it impossible for the user to type in a value like "606060-". since the first 6 will cause the behavior described above.
I've read that doing this kind of processing in a TextEvent handler is one possible fix and I am going to try that. However, we are seeing many other issues related to differences between international keyboards. I was wondering of there are any general strategies for implementing consistent and correct support for international keyboards in Flash/Flex. Any ideas are welcome. Thanks.