Sample Name ---- Spark StringTools

Introduction:
The StringTools class provides locale-sensitve case conversion methods. This class is a wrapper class around the flash.globalization.StringTools. Therefore, the case conversion functionality is provided by the flash.globalization.StringTools class.
 
For more information about flash.globalization.StringTools, please visit:  http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/flash/globalization/StringTools.html

Usage of the sample code:
1. Select a Locale from the locale comboBox first. It will use en_US as the default choice.
2. Enter strings into the text input to be case converted. (There will be some initial text based on the locale setting)
3. The strings with lower case format and upper case format will be shown in below two text inputs at the same time.