Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package nl.application.view.generic.components.textfields {
- import nl.application.model.enum.Colors;
- import com.epologee.ui.text.FormattedTextField;
- import flash.text.TextFieldAutoSize;
- public class CABAutoTrimmingTextField extends FormattedTextField {
- private static const _MAGICAL_TEXTWIDTH_PADDING : Number = 3;
- //
- private var _width : Number;
- private var _originalText : String;
- public function CABAutoTrimmingTextField(inText : String, inFont : String, inWidth : Number, inFontSize : Number = 13, inColor : uint = Colors.BLACK, inBold : Boolean = false, inItalic : Object = false) {
- super(inFont, inFontSize, inColor, inBold, inItalic);
- width = inWidth;
- text = inText;
- }
- override public function set text(inText : String) : void {
- _originalText = inText;
- update();
- }
- override public function set width(value : Number) : void {
- _width = value;
- update();
- }
- private function update() : void {
- if (!_width || !_originalText) return;
- autoSize = TextFieldAutoSize.NONE;
- wordWrap = false;
- multiline = false;
- super.width = _width;
- super.text = _originalText;
- var trimLength : int = text.length;
- var emergencyHandbrake : int = 100;
- while (textWidth + _MAGICAL_TEXTWIDTH_PADDING > width && emergencyHandbrake > 0) {
- --trimLength;
- --emergencyHandbrake;
- super.text = _originalText.substr(0, trimLength) + "...";
- }
- debug(_originalText, _width);
- autoSize = TextFieldAutoSize.LEFT;
- }
- }
- }
Add Comment
Please, Sign In to add comment