topical media & game development

talk show tell print

lib-flex-animation-code-10-caurina-transitions-properties-TextShortcuts.ax

lib-flex-animation-code-10-caurina-transitions-properties-TextShortcuts.ax (swf ) [ flash ] flex


  package caurina.transitions.properties {
  
          
properties.@ax-lib-flex-animation-code-10-caurina-transitions-properties-TextShortcuts Special properties for the Tweener class to handle MovieClip filters The function names are strange/inverted because it makes for easier debugging (alphabetic order). They're only for internal use (on this class) anyways. @author Zeh Fernando, Nate Chatellier, Arthur Debert @version 1.0.0

  
  
          import caurina.transitions.Tweener;
          import caurina.transitions.AuxFunctions;
  
          import flash.text.TextFormat;
  
          public class @ax-lib-flex-animation-code-10-caurina-transitions-properties-TextShortcuts {
  
                  
There's no constructor.

  
                  public function @ax-lib-flex-animation-code-10-caurina-transitions-properties-TextShortcuts () {
                          trace ("This is an static class and should not be instantiated.")
                  }
  
                  
Registers all the special properties to the Tweener class, so the Tweener knows what to do with them.

  
                  public static function init(): void {
                          // Normal properties
                          Tweener.registerSpecialProperty("_text", _text_get, _text_set, null, _text_preProcess);
          //                Tweener.registerSpecialPropertyModifier("_text", _text_modifier, _text_get);
  
                          // TextFormat-based properties
                          Tweener.registerSpecialPropertySplitter("_text_color",                _generic_color_splitter, ["_text_color_r", "_text_color_g", "_text_color_b"]);
                          Tweener.registerSpecialProperty("_text_color_r",                        _textFormat_property_get,        _textFormat_property_set,        ["color", true, "r"]);
                          Tweener.registerSpecialProperty("_text_color_g",                        _textFormat_property_get,        _textFormat_property_set,        ["color", true, "g"]);
                          Tweener.registerSpecialProperty("_text_color_b",                        _textFormat_property_get,        _textFormat_property_set,        ["color", true, "b"]);
                          Tweener.registerSpecialProperty("_text_indent",                                _textFormat_property_get,        _textFormat_property_set,        ["indent"]);
                          Tweener.registerSpecialProperty("_text_leading",                        _textFormat_property_get,        _textFormat_property_set,        ["leading"]);
                          Tweener.registerSpecialProperty("_text_leftMargin",                        _textFormat_property_get,        _textFormat_property_set,        ["leftMargin"]);
                          Tweener.registerSpecialProperty("_text_letterSpacing",                _textFormat_property_get,        _textFormat_property_set,        ["letterSpacing"]);
                          Tweener.registerSpecialProperty("_text_rightMargin",                _textFormat_property_get,        _textFormat_property_set,        ["rightMargin"]);
                          Tweener.registerSpecialProperty("_text_size",                                _textFormat_property_get,        _textFormat_property_set,        ["size"]);
  
                  }
  
                  // ==================================================================================================================================
                  // NORMAL SPECIAL PROPERTY functions ------------------------------------------------------------------------------------------------
  
                  // ----------------------------------------------------------------------------------------------------------------------------------
                  // _text
  
                  
Returns the current frame number from the movieclip timeline @param p_obj Object MovieClip object @return Number The current frame

  
                  public static function _text_get (p_obj:Object, p_parameters:Array, p_extra:Object = null):Number {
                          //return p_obj._currentFrame;
                          return -p_obj.text.length;
                  }
  
                  
Sets the timeline frame @param p_obj Object MovieClip object @param p_value Number New frame number

  
                  public static function _text_set (p_obj:Object, p_value:Number, p_parameters:Array, p_extra:Object = null): void {
                          //p_obj.gotoAndStop(Math.round(p_value));
                          //p_obj.text =
                          if (p_value < 0) {
                                  // Old text
                                  p_obj.text = p_extra.oldText.substr(0, -Math.round(p_value));
                          } else {
                                  // New text
                                  p_obj.text = p_extra.newText.substr(0, Math.round(p_value));
                          }
                  }
  
                  public static function _text_preProcess (p_obj:Object, p_parameters:Array, p_originalValueComplete:Object, p_extra:Object): Number {
                          p_extra.oldText = p_obj.text;
                          p_extra.newText = p_originalValueComplete;
                          return p_extra.newText.length;
                  }
  
                  // ==================================================================================================================================
                  // PROPERTY GROUPING/SPLITTING functions --------------------------------------------------------------------------------------------
  
                  // ----------------------------------------------------------------------------------------------------------------------------------
                  // generic splitters
  
                  
A generic color splitter - from 0xrrggbb to r, g, b with the name of the parameters passed @param p_value Number The original _color value @return Array An array containing the .name and .value of all new properties

  
                  public static function _generic_color_splitter (p_value:Number, p_parameters:Array):Array {
                          var nArray:Array = new Array();
                          nArray.push({name:p_parameters[0], value:AuxFunctions.numberToR(p_value)});
                          nArray.push({name:p_parameters[1], value:AuxFunctions.numberToG(p_value)});
                          nArray.push({name:p_parameters[2], value:AuxFunctions.numberToB(p_value)});
                          return nArray;
                  }
  
                  // ==================================================================================================================================
                  // NORMAL SPECIAL PROPERTY functions ------------------------------------------------------------------------------------------------
  
                  
Generic function for the textformat properties

  
                  public static function _textFormat_property_get (p_obj:Object, p_parameters:Array, p_extra:Object = null):Number {
                          var fmt:TextFormat = p_obj.getTextFormat();
                          var propertyName:String = p_parameters[0];
                          var isColor:Boolean = p_parameters[1];
                          if (!isColor) {
                                  // Standard property
                                  return (fmt[propertyName]);
                          } else {
                                  // Composite, color channel
                                  var colorComponent:String = p_parameters[2];
                                  if (colorComponent == "r") return AuxFunctions.numberToR(fmt[propertyName]);
                                  if (colorComponent == "g") return AuxFunctions.numberToG(fmt[propertyName]);
                                  if (colorComponent == "b") return AuxFunctions.numberToB(fmt[propertyName]);
                          }
  
                          return NaN;
                  }
  
                  public static function _textFormat_property_set (p_obj:Object, p_value:Number, p_parameters:Array, p_extra:Object = null): void {
                          var fmt:TextFormat = p_obj.getTextFormat();
                          var propertyName:String = p_parameters[0];
                          var isColor:Boolean = p_parameters[1];
                          if (!isColor) {
                                  // Standard property
                                  fmt[propertyName] = p_value;
                          } else {
                                  // Composite, color channel
                                  var colorComponent:String = p_parameters[2];
                                  if (colorComponent == "r") fmt[propertyName] = (fmt[propertyName] & 0xffff) | (p_value << 16);
                                  if (colorComponent == "g") fmt[propertyName] = (fmt[propertyName] & 0xff00ff) | (p_value << 8);
                                  if (colorComponent == "b") fmt[propertyName] = (fmt[propertyName] & 0xffff00) | p_value;
                          }
                          
                          p_obj.defaultTextFormat = fmt;
                          p_obj.setTextFormat(fmt);
  
                  }
  
          }
  
  }
  


(C) Æliens 18/6/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.