| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /* */
- package elements.axis {
-
- import flash.display.Sprite;
- import flash.text.TextField;
- import flash.geom.Rectangle;
-
- public class AxisLabel extends TextField {
- public var xAdj:Number = 0;
- public var yAdj:Number = 0;
- public var leftOverhang:Number = 0;
- public var rightOverhang:Number = 0;
- public var xVal:Number = NaN;
- public var yVal:Number = NaN;
-
- public function AxisLabel() {}
-
- /**
- * Rotate the label and align it to the X Axis tick
- *
- * @param rotation
- */
- public function rotate_and_align( rotation:Number, align:String, parent:Sprite ): void
- {
- rotation = rotation % 360;
- if (rotation < 0) rotation += 360;
-
- var myright:Number = this.width * Math.cos(rotation * Math.PI / 180);
- var myleft:Number = this.height * Math.cos((90 - rotation) * Math.PI / 180);
- var mytop:Number = this.height * Math.sin((90 - rotation) * Math.PI / 180);
- var mybottom:Number = this.width * Math.sin(rotation * Math.PI / 180);
-
- if (((rotation % 90) == 0) || (align == "center"))
- {
- this.xAdj = (myleft - myright) / 2;
- }
- else
- {
- this.xAdj = (rotation < 180) ? myleft / 2 : -myright + (myleft / 2);
- }
- if (rotation > 90) {
- this.yAdj = -mytop;
- }
- if (rotation > 180) {
- this.yAdj = -mytop - mybottom;
- }
- if (rotation > 270) {
- this.yAdj = - mybottom;
- }
- this.rotation = rotation;
- var titleRect:Rectangle = this.getBounds(parent);
- this.leftOverhang = Math.abs(titleRect.x + this.xAdj);
- this.rightOverhang = Math.abs(titleRect.x + titleRect.width + this.xAdj);
- }
- }
- }
|