Section 1
//AuxFunctions (caurina.transitions.AuxFunctions)
package caurina.transitions {
public class AuxFunctions {
public static function concatObjects(... _args):Object{
var _local3:Object;
var _local5:String;
var _local2:Object = {};
var _local4:int;
while (_local4 < _args.length) {
_local3 = _args[_local4];
for (_local5 in _local3) {
if (_local3[_local5] == null){
delete _local2[_local5];
} else {
_local2[_local5] = _local3[_local5];
};
};
_local4++;
};
return (_local2);
}
public static function numberToG(_arg1:Number):Number{
return (((_arg1 & 0xFF00) >> 8));
}
public static function numberToR(_arg1:Number):Number{
return (((_arg1 & 0xFF0000) >> 16));
}
public static function isInArray(_arg1:String, _arg2:Array):Boolean{
var _local3:uint = _arg2.length;
var _local4:uint;
while (_local4 < _local3) {
if (_arg2[_local4] == _arg1){
return (true);
};
_local4++;
};
return (false);
}
public static function getObjectLength(_arg1:Object):uint{
var _local3:String;
var _local2:uint;
for (_local3 in _arg1) {
_local2++;
};
return (_local2);
}
public static function numberToB(_arg1:Number):Number{
return ((_arg1 & 0xFF));
}
}
}//package caurina.transitions
Section 2
//Equations (caurina.transitions.Equations)
package caurina.transitions {
public class Equations {
public function Equations(){
trace("Equations is a static class and should not be instantiated.");
}
public static function easeOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
if (_arg1 < (1 / 2.75)){
return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2));
};
if (_arg1 < (2 / 2.75)){
_arg1 = (_arg1 - (1.5 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2));
};
if (_arg1 < (2.5 / 2.75)){
_arg1 = (_arg1 - (2.25 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2));
};
_arg1 = (_arg1 - (2.625 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2));
}
public static function easeInOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN, _arg6:Number=NaN):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 == 2){
return ((_arg2 + _arg3));
};
if (!_arg6){
_arg6 = (_arg4 * (0.3 * 1.5));
};
if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){
_arg5 = _arg3;
_local7 = (_arg6 / 4);
} else {
_local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5)));
};
if (_arg1 < 1){
--_arg1;
return (((-0.5 * ((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6)))) + _arg2));
};
--_arg1;
return ((((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6))) * 0.5) + _arg3) + _arg2));
}
public static function easeInOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2));
};
--_arg1;
return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2));
}
public static function easeInOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg1 < (_arg4 / 2)){
return (((easeInBounce((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2));
};
return ((((easeOutBounce(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2));
}
public static function easeInOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN):Number{
if (!_arg5){
_arg5 = 1.70158;
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
_arg5 = (_arg5 * 1.525);
return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) - _arg5))) + _arg2));
};
_arg1 = (_arg1 - 2);
_arg5 = (_arg5 * 1.525);
return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 2)) + _arg2));
}
public static function easeOutInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutCubic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (easeInCubic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
public static function easeOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN):Number{
if (!_arg5){
_arg5 = 1.70158;
};
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 1)) + _arg2));
}
public static function easeInOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2));
}
public static function easeInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN):Number{
if (!_arg5){
_arg5 = 1.70158;
};
_arg1 = (_arg1 / _arg4);
return (((((_arg3 * _arg1) * _arg1) * (((_arg5 + 1) * _arg1) - _arg5)) + _arg2));
}
public static function easeInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeOutInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutQuint((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (easeInQuint(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
public static function easeOutInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutBounce((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (easeInBounce(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
public static function init():void{
Tweener.registerTransition("easenone", easeNone);
Tweener.registerTransition("linear", easeNone);
Tweener.registerTransition("easeinquad", easeInQuad);
Tweener.registerTransition("easeoutquad", easeOutQuad);
Tweener.registerTransition("easeinoutquad", easeInOutQuad);
Tweener.registerTransition("easeoutinquad", easeOutInQuad);
Tweener.registerTransition("easeincubic", easeInCubic);
Tweener.registerTransition("easeoutcubic", easeOutCubic);
Tweener.registerTransition("easeinoutcubic", easeInOutCubic);
Tweener.registerTransition("easeoutincubic", easeOutInCubic);
Tweener.registerTransition("easeinquart", easeInQuart);
Tweener.registerTransition("easeoutquart", easeOutQuart);
Tweener.registerTransition("easeinoutquart", easeInOutQuart);
Tweener.registerTransition("easeoutinquart", easeOutInQuart);
Tweener.registerTransition("easeinquint", easeInQuint);
Tweener.registerTransition("easeoutquint", easeOutQuint);
Tweener.registerTransition("easeinoutquint", easeInOutQuint);
Tweener.registerTransition("easeoutinquint", easeOutInQuint);
Tweener.registerTransition("easeinsine", easeInSine);
Tweener.registerTransition("easeoutsine", easeOutSine);
Tweener.registerTransition("easeinoutsine", easeInOutSine);
Tweener.registerTransition("easeoutinsine", easeOutInSine);
Tweener.registerTransition("easeincirc", easeInCirc);
Tweener.registerTransition("easeoutcirc", easeOutCirc);
Tweener.registerTransition("easeinoutcirc", easeInOutCirc);
Tweener.registerTransition("easeoutincirc", easeOutInCirc);
Tweener.registerTransition("easeinexpo", easeInExpo);
Tweener.registerTransition("easeoutexpo", easeOutExpo);
Tweener.registerTransition("easeinoutexpo", easeInOutExpo);
Tweener.registerTransition("easeoutinexpo", easeOutInExpo);
Tweener.registerTransition("easeinelastic", easeInElastic);
Tweener.registerTransition("easeoutelastic", easeOutElastic);
Tweener.registerTransition("easeinoutelastic", easeInOutElastic);
Tweener.registerTransition("easeoutinelastic", easeOutInElastic);
Tweener.registerTransition("easeinback", easeInBack);
Tweener.registerTransition("easeoutback", easeOutBack);
Tweener.registerTransition("easeinoutback", easeInOutBack);
Tweener.registerTransition("easeoutinback", easeOutInBack);
Tweener.registerTransition("easeinbounce", easeInBounce);
Tweener.registerTransition("easeoutbounce", easeOutBounce);
Tweener.registerTransition("easeinoutbounce", easeInOutBounce);
Tweener.registerTransition("easeoutinbounce", easeOutInBounce);
}
public static function easeOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (((_arg1)==_arg4) ? (_arg2 + _arg3) : (((_arg3 * 1.001) * (-(Math.pow(2, ((-10 * _arg1) / _arg4))) + 1)) + _arg2));
}
public static function easeOutInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutBack((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInBack(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (((_arg1)==0) ? _arg2 : (((_arg3 * Math.pow(2, (10 * ((_arg1 / _arg4) - 1)))) + _arg2) - (_arg3 * 0.001)));
}
public static function easeInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeInOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((-(_arg3) / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) + 1)) + _arg2));
}
public static function easeInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((_arg3 * _arg1) * _arg1) + _arg2));
}
public static function easeInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (((_arg3 - easeOutBounce((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2));
}
public static function easeOutInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutExpo((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (easeInExpo(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
public static function easeOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((-(_arg3) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 1)) + _arg2));
}
public static function easeInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg3) + _arg2));
}
public static function easeInOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((-(_arg3) / 2) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 2)) + _arg2));
}
public static function easeOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
public static function easeOutInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN, _arg6:Number=NaN):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutElastic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5, _arg6));
};
return (easeInElastic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5, _arg6));
}
public static function easeInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN, _arg6:Number=NaN):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if (_arg1 == 1){
return ((_arg2 + _arg3));
};
if (!_arg6){
_arg6 = (_arg4 * 0.3);
};
if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){
_arg5 = _arg3;
_local7 = (_arg6 / 4);
} else {
_local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5)));
};
--_arg1;
return ((-(((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6)))) + _arg2));
}
public static function easeOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeOutInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutQuad((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (easeInQuad(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
public static function easeOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2));
}
public static function easeInOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (((_arg1 * _arg1) * _arg1) + 2)) + _arg2));
}
public static function easeInOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2));
}
public static function easeInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return (((-(_arg3) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2));
}
public static function easeOutInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutSine((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (easeInSine(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
public static function easeInOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg1 == 0){
return (_arg2);
};
if (_arg1 == _arg4){
return ((_arg2 + _arg3));
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((_arg3 / 2) * Math.pow(2, (10 * (_arg1 - 1)))) + _arg2) - (_arg3 * 0.0005)));
};
--_arg1;
return (((((_arg3 / 2) * 1.0005) * (-(Math.pow(2, (-10 * _arg1))) + 2)) + _arg2));
}
public static function easeOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN, _arg6:Number=NaN):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if (_arg1 == 1){
return ((_arg2 + _arg3));
};
if (!_arg6){
_arg6 = (_arg4 * 0.3);
};
if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){
_arg5 = _arg3;
_local7 = (_arg6 / 4);
} else {
_local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5)));
};
return (((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6))) + _arg3) + _arg2));
}
public static function easeOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2));
}
public static function easeOutInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutQuart((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (easeInQuart(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
public static function easeOutInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutCirc((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (easeInCirc(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
}
}//package caurina.transitions
Section 3
//PropertyInfoObj (caurina.transitions.PropertyInfoObj)
package caurina.transitions {
public class PropertyInfoObj {
public var modifierParameters:Array;
public var valueComplete:Number;
public var modifierFunction:Function;
public var hasModifier:Boolean;
public var valueStart:Number;
public function PropertyInfoObj(_arg1:Number, _arg2:Number, _arg3:Function, _arg4:Array){
valueStart = _arg1;
valueComplete = _arg2;
hasModifier = Boolean(_arg3);
modifierFunction = _arg3;
modifierParameters = _arg4;
}
public function toString():String{
var _local1 = "\n[PropertyInfoObj ";
_local1 = (_local1 + ("valueStart:" + String(valueStart)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("valueComplete:" + String(valueComplete)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("modifierFunction:" + String(modifierFunction)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("modifierParameters:" + String(modifierParameters)));
_local1 = (_local1 + "]\n");
return (_local1);
}
public function clone():PropertyInfoObj{
var _local1:PropertyInfoObj = new PropertyInfoObj(valueStart, valueComplete, modifierFunction, modifierParameters);
return (_local1);
}
}
}//package caurina.transitions
Section 4
//SpecialPropertiesDefault (caurina.transitions.SpecialPropertiesDefault)
package caurina.transitions {
import flash.geom.*;
import flash.filters.*;
import flash.media.*;
public class SpecialPropertiesDefault {
public function SpecialPropertiesDefault(){
trace("SpecialProperties is a static class and should not be instantiated.");
}
public static function _sound_volume_get(_arg1:Object):Number{
return (_arg1.soundTransform.volume);
}
public static function _color_splitter(_arg1, _arg2:Array):Array{
var _local3:Array = new Array();
if (_arg1 == null){
_local3.push({name:"_color_ra", value:1});
_local3.push({name:"_color_rb", value:0});
_local3.push({name:"_color_ga", value:1});
_local3.push({name:"_color_gb", value:0});
_local3.push({name:"_color_ba", value:1});
_local3.push({name:"_color_bb", value:0});
} else {
_local3.push({name:"_color_ra", value:0});
_local3.push({name:"_color_rb", value:AuxFunctions.numberToR(_arg1)});
_local3.push({name:"_color_ga", value:0});
_local3.push({name:"_color_gb", value:AuxFunctions.numberToG(_arg1)});
_local3.push({name:"_color_ba", value:0});
_local3.push({name:"_color_bb", value:AuxFunctions.numberToB(_arg1)});
};
return (_local3);
}
public static function frame_get(_arg1:Object):Number{
return (_arg1.currentFrame);
}
public static function _sound_pan_get(_arg1:Object):Number{
return (_arg1.soundTransform.pan);
}
public static function _color_property_get(_arg1:Object, _arg2:Array):Number{
return (_arg1.transform.colorTransform[_arg2[0]]);
}
public static function _sound_volume_set(_arg1:Object, _arg2:Number):void{
var _local3:SoundTransform = _arg1.soundTransform;
_local3.volume = _arg2;
_arg1.soundTransform = _local3;
}
public static function _autoAlpha_get(_arg1:Object):Number{
return (_arg1.alpha);
}
public static function _filter_splitter(_arg1:BitmapFilter, _arg2:Array):Array{
var _local3:Array = new Array();
if ((_arg1 is BlurFilter)){
_local3.push({name:"_blur_blurX", value:BlurFilter(_arg1).blurX});
_local3.push({name:"_blur_blurY", value:BlurFilter(_arg1).blurY});
_local3.push({name:"_blur_quality", value:BlurFilter(_arg1).quality});
} else {
trace("??");
};
return (_local3);
}
public static function init():void{
Tweener.registerSpecialProperty("_frame", frame_get, frame_set);
Tweener.registerSpecialProperty("_sound_volume", _sound_volume_get, _sound_volume_set);
Tweener.registerSpecialProperty("_sound_pan", _sound_pan_get, _sound_pan_set);
Tweener.registerSpecialProperty("_color_ra", _color_property_get, _color_property_set, ["redMultiplier"]);
Tweener.registerSpecialProperty("_color_rb", _color_property_get, _color_property_set, ["redOffset"]);
Tweener.registerSpecialProperty("_color_ga", _color_property_get, _color_property_set, ["greenMultiplier"]);
Tweener.registerSpecialProperty("_color_gb", _color_property_get, _color_property_set, ["greenOffset"]);
Tweener.registerSpecialProperty("_color_ba", _color_property_get, _color_property_set, ["blueMultiplier"]);
Tweener.registerSpecialProperty("_color_bb", _color_property_get, _color_property_set, ["blueOffset"]);
Tweener.registerSpecialProperty("_color_aa", _color_property_get, _color_property_set, ["alphaMultiplier"]);
Tweener.registerSpecialProperty("_color_ab", _color_property_get, _color_property_set, ["alphaOffset"]);
Tweener.registerSpecialProperty("_autoAlpha", _autoAlpha_get, _autoAlpha_set);
Tweener.registerSpecialPropertySplitter("_color", _color_splitter);
Tweener.registerSpecialPropertySplitter("_colorTransform", _colorTransform_splitter);
Tweener.registerSpecialPropertySplitter("_scale", _scale_splitter);
Tweener.registerSpecialProperty("_blur_blurX", _filter_property_get, _filter_property_set, [BlurFilter, "blurX"]);
Tweener.registerSpecialProperty("_blur_blurY", _filter_property_get, _filter_property_set, [BlurFilter, "blurY"]);
Tweener.registerSpecialProperty("_blur_quality", _filter_property_get, _filter_property_set, [BlurFilter, "quality"]);
Tweener.registerSpecialPropertySplitter("_filter", _filter_splitter);
Tweener.registerSpecialPropertyModifier("_bezier", _bezier_modifier, _bezier_get);
}
public static function _sound_pan_set(_arg1:Object, _arg2:Number):void{
var _local3:SoundTransform = _arg1.soundTransform;
_local3.pan = _arg2;
_arg1.soundTransform = _local3;
}
public static function _color_property_set(_arg1:Object, _arg2:Number, _arg3:Array):void{
var _local4:ColorTransform = _arg1.transform.colorTransform;
_local4[_arg3[0]] = _arg2;
_arg1.transform.colorTransform = _local4;
}
public static function _filter_property_get(_arg1:Object, _arg2:Array):Number{
var _local4:uint;
var _local7:Object;
var _local3:Array = _arg1.filters;
var _local5:Object = _arg2[0];
var _local6:String = _arg2[1];
_local4 = 0;
while (_local4 < _local3.length) {
if ((((_local3[_local4] is BlurFilter)) && ((_local5 == BlurFilter)))){
return (_local3[_local4][_local6]);
};
_local4++;
};
switch (_local5){
case BlurFilter:
_local7 = {blurX:0, blurY:0, quality:NaN};
break;
};
return (_local7[_local6]);
}
public static function _bezier_get(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Array):Number{
var _local5:uint;
var _local6:Number;
var _local7:Number;
var _local8:Number;
if (_arg4.length == 1){
return ((_arg1 + (_arg3 * (((2 * (1 - _arg3)) * (_arg4[0] - _arg1)) + (_arg3 * (_arg2 - _arg1))))));
};
_local5 = Math.floor((_arg3 * _arg4.length));
_local6 = ((_arg3 - (_local5 * (1 / _arg4.length))) * _arg4.length);
if (_local5 == 0){
_local7 = _arg1;
_local8 = ((_arg4[0] + _arg4[1]) / 2);
} else {
if (_local5 == (_arg4.length - 1)){
_local7 = ((_arg4[(_local5 - 1)] + _arg4[_local5]) / 2);
_local8 = _arg2;
} else {
_local7 = ((_arg4[(_local5 - 1)] + _arg4[_local5]) / 2);
_local8 = ((_arg4[_local5] + _arg4[(_local5 + 1)]) / 2);
};
};
return ((_local7 + (_local6 * (((2 * (1 - _local6)) * (_arg4[_local5] - _local7)) + (_local6 * (_local8 - _local7))))));
}
public static function frame_set(_arg1:Object, _arg2:Number):void{
_arg1.gotoAndStop(Math.round(_arg2));
}
public static function _filter_property_set(_arg1:Object, _arg2:Number, _arg3:Array):void{
var _local5:uint;
var _local8:BitmapFilter;
var _local4:Array = _arg1.filters;
var _local6:Object = _arg3[0];
var _local7:String = _arg3[1];
_local5 = 0;
while (_local5 < _local4.length) {
if ((((_local4[_local5] is BlurFilter)) && ((_local6 == BlurFilter)))){
_local4[_local5][_local7] = _arg2;
_arg1.filters = _local4;
return;
};
_local5++;
};
if (_local4 == null){
_local4 = new Array();
};
switch (_local6){
case BlurFilter:
_local8 = new BlurFilter(0, 0);
break;
};
_local8[_local7] = _arg2;
_local4.push(_local8);
_arg1.filters = _local4;
}
public static function _autoAlpha_set(_arg1:Object, _arg2:Number):void{
_arg1.alpha = _arg2;
_arg1.visible = (_arg2 > 0);
}
public static function _scale_splitter(_arg1:Number, _arg2:Array):Array{
var _local3:Array = new Array();
_local3.push({name:"scaleX", value:_arg1});
_local3.push({name:"scaleY", value:_arg1});
return (_local3);
}
public static function _colorTransform_splitter(_arg1, _arg2:Array):Array{
var _local3:Array = new Array();
if (_arg1 == null){
_local3.push({name:"_color_ra", value:1});
_local3.push({name:"_color_rb", value:0});
_local3.push({name:"_color_ga", value:1});
_local3.push({name:"_color_gb", value:0});
_local3.push({name:"_color_ba", value:1});
_local3.push({name:"_color_bb", value:0});
} else {
if (_arg1.ra != undefined){
_local3.push({name:"_color_ra", value:_arg1.ra});
};
if (_arg1.rb != undefined){
_local3.push({name:"_color_rb", value:_arg1.rb});
};
if (_arg1.ga != undefined){
_local3.push({name:"_color_ba", value:_arg1.ba});
};
if (_arg1.gb != undefined){
_local3.push({name:"_color_bb", value:_arg1.bb});
};
if (_arg1.ba != undefined){
_local3.push({name:"_color_ga", value:_arg1.ga});
};
if (_arg1.bb != undefined){
_local3.push({name:"_color_gb", value:_arg1.gb});
};
if (_arg1.aa != undefined){
_local3.push({name:"_color_aa", value:_arg1.aa});
};
if (_arg1.ab != undefined){
_local3.push({name:"_color_ab", value:_arg1.ab});
};
};
return (_local3);
}
public static function _bezier_modifier(_arg1):Array{
var _local3:Array;
var _local4:uint;
var _local5:String;
var _local2:Array = [];
if ((_arg1 is Array)){
_local3 = _arg1;
} else {
_local3 = [_arg1];
};
var _local6:Object = {};
_local4 = 0;
while (_local4 < _local3.length) {
for (_local5 in _local3[_local4]) {
if (_local6[_local5] == undefined){
_local6[_local5] = [];
};
_local6[_local5].push(_local3[_local4][_local5]);
};
_local4++;
};
for (_local5 in _local6) {
_local2.push({name:_local5, parameters:_local6[_local5]});
};
return (_local2);
}
}
}//package caurina.transitions
Section 5
//SpecialProperty (caurina.transitions.SpecialProperty)
package caurina.transitions {
public class SpecialProperty {
public var parameters:Array;
public var getValue:Function;
public var setValue:Function;
public function SpecialProperty(_arg1:Function, _arg2:Function, _arg3:Array=null){
getValue = _arg1;
setValue = _arg2;
parameters = _arg3;
}
public function toString():String{
var _local1 = "";
_local1 = (_local1 + "[SpecialProperty ");
_local1 = (_local1 + ("getValue:" + String(getValue)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("setValue:" + String(setValue)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("parameters:" + String(parameters)));
_local1 = (_local1 + "]");
return (_local1);
}
}
}//package caurina.transitions
Section 6
//SpecialPropertyModifier (caurina.transitions.SpecialPropertyModifier)
package caurina.transitions {
public class SpecialPropertyModifier {
public var getValue:Function;
public var modifyValues:Function;
public function SpecialPropertyModifier(_arg1:Function, _arg2:Function){
modifyValues = _arg1;
getValue = _arg2;
}
public function toString():String{
var _local1 = "";
_local1 = (_local1 + "[SpecialPropertyModifier ");
_local1 = (_local1 + ("modifyValues:" + String(modifyValues)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("getValue:" + String(getValue)));
_local1 = (_local1 + "]");
return (_local1);
}
}
}//package caurina.transitions
Section 7
//SpecialPropertySplitter (caurina.transitions.SpecialPropertySplitter)
package caurina.transitions {
public class SpecialPropertySplitter {
public var parameters:Array;
public var splitValues:Function;
public function SpecialPropertySplitter(_arg1:Function, _arg2:Array){
splitValues = _arg1;
}
public function toString():String{
var _local1 = "";
_local1 = (_local1 + "[SpecialPropertySplitter ");
_local1 = (_local1 + ("splitValues:" + String(splitValues)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("parameters:" + String(parameters)));
_local1 = (_local1 + "]");
return (_local1);
}
}
}//package caurina.transitions
Section 8
//Tweener (caurina.transitions.Tweener)
package caurina.transitions {
import flash.events.*;
import flash.utils.*;
import flash.display.*;
public class Tweener {
private static var _timeScale:Number = 1;
private static var _specialPropertySplitterList:Object;
private static var _engineExists:Boolean = false;
private static var _specialPropertyModifierList:Object;
private static var _currentTime:Number;
private static var _tweenList:Array;
private static var _specialPropertyList:Object;
private static var _transitionList:Object;
private static var _inited:Boolean = false;
private static var __tweener_controller__:MovieClip;
public function Tweener(){
trace("Tweener is a static class and should not be instantiated.");
}
public static function registerSpecialPropertyModifier(_arg1:String, _arg2:Function, _arg3:Function):void{
if (!_inited){
init();
};
var _local4:SpecialPropertyModifier = new SpecialPropertyModifier(_arg2, _arg3);
_specialPropertyModifierList[_arg1] = _local4;
}
public static function registerSpecialProperty(_arg1:String, _arg2:Function, _arg3:Function, _arg4:Array=null):void{
if (!_inited){
init();
};
var _local5:SpecialProperty = new SpecialProperty(_arg2, _arg3, _arg4);
_specialPropertyList[_arg1] = _local5;
}
public static function addCaller(_arg1:Object=null, _arg2:Object=null):Boolean{
var _local5:Number;
var _local6:Number;
var _local10:Function;
var _local11:TweenListObj;
var _local12:Number;
var _local13:String;
if ((((arguments.length < 2)) || ((arguments[0] == undefined)))){
return (false);
};
var _local4:Array = new Array();
if ((arguments[0] is Array)){
_local5 = 0;
while (_local5 < arguments[0].length) {
_local4.push(arguments[0][_local5]);
_local5++;
};
} else {
_local5 = 0;
while (_local5 < (arguments.length - 1)) {
_local4.push(arguments[_local5]);
_local5++;
};
};
var _local7:Object = arguments[(arguments.length - 1)];
if (!_inited){
init();
};
if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){
startEngine();
};
var _local8:Number = (isNaN(_local7.time)) ? 0 : _local7.time;
var _local9:Number = (isNaN(_local7.delay)) ? 0 : _local7.delay;
if (typeof(_local7.transition) == "string"){
_local13 = _local7.transition.toLowerCase();
_local10 = _transitionList[_local13];
} else {
_local10 = _local7.transition;
};
if (!Boolean(_local10)){
_local10 = _transitionList["easeoutexpo"];
};
_local5 = 0;
while (_local5 < _local4.length) {
_local11 = new TweenListObj(_local4[_local5], (_currentTime + ((_local9 * 1000) / _timeScale)), (_currentTime + (((_local9 * 1000) + (_local8 * 1000)) / _timeScale)), (_local7.useFrames == true), _local10);
_local11.properties = null;
_local11.onStart = _local7.onStart;
_local11.onUpdate = _local7.onUpdate;
_local11.onComplete = _local7.onComplete;
_local11.onOverwrite = _local7.onOverwrite;
_local11.onStartParams = _local7.onStartParams;
_local11.onUpdateParams = _local7.onUpdateParams;
_local11.onCompleteParams = _local7.onCompleteParams;
_local11.onOverwriteParams = _local7.onOverwriteParams;
_local11.isCaller = true;
_local11.count = _local7.count;
_local11.waitFrames = _local7.waitFrames;
_tweenList.push(_local11);
if ((((_local8 == 0)) && ((_local9 == 0)))){
_local12 = (_tweenList.length - 1);
updateTweenByIndex(_local12);
removeTweenByIndex(_local12);
};
_local5++;
};
return (true);
}
public static function init(_arg1=null):void{
_inited = true;
_transitionList = new Object();
Equations.init();
_specialPropertyList = new Object();
_specialPropertyModifierList = new Object();
_specialPropertySplitterList = new Object();
SpecialPropertiesDefault.init();
}
private static function updateTweens():Boolean{
var _local1:int;
if (_tweenList.length == 0){
return (false);
};
_local1 = 0;
while (_local1 < _tweenList.length) {
if ((((_tweenList[_local1] == undefined)) || (!(_tweenList[_local1].isPaused)))){
if (!updateTweenByIndex(_local1)){
removeTweenByIndex(_local1);
};
if (_tweenList[_local1] == null){
removeTweenByIndex(_local1, true);
_local1--;
};
};
_local1++;
};
return (true);
}
public static function removeTweens(_arg1:Object, ... _args):Boolean{
var _local4:uint;
var _local3:Array = new Array();
_local4 = 0;
while (_local4 < _args.length) {
if ((((typeof(_args[_local4]) == "string")) && (!(AuxFunctions.isInArray(_args[_local4], _local3))))){
_local3.push(_args[_local4]);
};
_local4++;
};
return (affectTweens(removeTweenByIndex, _arg1, _local3));
}
public static function pauseAllTweens():Boolean{
var _local2:uint;
if (!Boolean(_tweenList)){
return (false);
};
var _local1:Boolean;
_local2 = 0;
while (_local2 < _tweenList.length) {
pauseTweenByIndex(_local2);
_local1 = true;
_local2++;
};
return (_local1);
}
public static function splitTweens(_arg1:Number, _arg2:Array):uint{
var _local5:uint;
var _local6:String;
var _local7:Boolean;
var _local3:TweenListObj = _tweenList[_arg1];
var _local4:TweenListObj = _local3.clone(false);
_local5 = 0;
while (_local5 < _arg2.length) {
_local6 = _arg2[_local5];
if (Boolean(_local3.properties[_local6])){
_local3.properties[_local6] = undefined;
delete _local3.properties[_local6];
};
_local5++;
};
for (_local6 in _local4.properties) {
_local7 = false;
_local5 = 0;
while (_local5 < _arg2.length) {
if (_arg2[_local5] == _local6){
_local7 = true;
break;
};
_local5++;
};
if (!_local7){
_local4.properties[_local6] = undefined;
delete _local4.properties[_local6];
};
};
_tweenList.push(_local4);
return ((_tweenList.length - 1));
}
public static function resumeTweenByIndex(_arg1:Number):Boolean{
var _local2:TweenListObj = _tweenList[_arg1];
if ((((_local2 == null)) || (!(_local2.isPaused)))){
return (false);
};
_local2.timeStart = (_local2.timeStart + (_currentTime - _local2.timePaused));
_local2.timeComplete = (_local2.timeComplete + (_currentTime - _local2.timePaused));
_local2.timePaused = undefined;
_local2.isPaused = false;
return (true);
}
public static function debug_getList():String{
var _local2:uint;
var _local3:uint;
var _local1 = "";
_local2 = 0;
while (_local2 < _tweenList.length) {
_local1 = (_local1 + (("[" + _local2) + "] ::\n"));
_local3 = 0;
while (_local3 < _tweenList[_local2].properties.length) {
_local1 = (_local1 + ((((" " + _tweenList[_local2].properties[_local3].name) + " -> ") + _tweenList[_local2].properties[_local3].valueComplete) + "\n"));
_local3++;
};
_local2++;
};
return (_local1);
}
public static function getVersion():String{
return ("AS3 1.26.62");
}
public static function onEnterFrame(_arg1:Event):void{
updateTime();
var _local2:Boolean;
_local2 = updateTweens();
if (!_local2){
stopEngine();
};
}
public static function updateTime():void{
_currentTime = getTimer();
}
private static function updateTweenByIndex(_arg1:Number):Boolean{
var tTweening:TweenListObj;
var mustUpdate:Boolean;
var nv:Number;
var t:Number;
var b:Number;
var c:Number;
var d:Number;
var pName:String;
var tScope:Object;
var tProperty:Object;
var pv:Number;
var i = _arg1;
tTweening = _tweenList[i];
if ((((tTweening == null)) || (!(Boolean(tTweening.scope))))){
return (false);
};
var isOver:Boolean;
if (_currentTime >= tTweening.timeStart){
tScope = tTweening.scope;
if (tTweening.isCaller){
do {
t = (((tTweening.timeComplete - tTweening.timeStart) / tTweening.count) * (tTweening.timesCalled + 1));
b = tTweening.timeStart;
c = (tTweening.timeComplete - tTweening.timeStart);
d = (tTweening.timeComplete - tTweening.timeStart);
nv = tTweening.transition(t, b, c, d);
} while (!(_currentTime >= nv));
} else {
mustUpdate = (((((tTweening.skipUpdates < 1)) || (!(tTweening.skipUpdates)))) || ((tTweening.updatesSkipped >= tTweening.skipUpdates)));
if (_currentTime >= tTweening.timeComplete){
isOver = true;
mustUpdate = true;
};
if (!tTweening.hasStarted){
if (Boolean(tTweening.onStart)){
try {
tTweening.onStart.apply(tScope, tTweening.onStartParams);
} catch(e:Error) {
handleError(tTweening, e, "onStart");
};
};
for (pName in tTweening.properties) {
pv = getPropertyValue(tScope, pName);
tTweening.properties[pName].valueStart = (isNaN(pv)) ? tTweening.properties[pName].valueComplete : pv;
};
mustUpdate = true;
tTweening.hasStarted = true;
};
if (mustUpdate){
for (pName in tTweening.properties) {
tProperty = tTweening.properties[pName];
if (isOver){
nv = tProperty.valueComplete;
} else {
if (tProperty.hasModifier){
t = (_currentTime - tTweening.timeStart);
d = (tTweening.timeComplete - tTweening.timeStart);
nv = tTweening.transition(t, 0, 1, d);
nv = tProperty.modifierFunction(tProperty.valueStart, tProperty.valueComplete, nv, tProperty.modifierParameters);
} else {
t = (_currentTime - tTweening.timeStart);
b = tProperty.valueStart;
c = (tProperty.valueComplete - tProperty.valueStart);
d = (tTweening.timeComplete - tTweening.timeStart);
nv = tTweening.transition(t, b, c, d);
};
};
if (tTweening.rounded){
nv = Math.round(nv);
};
setPropertyValue(tScope, pName, nv);
};
tTweening.updatesSkipped = 0;
if (Boolean(tTweening.onUpdate)){
try {
tTweening.onUpdate.apply(tScope, tTweening.onUpdateParams);
} catch(e:Error) {
handleError(tTweening, e, "onUpdate");
};
};
} else {
tTweening.updatesSkipped++;
};
};
if (((isOver) && (Boolean(tTweening.onComplete)))){
try {
tTweening.onComplete.apply(tScope, tTweening.onCompleteParams);
} catch(e:Error) {
handleError(tTweening, e, "onComplete");
};
};
return (!(isOver));
};
return (true);
}
public static function setTimeScale(_arg1:Number):void{
var _local2:Number;
if (isNaN(_arg1)){
_arg1 = 1;
};
if (_arg1 < 1E-5){
_arg1 = 1E-5;
};
if (_arg1 != _timeScale){
if (_tweenList != null){
_local2 = 0;
while (_local2 < _tweenList.length) {
_tweenList[_local2].timeStart = (_currentTime - (((_currentTime - _tweenList[_local2].timeStart) * _timeScale) / _arg1));
_tweenList[_local2].timeComplete = (_currentTime - (((_currentTime - _tweenList[_local2].timeComplete) * _timeScale) / _arg1));
if (_tweenList[_local2].timePaused != undefined){
_tweenList[_local2].timePaused = (_currentTime - (((_currentTime - _tweenList[_local2].timePaused) * _timeScale) / _arg1));
};
_local2++;
};
};
_timeScale = _arg1;
};
}
public static function resumeAllTweens():Boolean{
var _local2:uint;
if (!Boolean(_tweenList)){
return (false);
};
var _local1:Boolean;
_local2 = 0;
while (_local2 < _tweenList.length) {
resumeTweenByIndex(_local2);
_local1 = true;
_local2++;
};
return (_local1);
}
private static function handleError(_arg1:TweenListObj, _arg2:Error, _arg3:String):void{
var pTweening = _arg1;
var pError = _arg2;
var pCallBackName = _arg3;
if (((Boolean(pTweening.onError)) && ((pTweening.onError is Function)))){
try {
pTweening.onError.apply(pTweening.scope, [pTweening.scope, pError]);
} catch(metaError:Error) {
trace("## [Tweener] Error:", pTweening.scope, "raised an error while executing the 'onError' handler. Original error:\n", pError.getStackTrace(), "\nonError error:", metaError.getStackTrace());
};
} else {
if (!Boolean(pTweening.onError)){
trace("## [Tweener] Error: :", pTweening.scope, (("raised an error while executing the'" + pCallBackName) + "'handler. \n"), pError.getStackTrace());
};
};
}
private static function startEngine():void{
_engineExists = true;
_tweenList = new Array();
__tweener_controller__ = new MovieClip();
__tweener_controller__.addEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame);
updateTime();
}
public static function removeAllTweens():Boolean{
var _local2:uint;
if (!Boolean(_tweenList)){
return (false);
};
var _local1:Boolean;
_local2 = 0;
while (_local2 < _tweenList.length) {
removeTweenByIndex(_local2);
_local1 = true;
_local2++;
};
return (_local1);
}
public static function addTween(_arg1:Object=null, _arg2:Object=null):Boolean{
var _local5:Number;
var _local6:Number;
var _local7:String;
var _local8:String;
var _local15:Function;
var _local16:Object;
var _local17:TweenListObj;
var _local18:Number;
var _local19:Array;
var _local20:Array;
var _local21:String;
if ((((arguments.length < 2)) || ((arguments[0] == undefined)))){
return (false);
};
var _local4:Array = new Array();
if ((arguments[0] is Array)){
_local5 = 0;
while (_local5 < arguments[0].length) {
_local4.push(arguments[0][_local5]);
_local5++;
};
} else {
_local5 = 0;
while (_local5 < (arguments.length - 1)) {
_local4.push(arguments[_local5]);
_local5++;
};
};
var _local9:Object = TweenListObj.makePropertiesChain(arguments[(arguments.length - 1)]);
if (!_inited){
init();
};
if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){
startEngine();
};
var _local10:Number = (isNaN(_local9.time)) ? 0 : _local9.time;
var _local11:Number = (isNaN(_local9.delay)) ? 0 : _local9.delay;
var _local12:Array = new Array();
var _local13:Object = {time:true, delay:true, useFrames:true, skipUpdates:true, transition:true, onStart:true, onUpdate:true, onComplete:true, onOverwrite:true, rounded:true, onStartParams:true, onUpdateParams:true, onCompleteParams:true, onOverwriteParams:true};
var _local14:Object = new Object();
for (_local7 in _local9) {
if (!_local13[_local7]){
if (_specialPropertySplitterList[_local7]){
_local19 = _specialPropertySplitterList[_local7].splitValues(_local9[_local7], _specialPropertySplitterList[_local7].parameters);
_local5 = 0;
while (_local5 < _local19.length) {
_local12[_local19[_local5].name] = {valueStart:undefined, valueComplete:_local19[_local5].value};
_local5++;
};
} else {
if (_specialPropertyModifierList[_local7] != undefined){
_local20 = _specialPropertyModifierList[_local7].modifyValues(_local9[_local7]);
_local5 = 0;
while (_local5 < _local20.length) {
_local14[_local20[_local5].name] = {modifierParameters:_local20[_local5].parameters, modifierFunction:_specialPropertyModifierList[_local7].getValue};
_local5++;
};
} else {
_local12[_local7] = {valueStart:undefined, valueComplete:_local9[_local7]};
};
};
};
};
for (_local7 in _local14) {
if (_local12[_local7] != undefined){
_local12[_local7].modifierParameters = _local14[_local7].modifierParameters;
_local12[_local7].modifierFunction = _local14[_local7].modifierFunction;
};
};
if (typeof(_local9.transition) == "string"){
_local21 = _local9.transition.toLowerCase();
_local15 = _transitionList[_local21];
} else {
_local15 = _local9.transition;
};
if (!Boolean(_local15)){
_local15 = _transitionList["easeoutexpo"];
};
_local5 = 0;
while (_local5 < _local4.length) {
_local16 = new Object();
for (_local7 in _local12) {
_local16[_local7] = new PropertyInfoObj(_local12[_local7].valueStart, _local12[_local7].valueComplete, _local12[_local7].modifierFunction, _local12[_local7].modifierParameters);
};
_local17 = new TweenListObj(_local4[_local5], (_currentTime + ((_local11 * 1000) / _timeScale)), (_currentTime + (((_local11 * 1000) + (_local10 * 1000)) / _timeScale)), (_local9.useFrames == true), _local15);
_local17.properties = _local16;
_local17.onStart = _local9.onStart;
_local17.onUpdate = _local9.onUpdate;
_local17.onComplete = _local9.onComplete;
_local17.onOverwrite = _local9.onOverwrite;
_local17.onError = _local9.onError;
_local17.onStartParams = _local9.onStartParams;
_local17.onUpdateParams = _local9.onUpdateParams;
_local17.onCompleteParams = _local9.onCompleteParams;
_local17.onOverwriteParams = _local9.onOverwriteParams;
_local17.rounded = _local9.rounded;
_local17.skipUpdates = _local9.skipUpdates;
removeTweensByTime(_local17.scope, _local17.properties, _local17.timeStart, _local17.timeComplete);
_tweenList.push(_local17);
if ((((_local10 == 0)) && ((_local11 == 0)))){
_local18 = (_tweenList.length - 1);
updateTweenByIndex(_local18);
removeTweenByIndex(_local18);
};
_local5++;
};
return (true);
}
public static function registerTransition(_arg1:String, _arg2:Function):void{
if (!_inited){
init();
};
_transitionList[_arg1] = _arg2;
}
private static function affectTweens(_arg1:Function, _arg2:Object, _arg3:Array):Boolean{
var _local5:uint;
var _local6:Array;
var _local7:uint;
var _local8:uint;
var _local9:uint;
var _local4:Boolean;
if (!Boolean(_tweenList)){
return (false);
};
_local5 = 0;
while (_local5 < _tweenList.length) {
if (((_tweenList[_local5]) && ((_tweenList[_local5].scope == _arg2)))){
if (_arg3.length == 0){
_arg1(_local5);
_local4 = true;
} else {
_local6 = new Array();
_local7 = 0;
while (_local7 < _arg3.length) {
if (Boolean(_tweenList[_local5].properties[_arg3[_local7]])){
_local6.push(_arg3[_local7]);
};
_local7++;
};
if (_local6.length > 0){
_local8 = AuxFunctions.getObjectLength(_tweenList[_local5].properties);
if (_local8 == _local6.length){
_arg1(_local5);
_local4 = true;
} else {
_local9 = splitTweens(_local5, _local6);
_arg1(_local9);
_local4 = true;
};
};
};
};
_local5++;
};
return (_local4);
}
public static function getTweens(_arg1:Object):Array{
var _local2:uint;
var _local3:String;
if (!Boolean(_tweenList)){
return ([]);
};
var _local4:Array = new Array();
_local2 = 0;
while (_local2 < _tweenList.length) {
if (_tweenList[_local2].scope == _arg1){
for (_local3 in _tweenList[_local2].properties) {
_local4.push(_local3);
};
};
_local2++;
};
return (_local4);
}
private static function setPropertyValue(_arg1:Object, _arg2:String, _arg3:Number):void{
if (_specialPropertyList[_arg2] != undefined){
if (Boolean(_specialPropertyList[_arg2].parameters)){
_specialPropertyList[_arg2].setValue(_arg1, _arg3, _specialPropertyList[_arg2].parameters);
} else {
_specialPropertyList[_arg2].setValue(_arg1, _arg3);
};
} else {
_arg1[_arg2] = _arg3;
};
}
private static function getPropertyValue(_arg1:Object, _arg2:String):Number{
if (_specialPropertyList[_arg2] != undefined){
if (Boolean(_specialPropertyList[_arg2].parameters)){
return (_specialPropertyList[_arg2].getValue(_arg1, _specialPropertyList[_arg2].parameters));
};
return (_specialPropertyList[_arg2].getValue(_arg1));
} else {
};
return (!NULL!);
}
public static function isTweening(_arg1:Object):Boolean{
var _local2:uint;
if (!Boolean(_tweenList)){
return (false);
};
_local2 = 0;
while (_local2 < _tweenList.length) {
if (_tweenList[_local2].scope == _arg1){
return (true);
};
_local2++;
};
return (false);
}
public static function getTweenCount(_arg1:Object):Number{
var _local2:uint;
if (!Boolean(_tweenList)){
return (0);
};
var _local3:Number = 0;
_local2 = 0;
while (_local2 < _tweenList.length) {
if (_tweenList[_local2].scope == _arg1){
_local3 = (_local3 + AuxFunctions.getObjectLength(_tweenList[_local2].properties));
};
_local2++;
};
return (_local3);
}
private static function stopEngine():void{
_engineExists = false;
_tweenList = null;
_currentTime = 0;
__tweener_controller__.removeEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame);
__tweener_controller__ = null;
}
public static function pauseTweenByIndex(_arg1:Number):Boolean{
var _local2:TweenListObj = _tweenList[_arg1];
if ((((_local2 == null)) || (_local2.isPaused))){
return (false);
};
_local2.timePaused = _currentTime;
_local2.isPaused = true;
return (true);
}
public static function removeTweensByTime(_arg1:Object, _arg2:Object, _arg3:Number, _arg4:Number):Boolean{
var removedLocally:Boolean;
var i:uint;
var pName:String;
var p_scope = _arg1;
var p_properties = _arg2;
var p_timeStart = _arg3;
var p_timeComplete = _arg4;
var removed:Boolean;
var tl:uint = _tweenList.length;
i = 0;
while (i < tl) {
if (((Boolean(_tweenList[i])) && ((p_scope == _tweenList[i].scope)))){
if ((((p_timeComplete > _tweenList[i].timeStart)) && ((p_timeStart < _tweenList[i].timeComplete)))){
removedLocally = false;
for (pName in _tweenList[i].properties) {
if (Boolean(p_properties[pName])){
if (Boolean(_tweenList[i].onOverwrite)){
try {
_tweenList[i].onOverwrite.apply(_tweenList[i].scope, _tweenList[i].onOverwriteParams);
} catch(e:Error) {
handleError(_tweenList[i], e, "onOverwrite");
};
};
_tweenList[i].properties[pName] = undefined;
delete _tweenList[i].properties[pName];
removedLocally = true;
removed = true;
};
};
if (removedLocally){
if (AuxFunctions.getObjectLength(_tweenList[i].properties) == 0){
removeTweenByIndex(i);
};
};
};
};
i = (i + 1);
};
return (removed);
}
public static function registerSpecialPropertySplitter(_arg1:String, _arg2:Function, _arg3:Array=null):void{
if (!_inited){
init();
};
var _local4:SpecialPropertySplitter = new SpecialPropertySplitter(_arg2, _arg3);
_specialPropertySplitterList[_arg1] = _local4;
}
public static function removeTweenByIndex(_arg1:Number, _arg2:Boolean=false):Boolean{
_tweenList[_arg1] = null;
if (_arg2){
_tweenList.splice(_arg1, 1);
};
return (true);
}
public static function resumeTweens(_arg1:Object, ... _args):Boolean{
var _local4:uint;
var _local3:Array = new Array();
_local4 = 0;
while (_local4 < _args.length) {
if ((((typeof(_args[_local4]) == "string")) && (!(AuxFunctions.isInArray(_args[_local4], _local3))))){
_local3.push(_args[_local4]);
};
_local4++;
};
return (affectTweens(resumeTweenByIndex, _arg1, _local3));
}
public static function pauseTweens(_arg1:Object, ... _args):Boolean{
var _local4:uint;
var _local3:Array = new Array();
_local4 = 0;
while (_local4 < _args.length) {
if ((((typeof(_args[_local4]) == "string")) && (!(AuxFunctions.isInArray(_args[_local4], _local3))))){
_local3.push(_args[_local4]);
};
_local4++;
};
return (affectTweens(pauseTweenByIndex, _arg1, _local3));
}
}
}//package caurina.transitions
Section 9
//TweenListObj (caurina.transitions.TweenListObj)
package caurina.transitions {
public class TweenListObj {
public var hasStarted:Boolean;
public var onUpdate:Function;
public var useFrames:Boolean;
public var count:Number;
public var onOverwriteParams:Array;
public var timeStart:Number;
public var auxProperties:Object;
public var timeComplete:Number;
public var onStartParams:Array;
public var rounded:Boolean;
public var updatesSkipped:Number;
public var onUpdateParams:Array;
public var onComplete:Function;
public var properties:Object;
public var onStart:Function;
public var skipUpdates:Number;
public var scope:Object;
public var isCaller:Boolean;
public var timePaused:Number;
public var transition:Function;
public var onCompleteParams:Array;
public var onError:Function;
public var timesCalled:Number;
public var onOverwrite:Function;
public var isPaused:Boolean;
public var waitFrames:Boolean;
public function TweenListObj(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Boolean, _arg5:Function){
scope = _arg1;
timeStart = _arg2;
timeComplete = _arg3;
useFrames = _arg4;
transition = _arg5;
auxProperties = new Object();
properties = new Object();
isPaused = false;
timePaused = undefined;
isCaller = false;
updatesSkipped = 0;
timesCalled = 0;
skipUpdates = 0;
hasStarted = false;
}
public function clone(_arg1:Boolean):TweenListObj{
var _local3:String;
var _local2:TweenListObj = new TweenListObj(scope, timeStart, timeComplete, useFrames, transition);
_local2.properties = new Array();
for (_local3 in properties) {
_local2.properties[_local3] = properties[_local3].clone();
};
_local2.skipUpdates = skipUpdates;
_local2.updatesSkipped = updatesSkipped;
if (!_arg1){
_local2.onStart = onStart;
_local2.onUpdate = onUpdate;
_local2.onComplete = onComplete;
_local2.onOverwrite = onOverwrite;
_local2.onError = onError;
_local2.onStartParams = onStartParams;
_local2.onUpdateParams = onUpdateParams;
_local2.onCompleteParams = onCompleteParams;
_local2.onOverwriteParams = onOverwriteParams;
};
_local2.rounded = rounded;
_local2.isPaused = isPaused;
_local2.timePaused = timePaused;
_local2.isCaller = isCaller;
_local2.count = count;
_local2.timesCalled = timesCalled;
_local2.waitFrames = waitFrames;
_local2.hasStarted = hasStarted;
return (_local2);
}
public function toString():String{
var _local1 = "\n[TweenListObj ";
_local1 = (_local1 + ("scope:" + String(scope)));
_local1 = (_local1 + ", properties:");
var _local2:uint;
while (_local2 < properties.length) {
if (_local2 > 0){
_local1 = (_local1 + ",");
};
_local1 = (_local1 + ("[name:" + properties[_local2].name));
_local1 = (_local1 + (",valueStart:" + properties[_local2].valueStart));
_local1 = (_local1 + (",valueComplete:" + properties[_local2].valueComplete));
_local1 = (_local1 + "]");
_local2++;
};
_local1 = (_local1 + (", timeStart:" + String(timeStart)));
_local1 = (_local1 + (", timeComplete:" + String(timeComplete)));
_local1 = (_local1 + (", useFrames:" + String(useFrames)));
_local1 = (_local1 + (", transition:" + String(transition)));
if (skipUpdates){
_local1 = (_local1 + (", skipUpdates:" + String(skipUpdates)));
};
if (updatesSkipped){
_local1 = (_local1 + (", updatesSkipped:" + String(updatesSkipped)));
};
if (Boolean(onStart)){
_local1 = (_local1 + (", onStart:" + String(onStart)));
};
if (Boolean(onUpdate)){
_local1 = (_local1 + (", onUpdate:" + String(onUpdate)));
};
if (Boolean(onComplete)){
_local1 = (_local1 + (", onComplete:" + String(onComplete)));
};
if (Boolean(onOverwrite)){
_local1 = (_local1 + (", onOverwrite:" + String(onOverwrite)));
};
if (Boolean(onError)){
_local1 = (_local1 + (", onError:" + String(onError)));
};
if (onStartParams){
_local1 = (_local1 + (", onStartParams:" + String(onStartParams)));
};
if (onUpdateParams){
_local1 = (_local1 + (", onUpdateParams:" + String(onUpdateParams)));
};
if (onCompleteParams){
_local1 = (_local1 + (", onCompleteParams:" + String(onCompleteParams)));
};
if (onOverwriteParams){
_local1 = (_local1 + (", onOverwriteParams:" + String(onOverwriteParams)));
};
if (rounded){
_local1 = (_local1 + (", rounded:" + String(rounded)));
};
if (isPaused){
_local1 = (_local1 + (", isPaused:" + String(isPaused)));
};
if (timePaused){
_local1 = (_local1 + (", timePaused:" + String(timePaused)));
};
if (isCaller){
_local1 = (_local1 + (", isCaller:" + String(isCaller)));
};
if (count){
_local1 = (_local1 + (", count:" + String(count)));
};
if (timesCalled){
_local1 = (_local1 + (", timesCalled:" + String(timesCalled)));
};
if (waitFrames){
_local1 = (_local1 + (", waitFrames:" + String(waitFrames)));
};
if (hasStarted){
_local1 = (_local1 + (", hasStarted:" + String(hasStarted)));
};
_local1 = (_local1 + "]\n");
return (_local1);
}
public static function makePropertiesChain(_arg1:Object):Object{
var _local3:Object;
var _local4:Object;
var _local5:Object;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local2:Object = _arg1.base;
if (_local2){
_local3 = {};
if ((_local2 is Array)){
_local4 = [];
_local8 = 0;
while (_local8 < _local2.length) {
_local4.push(_local2[_local8]);
_local8++;
};
} else {
_local4 = [_local2];
};
_local4.push(_arg1);
_local6 = _local4.length;
_local7 = 0;
while (_local7 < _local6) {
if (_local4[_local7]["base"]){
_local5 = AuxFunctions.concatObjects(makePropertiesChain(_local4[_local7]["base"]), _local4[_local7]);
} else {
_local5 = _local4[_local7];
};
_local3 = AuxFunctions.concatObjects(_local3, _local5);
_local7++;
};
if (_local3["base"]){
delete _local3["base"];
};
return (_local3);
//unresolved jump
};
return (_arg1);
}
}
}//package caurina.transitions
Section 10
//PointBarFade (charts.Elements.PointBarFade)
package charts.Elements {
import charts.series.bars.*;
public class PointBarFade extends Base {
public function PointBarFade(_arg1:Number, _arg2:Object, _arg3:Number, _arg4:Number){
var _local5:Properties = new Properties(_arg2);
super(_arg1, _local5, _arg4);
}
override public function resize(_arg1:ScreenCoordsBase):void{
var _local2:Object = this.resize_helper((_arg1 as ScreenCoords));
this.graphics.clear();
this.graphics.beginFill(this.colour, 1);
this.graphics.moveTo(0, 0);
this.graphics.lineTo(_local2.width, 0);
this.graphics.lineTo(_local2.width, _local2.height);
this.graphics.lineTo(0, _local2.height);
this.graphics.lineTo(0, 0);
this.graphics.endFill();
}
}
}//package charts.Elements
Section 11
//Bar (charts.series.bars.Bar)
package charts.series.bars {
public class Bar extends Base {
public function Bar(_arg1:Number, _arg2:Properties, _arg3:Number){
super(_arg1, _arg2, _arg3);
}
override public function resize(_arg1:ScreenCoordsBase):void{
var _local2:Object = this.resize_helper((_arg1 as ScreenCoords));
this.graphics.clear();
this.graphics.beginFill(this.colour, 1);
this.graphics.moveTo(0, 0);
this.graphics.lineTo(_local2.width, 0);
this.graphics.lineTo(_local2.width, _local2.height);
this.graphics.lineTo(0, _local2.height);
this.graphics.lineTo(0, 0);
this.graphics.endFill();
}
}
}//package charts.series.bars
Section 12
//Bar3D (charts.series.bars.Bar3D)
package charts.series.bars {
import flash.geom.*;
import flash.filters.*;
public class Bar3D extends Base {
public function Bar3D(_arg1:Number, _arg2:Properties, _arg3:Number){
super(_arg1, _arg2, _arg3);
var _local4:DropShadowFilter = new DropShadowFilter();
_local4.blurX = 5;
_local4.blurY = 5;
_local4.distance = 3;
_local4.angle = 45;
_local4.quality = 2;
_local4.alpha = 0.4;
this.filters = [_local4];
}
private function draw_side(_arg1:Number, _arg2:Number):void{
var _local3:Number = 7;
var _local4:Number = Bar3D.Lighten(this.colour);
var _local5:Array = [this.colour, _local4];
var _local6:Array = [1, 1];
var _local7:Array = [0, 0xFF];
var _local8:Matrix = new Matrix();
_local8.createGradientBox(_arg1, (_arg2 + 12), ((270 / 180) * Math.PI));
this.graphics.beginGradientFill("linear", _local5, _local6, _local7, _local8, "pad");
this.graphics.lineStyle(0, 0, 0);
this.graphics.moveTo(_arg1, 0);
this.graphics.lineTo(_arg1, _arg2);
this.graphics.lineTo((_arg1 - 12), (_arg2 + 12));
this.graphics.lineTo((_arg1 - 12), 12);
this.graphics.endFill();
}
private function draw_top(_arg1:Number, _arg2:Number):void{
this.graphics.lineStyle(0, 0, 0);
var _local3:Number = Bar3D.Lighten(this.colour);
var _local4:Array = [this.colour, _local3];
var _local5:Array = [1, 1];
var _local6:Array = [0, 0xFF];
var _local7:Matrix = new Matrix();
_local7.createGradientBox((_arg1 + 12), 12, ((270 / 180) * Math.PI));
this.graphics.beginGradientFill("linear", _local4, _local5, _local6, _local7, "pad");
var _local8:Number = 0;
if (_arg2 < 0){
_local8 = _arg2;
};
this.graphics.moveTo(0, _local8);
this.graphics.lineTo(_arg1, _local8);
this.graphics.lineTo((_arg1 - 12), (_local8 + 12));
this.graphics.lineTo(-12, (_local8 + 12));
this.graphics.endFill();
}
override public function resize(_arg1:ScreenCoordsBase):void{
var _local2:Object = this.resize_helper((_arg1 as ScreenCoords));
this.graphics.clear();
this.draw_top(_local2.width, _local2.height);
this.draw_front(_local2.width, _local2.height);
this.draw_side(_local2.width, _local2.height);
}
private function draw_front(_arg1:Number, _arg2:Number):void{
var _local3:Number = 7;
var _local4:Number = Bar3D.Lighten(this.colour);
var _local5:Array = [_local4, this.colour];
var _local6:Array = [1, 1];
var _local7:Array = [0, 127];
var _local8:Matrix = new Matrix();
_local8.createGradientBox((_arg1 - 12), (_arg2 + 12), ((90 / 180) * Math.PI));
this.graphics.beginGradientFill("linear", _local5, _local6, _local7, _local8, "pad");
this.graphics.moveTo(-12, 12);
this.graphics.lineTo(-12, (_arg2 + 12));
this.graphics.lineTo((_arg1 - 12), (_arg2 + 12));
this.graphics.lineTo((_arg1 - 12), 12);
this.graphics.endFill();
}
public static function Lighten(_arg1:Number):Number{
var _local2:Number = _arg1;
var _local3:Number = ((_local2 & 0xFF0000) >> 16);
var _local4:Number = ((_local2 & 0xFF00) >> 8);
var _local5:Number = (_local2 & 0xFF);
var _local6:Number = 2;
_local3 = (_local3 + (_local3 / _local6));
if (_local3 > 0xFF){
_local3 = 0xFF;
};
_local4 = (_local4 + (_local4 / _local6));
if (_local4 > 0xFF){
_local4 = 0xFF;
};
_local5 = (_local5 + (_local5 / _local6));
if (_local5 > 0xFF){
_local5 = 0xFF;
};
return ((((_local3 << 16) | (_local4 << 8)) | _local5));
}
}
}//package charts.series.bars
Section 13
//Base (charts.series.bars.Base)
package charts.series.bars {
import flash.events.*;
import flash.geom.*;
import charts.series.*;
import caurina.transitions.*;
public class Base extends Element {
protected var group:Number;
protected var colour:Number;
protected var mouse_out_alpha:Number;
protected var top:Number;
protected var on_show:Properties;
protected var bottom:Number;
protected var tip_pos:Point;
private var on_show_animate:Boolean;
public function Base(_arg1:Number, _arg2:Properties, _arg3:Number){
this.index = _arg1;
this.parse_value(_arg2);
this.colour = _arg2.get_colour("colour");
this.tooltip = this.replace_magic_values(_arg2.get("tip"));
this.group = _arg3;
this.visible = true;
this.on_show_animate = true;
this.on_show = _arg2.get("on-show");
this.mouse_out_alpha = _arg2.get("alpha");
this.alpha = this.mouse_out_alpha;
this.addEventListener(MouseEvent.MOUSE_OVER, this.mouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, this.mouseOut);
if (_arg2.has("on-click")){
if (_arg2.get("on-click") != false){
this.set_on_click(_arg2.get("on-click"));
};
};
if (_arg2.has("axis")){
if (_arg2.get("axis") == "right"){
this.right_axis = true;
};
};
}
override public function get_tip_pos():Object{
return ({x:this.tip_pos.x, y:this.tip_pos.y});
}
override public function mouseOver(_arg1:Event):void{
this.is_tip = true;
Tweener.addTween(this, {alpha:1, time:0.6, transition:Equations.easeOutCirc});
}
protected function replace_magic_values(_arg1:String):String{
_arg1 = _arg1.replace("#top#", NumberUtils.formatNumber(this.top));
_arg1 = _arg1.replace("#bottom#", NumberUtils.formatNumber(this.bottom));
_arg1 = _arg1.replace("#val#", NumberUtils.formatNumber((this.top - this.bottom)));
return (_arg1);
}
protected function parse_value(_arg1:Properties):void{
if (!_arg1.has("bottom")){
_arg1.set("bottom", Number.MIN_VALUE);
};
this.top = _arg1.get("top");
this.bottom = _arg1.get("bottom");
}
protected function resize_helper(_arg1:ScreenCoords):Object{
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local2:Object = _arg1.get_bar_coords(this.index, this.group);
var _local3:Number = _arg1.get_y_from_val(this.top, this.right_axis);
if (this.bottom == Number.MIN_VALUE){
_local4 = _arg1.get_y_bottom(this.right_axis);
} else {
_local4 = _arg1.get_y_from_val(this.bottom, this.right_axis);
};
var _local7:Boolean;
if (_local4 < _local3){
_local5 = _local4;
_local7 = true;
} else {
_local5 = _local3;
};
_local6 = Math.abs((_local4 - _local3));
this.tip_pos = new Point((_local2.x + (_local2.width / 2)), _local5);
if (this.on_show_animate){
this.first_show(_local2.x, _local5, _local2.width, _local6);
} else {
this.y = _local5;
this.x = _local2.x;
};
return ({width:_local2.width, top:_local5, height:_local6, upside_down:_local7});
}
override public function mouseOut(_arg1:Event):void{
this.is_tip = false;
Tweener.addTween(this, {alpha:this.mouse_out_alpha, time:0.8, transition:Equations.easeOutElastic});
}
protected function first_show(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{
this.on_show_animate = false;
Tweener.removeTweens(this);
var _local5:Number = (_arg1 / this.stage.stageWidth);
_local5 = (_local5 * this.on_show.get("cascade"));
_local5 = (_local5 + this.on_show.get("delay"));
switch (this.on_show.get("type")){
case "pop-up":
this.x = _arg1;
this.y = ((this.stage.stageHeight + this.height) + 3);
Tweener.addTween(this, {y:_arg2, time:1, delay:_local5, transition:Equations.easeOutBounce});
break;
case "drop":
this.x = _arg1;
this.y = (-(_arg4) - 10);
Tweener.addTween(this, {y:_arg2, time:1, delay:_local5, transition:Equations.easeOutBounce});
break;
case "fade-in":
this.x = _arg1;
this.y = _arg2;
this.alpha = 0;
Tweener.addTween(this, {alpha:this.mouse_out_alpha, time:1.2, delay:_local5, transition:Equations.easeOutQuad});
break;
case "grow-down":
this.x = _arg1;
this.y = _arg2;
this.scaleY = 0.01;
Tweener.addTween(this, {scaleY:1, time:1.2, delay:_local5, transition:Equations.easeOutQuad});
break;
case "grow-up":
this.x = _arg1;
this.y = (_arg2 + _arg4);
this.scaleY = 0.01;
Tweener.addTween(this, {scaleY:1, time:1.2, delay:_local5, transition:Equations.easeOutQuad});
Tweener.addTween(this, {y:_arg2, time:1.2, delay:_local5, transition:Equations.easeOutQuad});
break;
case "pop":
this.y = top;
this.alpha = 0.2;
Tweener.addTween(this, {alpha:this.mouse_out_alpha, time:0.7, delay:_local5, transition:Equations.easeOutQuad});
this.x = (_arg1 + (_arg3 / 2));
this.y = (_arg2 + (_arg4 / 2));
this.width = 3;
this.height = 3;
Tweener.addTween(this, {x:_arg1, y:_arg2, width:_arg3, height:_arg4, time:1.2, delay:_local5, transition:Equations.easeOutElastic});
break;
default:
this.y = _arg2;
this.x = _arg1;
};
}
override public function get_mid_point():Point{
return (new Point((this.x + (this.width / 2)), this.y));
}
override public function resize(_arg1:ScreenCoordsBase):void{
}
}
}//package charts.series.bars
Section 14
//Cylinder (charts.series.bars.Cylinder)
package charts.series.bars {
import flash.geom.*;
import flash.filters.*;
public class Cylinder extends Base {
public function Cylinder(_arg1:Number, _arg2:Properties, _arg3:Number){
super(_arg1, _arg2, _arg3);
var _local4:DropShadowFilter = new DropShadowFilter();
_local4.blurX = 5;
_local4.blurY = 5;
_local4.distance = 3;
_local4.angle = 45;
_local4.quality = 2;
_local4.alpha = 0.4;
this.filters = [_local4];
}
public function Ellipse(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
this.graphics.moveTo((_arg1 + _arg3), _arg2);
var _local6:Number = 0;
while (_local6 <= _arg5) {
_local7 = (_local6 / _arg5);
_local8 = magicTrigFunctionX(_local7);
_local9 = magicTrigFunctionY(_local7);
_local10 = (_arg1 + (_local8 * _arg3));
_local11 = (_arg2 + (_local9 * _arg4));
this.graphics.lineTo(_local10, _local11);
_local6++;
};
return (1);
}
public function halfEllipse(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
this.graphics.moveTo((_arg1 + _arg3), _arg2);
var _local6:Number = 0;
while (_local6 <= (_arg5 / 2)) {
_local7 = (_local6 / _arg5);
_local8 = magicTrigFunctionX(_local7);
_local9 = magicTrigFunctionY(_local7);
_local10 = (_arg1 + (_local8 * _arg3));
_local11 = (_arg2 + (_local9 * _arg4));
this.graphics.lineTo(_local10, _local11);
_local6++;
};
return (1);
}
override public function resize(_arg1:ScreenCoordsBase):void{
this.graphics.clear();
var _local2:Object = this.resize_helper((_arg1 as ScreenCoords));
this.bg(_local2.width, _local2.height, _local2.upside_down);
this.glass(_local2.width, _local2.height, _local2.upside_down);
}
private function bg(_arg1:Number, _arg2:Number, _arg3:Boolean):void{
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local4:Number = (_arg1 / 3);
if (_local4 > (_arg1 / 2)){
_local4 = (_arg1 / 2);
};
this.graphics.lineStyle(0, 0, 0);
var _local5:Array = GetColours(this.colour);
var _local6:Array = [1, 1];
var _local7:Array = [0, 0xFF];
var _local8:Matrix = new Matrix();
_local8.createGradientBox(_arg1, _arg2, ((180 / 180) * Math.PI));
this.graphics.beginGradientFill("linear", _local5, _local6, _local7, _local8, "pad");
_local11 = (_arg1 / 2);
_local12 = _arg2;
_local9 = (_arg1 / 2);
_local10 = (_local4 / 2);
halfEllipse(_local11, _local12, _local9, _local10, 100);
this.graphics.beginGradientFill("linear", _local5, _local6, _local7, _local8, "pad");
this.graphics.moveTo(0, 0);
this.graphics.lineTo(0, _arg2);
this.graphics.lineTo(_arg1, _arg2);
this.graphics.lineTo(_arg1, 0);
this.graphics.beginFill(this.colour, 1);
_local11 = (_arg1 / 2);
_local12 = 0;
_local9 = (_arg1 / 2);
_local10 = (_local4 / 2);
Ellipse(_local11, _local12, _local9, _local10, 100);
this.graphics.endFill();
}
private function glass(_arg1:Number, _arg2:Number, _arg3:Boolean):void{
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
this.graphics.lineStyle(0, 0, 0);
var _local4:Array = [0xFFFFFF, 0xFFFFFF];
var _local5:Array = [0, 0.5];
var _local6:Array = [150, 0xFF];
var _local11:Matrix = new Matrix();
_local11.createGradientBox(width, height, ((180 / 180) * Math.PI));
this.graphics.beginGradientFill("linear", _local4, _local5, _local6, _local11, "pad");
var _local12:Number = (_arg1 / 3);
_local9 = (_arg1 / 2);
_local10 = _arg2;
_local7 = (_arg1 / 2);
_local8 = (_local12 / 2);
halfEllipse(_local9, _local10, _local7, _local8, 100);
this.graphics.moveTo(0, 0);
this.graphics.lineTo(0, _arg2);
this.graphics.lineTo(_arg1, _arg2);
this.graphics.lineTo(_arg1, 0);
this.graphics.beginFill(this.colour, 1);
_local9 = (_arg1 / 2);
_local10 = 0;
_local7 = (_arg1 / 2);
_local8 = (_local12 / 2);
Ellipse(_local9, _local10, _local7, _local8, 100);
this.graphics.beginGradientFill("linear", _local4, _local5, [25, 0xFF], _local11, "pad");
_local9 = (_arg1 / 2);
_local10 = 0;
_local7 = (_arg1 / 2);
_local8 = (_local12 / 2);
Ellipse(_local9, _local10, _local7, _local8, 100);
this.graphics.endFill();
}
public static function magicTrigFunctionY(_arg1:Number):Number{
return (Math.sin(((_arg1 * 2) * Math.PI)));
}
public static function GetColours(_arg1:Number):Array{
var _local2:Number = _arg1;
var _local3:Number = ((_local2 & 0xFF0000) >> 16);
var _local4:Number = ((_local2 & 0xFF00) >> 8);
var _local5:Number = (_local2 & 0xFF);
var _local6:Number = 2;
var _local7:Number = _arg1;
var _local8:Number = _arg1;
var _local9:Number = ((_local2 & 0xFF0000) >> 16);
var _local10:Number = ((_local2 & 0xFF00) >> 8);
var _local11:Number = (_local2 & 0xFF);
var _local12:Number = ((_local2 & 0xFF0000) >> 16);
var _local13:Number = ((_local2 & 0xFF00) >> 8);
var _local14:Number = (_local2 & 0xFF);
if (((((((_local3 + (_local3 / _local6)) > 0xFF)) || (((_local4 + (_local4 / _local6)) > 0xFF)))) || (((_local5 + (_local5 / _local6)) > 0xFF)))){
_local9 = (_local3 - (_local3 / _local6));
_local10 = (_local4 - (_local4 / _local6));
_local11 = (_local5 - (_local5 / _local6));
};
_local12 = (_local9 + (_local3 / _local6));
_local14 = (_local11 + (_local5 / _local6));
_local13 = (_local10 + (_local4 / _local6));
_local7 = (((_local9 << 16) | (_local10 << 8)) | _local11);
_local8 = (((_local12 << 16) | (_local13 << 8)) | _local14);
return ([_local8, _local7]);
}
public static function magicTrigFunctionX(_arg1:Number):Number{
return (Math.cos(((_arg1 * 2) * Math.PI)));
}
}
}//package charts.series.bars
Section 15
//CylinderOutline (charts.series.bars.CylinderOutline)
package charts.series.bars {
import flash.geom.*;
import flash.filters.*;
public class CylinderOutline extends Base {
public function CylinderOutline(_arg1:Number, _arg2:Properties, _arg3:Number){
super(_arg1, _arg2, _arg3);
var _local4:DropShadowFilter = new DropShadowFilter();
_local4.blurX = 5;
_local4.blurY = 5;
_local4.distance = 3;
_local4.angle = 45;
_local4.quality = 2;
_local4.alpha = 0.4;
this.filters = [_local4];
}
public function Ellipse(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
this.graphics.moveTo((_arg1 + _arg3), _arg2);
var _local6:Number = 0;
while (_local6 <= _arg5) {
_local7 = (_local6 / _arg5);
_local8 = magicTrigFunctionX(_local7);
_local9 = magicTrigFunctionY(_local7);
_local10 = (_arg1 + (_local8 * _arg3));
_local11 = (_arg2 + (_local9 * _arg4));
this.graphics.lineTo(_local10, _local11);
_local6++;
};
return (1);
}
public function halfEllipse(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Boolean):Number{
var _local7:Number;
var _local8:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
if (_arg6 == true){
_local7 = (_arg5 / 2);
_local8 = _arg5;
} else {
_local7 = 0;
_local8 = (_arg5 / 2);
};
this.graphics.moveTo((_arg1 + _arg3), _arg2);
var _local9:Number = _local7;
while (_local9 <= _local8) {
_local10 = (_local9 / _arg5);
_local11 = magicTrigFunctionX(_local10);
_local12 = magicTrigFunctionY(_local10);
_local13 = (_arg1 + (_local11 * _arg3));
_local14 = (_arg2 + (_local12 * _arg4));
this.graphics.lineTo(_local13, _local14);
_local9++;
};
return (1);
}
override public function resize(_arg1:ScreenCoordsBase):void{
this.graphics.clear();
var _local2:Object = this.resize_helper((_arg1 as ScreenCoords));
this.bg(_local2.width, _local2.height, _local2.upside_down);
this.glass(_local2.width, _local2.height, _local2.upside_down);
}
private function bg(_arg1:Number, _arg2:Number, _arg3:Boolean):void{
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local4:Number = (_arg1 / 3);
if (_local4 > (_arg1 / 2)){
_local4 = (_arg1 / 2);
};
this.graphics.lineStyle(0, 0, 0);
var _local5:Array = GetColours(this.colour);
var _local6:Array = [1, 1];
var _local7:Array = [0, 0xFF];
var _local8:Matrix = new Matrix();
_local8.createGradientBox(_arg1, _arg2, ((180 / 180) * Math.PI));
this.graphics.beginGradientFill("linear", _local5, _local6, _local7, _local8, "pad");
_local11 = (_arg1 / 2);
_local12 = _arg2;
_local9 = (_arg1 / 2);
_local10 = (_local4 / 2);
halfEllipse(_local11, _local12, _local9, _local10, 100, false);
this.graphics.beginGradientFill("linear", _local5, _local6, _local7, _local8, "pad");
this.graphics.moveTo(0, 0);
this.graphics.lineTo(0, _arg2);
this.graphics.lineTo(_arg1, _arg2);
this.graphics.lineTo(_arg1, 0);
this.graphics.beginGradientFill("linear", _local5, _local6, _local7, _local8, "pad");
_local11 = (_arg1 / 2);
_local12 = 0;
_local9 = (_arg1 / 2);
_local10 = (_local4 / 2);
Ellipse(_local11, _local12, _local9, _local10, 100);
this.graphics.endFill();
}
private function glass(_arg1:Number, _arg2:Number, _arg3:Boolean):void{
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
this.graphics.lineStyle(0, 0, 0);
var _local4:Array = GetColours(this.colour);
var _local5:Array = [1, 1];
var _local6:Array = [0, 0xFF];
var _local7:Matrix = new Matrix();
var _local8:Array = [0xFFFFFF, 0xFFFFFF];
var _local9:Array = [0, 0.5];
var _local10:Array = [150, 0xFF];
var _local15:Matrix = new Matrix();
_local15.createGradientBox(width, height, ((180 / 180) * Math.PI));
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local15, "pad");
var _local16:Number = (_arg1 / 3);
_local13 = (_arg1 / 2);
_local14 = _arg2;
_local11 = ((_arg1 / 2) - (0.025 * _arg1));
_local12 = ((_local16 / 2) - (0.025 * _arg1));
halfEllipse(_local13, _local14, _local11, _local12, 100, false);
this.graphics.moveTo((0 + (0.025 * _arg1)), (0 + (0.025 * _arg1)));
this.graphics.lineTo((0 + (0.025 * _arg1)), _arg2);
this.graphics.lineTo((_arg1 - (0.025 * _arg1)), _arg2);
this.graphics.lineTo((_arg1 - (0.025 * _arg1)), (0 + (0.025 * _arg1)));
this.graphics.beginGradientFill("linear", _local4, _local5, _local6, _local7, "pad");
_local13 = (_arg1 / 2);
_local14 = 0;
_local11 = (_arg1 / 2);
_local12 = (_local16 / 2);
Ellipse(_local13, _local14, _local11, _local12, 100);
this.graphics.beginGradientFill("linear", _local8, _local9, [25, 0xFF], _local15, "pad");
_local13 = (_arg1 / 2);
_local14 = 0;
_local11 = ((_arg1 / 2) - (0.025 * _arg1));
_local12 = ((_local16 / 2) - (0.025 * _arg1));
Ellipse(_local13, _local14, _local11, _local12, 100);
this.graphics.endFill();
}
public static function magicTrigFunctionY(_arg1:Number):Number{
return (Math.sin(((_arg1 * 2) * Math.PI)));
}
public static function GetColours(_arg1:Number):Array{
var _local2:Number = _arg1;
var _local3:Number = ((_local2 & 0xFF0000) >> 16);
var _local4:Number = ((_local2 & 0xFF00) >> 8);
var _local5:Number = (_local2 & 0xFF);
var _local6:Number = 2;
var _local7:Number = _arg1;
var _local8:Number = _arg1;
var _local9:Number = ((_local2 & 0xFF0000) >> 16);
var _local10:Number = ((_local2 & 0xFF00) >> 8);
var _local11:Number = (_local2 & 0xFF);
var _local12:Number = ((_local2 & 0xFF0000) >> 16);
var _local13:Number = ((_local2 & 0xFF00) >> 8);
var _local14:Number = (_local2 & 0xFF);
if (((((((_local3 + (_local3 / _local6)) > 0xFF)) || (((_local4 + (_local4 / _local6)) > 0xFF)))) || (((_local5 + (_local5 / _local6)) > 0xFF)))){
_local9 = (_local3 - (_local3 / _local6));
_local10 = (_local4 - (_local4 / _local6));
_local11 = (_local5 - (_local5 / _local6));
};
_local12 = (_local9 + (_local3 / _local6));
_local14 = (_local11 + (_local5 / _local6));
_local13 = (_local10 + (_local4 / _local6));
_local7 = (((_local9 << 16) | (_local10 << 8)) | _local11);
_local8 = (((_local12 << 16) | (_local13 << 8)) | _local14);
return ([_local8, _local7]);
}
public static function magicTrigFunctionX(_arg1:Number):Number{
return (Math.cos(((_arg1 * 2) * Math.PI)));
}
}
}//package charts.series.bars
Section 16
//Dome (charts.series.bars.Dome)
package charts.series.bars {
import flash.geom.*;
import flash.filters.*;
public class Dome extends Base {
public function Dome(_arg1:Number, _arg2:Properties, _arg3:Number){
super(_arg1, _arg2, _arg3);
var _local4:DropShadowFilter = new DropShadowFilter();
_local4.blurX = 5;
_local4.blurY = 5;
_local4.distance = 3;
_local4.angle = 45;
_local4.quality = 2;
_local4.alpha = 0.4;
this.filters = [_local4];
}
public function Ellipse(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
this.graphics.moveTo((_arg1 + _arg3), _arg2);
var _local6:Number = 0;
while (_local6 <= _arg5) {
_local7 = (_local6 / _arg5);
_local8 = magicTrigFunctionX(_local7);
_local9 = magicTrigFunctionY(_local7);
_local10 = (_arg1 + (_local8 * _arg3));
_local11 = (_arg2 + (_local9 * _arg4));
this.graphics.lineTo(_local10, _local11);
_local6++;
};
return (1);
}
public function halfEllipse(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Boolean):Number{
var _local7:Number;
var _local8:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
if (_arg6 == true){
_local7 = (_arg5 / 2);
_local8 = _arg5;
} else {
_local7 = 0;
_local8 = (_arg5 / 2);
};
this.graphics.moveTo((_arg1 + _arg3), _arg2);
var _local9:Number = _local7;
while (_local9 <= _local8) {
_local10 = (_local9 / _arg5);
_local11 = magicTrigFunctionX(_local10);
_local12 = magicTrigFunctionY(_local10);
_local13 = (_arg1 + (_local11 * _arg3));
_local14 = (_arg2 + (_local12 * _arg4));
this.graphics.lineTo(_local13, _local14);
_local9++;
};
return (1);
}
override public function resize(_arg1:ScreenCoordsBase):void{
this.graphics.clear();
var _local2:Object = this.resize_helper((_arg1 as ScreenCoords));
this.bg(_local2.width, _local2.height, _local2.upside_down);
this.glass(_local2.width, _local2.height, _local2.upside_down);
}
private function bg(_arg1:Number, _arg2:Number, _arg3:Boolean):void{
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local4:Number = (_arg1 / 3);
if (_local4 > (_arg1 / 2)){
_local4 = (_arg1 / 2);
};
this.graphics.lineStyle(0, 0, 0);
var _local5:Array = GetColours(this.colour);
var _local6:Array = [1, 1];
var _local7:Array = [0, 0xFF];
var _local8:Matrix = new Matrix();
_local8.createGradientBox(_arg1, _arg2, ((180 / 180) * Math.PI));
this.graphics.beginGradientFill("linear", _local5, _local6, _local7, _local8, "pad");
if (((!(_arg3)) && ((_arg2 > 0)))){
if (_arg2 >= (_arg1 / 2)){
_local11 = (_arg1 / 2);
_local12 = _arg2;
_local9 = (_arg1 / 2);
_local10 = (_local4 / 2);
halfEllipse(_local11, _local12, _local9, _local10, 100, false);
this.graphics.beginGradientFill("linear", _local5, _local6, _local7, _local8, "pad");
this.graphics.moveTo(0, (_arg1 / 2));
this.graphics.lineTo(0, _arg2);
this.graphics.lineTo(_arg1, _arg2);
this.graphics.lineTo(_arg1, (_arg1 / 2));
_local11 = (_arg1 / 2);
_local12 = (_arg1 / 2);
_local9 = (_arg1 / 2);
_local10 = _local9;
halfEllipse(_local11, _local12, _local9, _local10, 100, true);
} else {
_local11 = (_arg1 / 2);
_local12 = _arg2;
_local9 = (_arg1 / 2);
_local10 = (_local4 / 2);
halfEllipse(_local11, _local12, _local9, _local10, 100, false);
_local11 = (_arg1 / 2);
_local12 = _arg2;
_local9 = (_arg1 / 2);
_local10 = _arg2;
halfEllipse(_local11, _local12, _local9, _local10, 100, true);
};
} else {
if (_arg2 >= (_arg1 / 2)){
_local11 = (_arg1 / 2);
_local12 = 0;
_local9 = (_arg1 / 2);
_local10 = (_local4 / 2);
halfEllipse(_local11, _local12, _local9, _local10, 100, true);
this.graphics.beginGradientFill("linear", _local5, _local6, _local7, _local8, "pad");
this.graphics.moveTo(0, 0);
this.graphics.lineTo(0, (_arg2 - (_arg1 / 2)));
this.graphics.lineTo(_arg1, (_arg2 - (_arg1 / 2)));
this.graphics.lineTo(_arg1, 0);
_local11 = (_arg1 / 2);
_local12 = (_arg2 - (_arg1 / 2));
_local9 = (_arg1 / 2);
_local10 = _local9;
halfEllipse(_local11, _local12, _local9, _local10, 100, false);
} else {
if (_arg2 > 0){
_local11 = (_arg1 / 2);
_local12 = 0;
_local9 = (_arg1 / 2);
_local10 = (_local4 / 2);
halfEllipse(_local11, _local12, _local9, _local10, 100, true);
_local11 = (_arg1 / 2);
_local12 = 0;
_local9 = (_arg1 / 2);
_local10 = _arg2;
halfEllipse(_local11, _local12, _local9, _local10, 100, false);
} else {
_local11 = (_arg1 / 2);
_local12 = _arg2;
_local9 = (_arg1 / 2);
_local10 = (_local4 / 4);
Ellipse(_local11, _local12, _local9, _local10, 100);
};
};
};
this.graphics.endFill();
}
private function glass(_arg1:Number, _arg2:Number, _arg3:Boolean):void{
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
this.graphics.lineStyle(0, 0, 0);
var _local4:Array = GetColours(this.colour);
var _local5:Array = [1, 1];
var _local6:Array = [0, 0xFF];
var _local7:Matrix = new Matrix();
_local7.createGradientBox(_arg1, _arg2, ((180 / 180) * Math.PI));
var _local8:Array = [0xFFFFFF, 0xFFFFFF];
var _local9:Array = [0, 0.75];
var _local10:Array = [100, 0xFF];
var _local15:Matrix = new Matrix();
_local15.createGradientBox(width, height, ((180 / 180) * Math.PI));
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local15, "pad");
var _local16:Number = (_arg1 / 3);
if (((!(_arg3)) && ((_arg2 > 0)))){
if (_arg2 >= (_arg1 / 2)){
_local13 = (_arg1 / 2);
_local14 = _arg2;
_local11 = ((_arg1 / 2) - (0.05 * _arg1));
_local12 = ((_local16 / 2) - (0.05 * _arg1));
halfEllipse(_local13, _local14, _local11, _local12, 100, false);
this.graphics.moveTo((0 + (0.05 * _arg1)), (_arg1 / 2));
this.graphics.lineTo((0 + (0.05 * _arg1)), _arg2);
this.graphics.lineTo((_arg1 - (0.05 * _arg1)), _arg2);
this.graphics.lineTo((_arg1 - (0.05 * _arg1)), (_arg1 / 2));
this.graphics.beginGradientFill("linear", _local4, _local5, _local6, _local7, "pad");
_local13 = (_arg1 / 2);
_local14 = (_arg1 / 2);
_local11 = (_arg1 / 2);
_local12 = _local11;
halfEllipse(_local13, _local14, _local11, _local12, 100, true);
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local15, "pad");
_local13 = (_arg1 / 3);
_local14 = (_arg1 / 2);
_local11 = ((_arg1 / 3) - (0.05 * _arg1));
_local12 = (_local11 + (0.05 * _arg1));
halfEllipse(_local13, _local14, _local11, _local12, 100, true);
} else {
_local13 = (_arg1 / 2);
_local14 = _arg2;
_local11 = ((_arg1 / 2) - (0.05 * _arg1));
_local12 = ((_local16 / 2) - (0.05 * _arg1));
halfEllipse(_local13, _local14, _local11, _local12, 100, false);
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local15, "pad");
_local13 = (_arg1 / 3);
_local14 = _arg2;
_local11 = ((_arg1 / 3) - (0.05 * _arg1));
_local12 = (_arg2 - (2.5 * (0.05 * _arg1)));
halfEllipse(_local13, _local14, _local11, _local12, 100, true);
};
} else {
if (_arg2 >= (_arg1 / 2)){
_local13 = (_arg1 / 2);
_local14 = 0;
_local11 = ((_arg1 / 2) - (0.05 * _arg1));
_local12 = ((_local16 / 2) - (0.05 * _arg1));
halfEllipse(_local13, _local14, _local11, _local12, 100, true);
this.graphics.moveTo((0 + (0.05 * _arg1)), 0);
this.graphics.lineTo((0 + (0.05 * _arg1)), (_arg2 - (_arg1 / 2)));
this.graphics.lineTo((_arg1 - (0.05 * _arg1)), (_arg2 - (_arg1 / 2)));
this.graphics.lineTo((_arg1 - (0.05 * _arg1)), 0);
this.graphics.beginGradientFill("linear", _local4, _local5, _local6, _local7, "pad");
_local13 = (_arg1 / 2);
_local14 = (_arg2 - (_arg1 / 2));
_local11 = (_arg1 / 2);
_local12 = _local11;
halfEllipse(_local13, _local14, _local11, _local12, 100, false);
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local15, "pad");
_local13 = (_arg1 / 3);
_local14 = (_arg2 - (_arg1 / 2));
_local11 = ((_arg1 / 3) - (0.05 * _arg1));
_local12 = (_local11 + (0.05 * _arg1));
halfEllipse(_local13, _local14, _local11, _local12, 100, false);
} else {
if (_arg2 > 0){
_local13 = (_arg1 / 2);
_local14 = 0;
_local11 = ((_arg1 / 2) - (0.05 * _arg1));
_local12 = ((_local16 / 2) - (0.05 * _arg1));
halfEllipse(_local13, _local14, _local11, _local12, 100, true);
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local15, "pad");
_local13 = (_arg1 / 3);
_local14 = 0;
_local11 = ((_arg1 / 3) - (0.05 * _arg1));
_local12 = (_arg2 - (2.5 * (0.05 * _arg1)));
halfEllipse(_local13, _local14, _local11, _local12, 100, false);
} else {
_local13 = (_arg1 / 2);
_local14 = _arg2;
_local11 = ((_arg1 / 2) - (0.05 * _arg1));
_local12 = ((_local16 / 4) - (0.05 * _arg1));
Ellipse(_local13, _local14, _local11, _local12, 100);
};
};
};
this.graphics.endFill();
}
public static function magicTrigFunctionY(_arg1:Number):Number{
return (Math.sin(((_arg1 * 2) * Math.PI)));
}
public static function GetColours(_arg1:Number):Array{
var _local2:Number = _arg1;
var _local3:Number = ((_local2 & 0xFF0000) >> 16);
var _local4:Number = ((_local2 & 0xFF00) >> 8);
var _local5:Number = (_local2 & 0xFF);
var _local6:Number = 2;
var _local7:Number = _arg1;
var _local8:Number = _arg1;
var _local9:Number = ((_local2 & 0xFF0000) >> 16);
var _local10:Number = ((_local2 & 0xFF00) >> 8);
var _local11:Number = (_local2 & 0xFF);
var _local12:Number = ((_local2 & 0xFF0000) >> 16);
var _local13:Number = ((_local2 & 0xFF00) >> 8);
var _local14:Number = (_local2 & 0xFF);
if (((((((_local3 + (_local3 / _local6)) > 0xFF)) || (((_local4 + (_local4 / _local6)) > 0xFF)))) || (((_local5 + (_local5 / _local6)) > 0xFF)))){
_local9 = (_local3 - (_local3 / _local6));
_local10 = (_local4 - (_local4 / _local6));
_local11 = (_local5 - (_local5 / _local6));
};
_local12 = (_local9 + (_local3 / _local6));
_local14 = (_local11 + (_local5 / _local6));
_local13 = (_local10 + (_local4 / _local6));
_local7 = (((_local9 << 16) | (_local10 << 8)) | _local11);
_local8 = (((_local12 << 16) | (_local13 << 8)) | _local14);
return ([_local8, _local7]);
}
public static function magicTrigFunctionX(_arg1:Number):Number{
return (Math.cos(((_arg1 * 2) * Math.PI)));
}
}
}//package charts.series.bars
Section 17
//ECandle (charts.series.bars.ECandle)
package charts.series.bars {
import flash.geom.*;
public class ECandle extends Base {
protected var high:Number;
protected var low:Number;
public function ECandle(_arg1:Number, _arg2:Properties, _arg3:Number){
super(_arg1, _arg2, _arg3);
}
private function draw_box(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Boolean):void{
this.graphics.beginFill(this.colour, 1);
this.graphics.moveTo(0, _arg1);
this.graphics.lineTo(_arg3, _arg1);
this.graphics.lineTo(_arg3, _arg2);
this.graphics.lineTo(0, _arg2);
this.graphics.lineTo(0, _arg1);
if (_arg4){
this.graphics.moveTo(2, (_arg1 + 2));
this.graphics.lineTo((_arg3 - 2), (_arg1 + 2));
this.graphics.lineTo((_arg3 - 2), (_arg2 - 2));
this.graphics.lineTo(2, (_arg2 - 2));
this.graphics.lineTo(2, (_arg1 + 2));
};
this.graphics.endFill();
if (_arg4){
this.graphics.lineStyle(0, 0, 0);
this.graphics.beginFill(0, 0);
this.graphics.moveTo(2, (_arg1 - 2));
this.graphics.lineTo((_arg3 - 2), (_arg1 - 2));
this.graphics.lineTo((_arg3 - 2), (_arg2 - 2));
this.graphics.lineTo(2, (_arg2 - 2));
this.graphics.endFill();
};
}
override protected function parse_value(_arg1:Properties):void{
super.parse_value(_arg1);
this.high = _arg1.get("high");
this.low = _arg1.get("low");
}
private function bottom_line(_arg1:Number, _arg2:Number, _arg3:Number):void{
this.graphics.beginFill(this.colour, 1);
this.graphics.moveTo((_arg1 - 1), _arg2);
this.graphics.lineTo((_arg1 + 1), _arg2);
this.graphics.lineTo((_arg1 + 1), _arg3);
this.graphics.lineTo((_arg1 - 1), _arg3);
this.graphics.endFill();
}
override public function resize(_arg1:ScreenCoordsBase):void{
var _local2:Object = this.resize_helper((_arg1 as ScreenCoords));
var _local3:Number = _arg1.get_y_from_val(Math.max(this.top, this.bottom), this.right_axis);
var _local4:Number = (_arg1.get_y_from_val(this.high, this.right_axis) - _local3);
var _local5:Number = 0;
var _local6:Number = (_arg1.get_y_from_val(this.bottom, this.right_axis) - _local3);
var _local7:Number = (_arg1.get_y_from_val(this.low, this.right_axis) - _local3);
this.tip_pos = new Point((this.x + (_local2.width / 2)), this.y);
var _local8:Number = (_local2.width / 2);
this.graphics.clear();
this.top_line(_local8, _local4);
if (this.top == this.bottom){
this.draw_doji(_local2.width, _local5);
} else {
this.draw_box(_local5, _local2.height, _local2.width, _local2.upside_down);
};
this.bottom_line(_local8, _local2.height, _local7);
this.tip_pos = new Point((this.x + (_local2.width / 2)), (this.y + _local4));
}
private function draw_doji(_arg1:Number, _arg2:Number):void{
this.graphics.beginFill(this.colour, 1);
this.graphics.moveTo(0, (_arg2 - 1));
this.graphics.lineTo(_arg1, (_arg2 - 1));
this.graphics.lineTo(_arg1, (_arg2 + 1));
this.graphics.lineTo(0, (_arg2 + 1));
this.graphics.endFill();
}
private function top_line(_arg1:Number, _arg2:Number):void{
this.graphics.beginFill(this.colour, 1);
this.graphics.moveTo((_arg1 - 1), 0);
this.graphics.lineTo((_arg1 + 1), 0);
this.graphics.lineTo((_arg1 + 1), _arg2);
this.graphics.lineTo((_arg1 - 1), _arg2);
this.graphics.endFill();
}
override protected function replace_magic_values(_arg1:String):String{
_arg1 = super.replace_magic_values(_arg1);
_arg1 = _arg1.replace("#high#", NumberUtils.formatNumber(this.high));
_arg1 = _arg1.replace("#open#", NumberUtils.formatNumber(this.top));
_arg1 = _arg1.replace("#close#", NumberUtils.formatNumber(this.bottom));
_arg1 = _arg1.replace("#low#", NumberUtils.formatNumber(this.low));
return (_arg1);
}
}
}//package charts.series.bars
Section 18
//Glass (charts.series.bars.Glass)
package charts.series.bars {
import flash.geom.*;
import flash.filters.*;
public class Glass extends Base {
public function Glass(_arg1:Number, _arg2:Properties, _arg3:Number){
super(_arg1, _arg2, _arg3);
var _local4:DropShadowFilter = new DropShadowFilter();
_local4.blurX = 5;
_local4.blurY = 5;
_local4.distance = 3;
_local4.angle = 45;
_local4.quality = 2;
_local4.alpha = 0.4;
this.filters = [_local4];
}
override public function resize(_arg1:ScreenCoordsBase):void{
this.graphics.clear();
var _local2:Object = this.resize_helper((_arg1 as ScreenCoords));
if (_local2.height == 0){
return;
};
this.bg(_local2.width, _local2.height, _local2.upside_down);
this.glass(_local2.width, _local2.height, _local2.upside_down);
}
private function bg(_arg1:Number, _arg2:Number, _arg3:Boolean):void{
var _local4:Number = 7;
if (_local4 > (_arg1 / 2)){
_local4 = (_arg1 / 2);
};
this.graphics.lineStyle(0, 0, 0);
this.graphics.beginFill(this.colour, 1);
if (!_arg3){
this.graphics.moveTo((0 + _local4), 0);
this.graphics.lineTo((_arg1 - _local4), 0);
this.graphics.curveTo(_arg1, 0, _arg1, _local4);
this.graphics.lineTo(_arg1, _arg2);
this.graphics.lineTo(0, _arg2);
this.graphics.lineTo(0, (0 + _local4));
this.graphics.curveTo(0, 0, (0 + _local4), 0);
} else {
this.graphics.moveTo(0, 0);
this.graphics.lineTo(_arg1, 0);
this.graphics.lineTo(_arg1, (_arg2 - _local4));
this.graphics.curveTo(_arg1, _arg2, (_arg1 - _local4), _arg2);
this.graphics.lineTo(_local4, _arg2);
this.graphics.curveTo(0, _arg2, 0, (_arg2 - _local4));
this.graphics.lineTo(0, 0);
};
this.graphics.endFill();
}
private function glass(_arg1:Number, _arg2:Number, _arg3:Boolean):void{
var _local4:Number = 2;
var _local5:Number = _local4;
var _local6:Number = ((_arg1 / 2) - _local4);
if (_arg3){
_local5 = (_local5 - _local4);
};
_arg2 = (_arg2 - _local4);
this.graphics.lineStyle(0, 0, 0);
var _local7:Array = [0xFFFFFF, 0xFFFFFF];
var _local8:Array = [0.3, 0.7];
var _local9:Array = [0, 0xFF];
var _local10:Matrix = new Matrix();
_local10.createGradientBox(_local6, height, ((180 / 180) * Math.PI));
this.graphics.beginGradientFill("linear", _local7, _local8, _local9, _local10, "pad");
var _local11:Number = 4;
_arg1 = _local6;
if (!_arg3){
this.graphics.moveTo((_local4 + _local11), _local5);
this.graphics.lineTo((_local4 + _arg1), _local5);
this.graphics.lineTo((_local4 + _arg1), (_local5 + _arg2));
this.graphics.lineTo(_local4, (_local5 + _arg2));
this.graphics.lineTo(_local4, (_local5 + _local11));
this.graphics.curveTo(_local4, _local5, (_local4 + _local11), _local5);
} else {
this.graphics.moveTo(_local4, _local5);
this.graphics.lineTo((_local4 + _arg1), _local5);
this.graphics.lineTo((_local4 + _arg1), (_local5 + _arg2));
this.graphics.lineTo((_local4 + _local11), (_local5 + _arg2));
this.graphics.curveTo(_local4, (_local5 + _arg2), _local4, ((_local5 + _arg2) - _local11));
};
this.graphics.endFill();
}
}
}//package charts.series.bars
Section 19
//Horizontal (charts.series.bars.Horizontal)
package charts.series.bars {
import flash.events.*;
import flash.geom.*;
import charts.series.*;
import caurina.transitions.*;
public class Horizontal extends Element {
protected var group:Number;
private var left:Number;
public var colour:Number;
private var right:Number;
public function Horizontal(_arg1:Number, _arg2:Object, _arg3:Number){
this.index = _arg1;
this.left = (_arg2.left) ? _arg2.left : 0;
this.right = (_arg2.right) ? _arg2.right : 0;
this.colour = _arg2.colour;
this.group = _arg3;
this.visible = true;
this.alpha = 0.5;
this.tooltip = this.replace_magic_values(_arg2.tip);
this.addEventListener(MouseEvent.MOUSE_OVER, this.mouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, this.mouseOut);
}
override public function mouseOut(_arg1:Event):void{
Tweener.addTween(this, {alpha:0.5, time:0.8, transition:Equations.easeOutElastic});
}
override public function resize(_arg1:ScreenCoordsBase):void{
var _local2:ScreenCoords = (_arg1 as ScreenCoords);
var _local3:Object = _local2.get_horiz_bar_coords(this.index, this.group);
var _local4:Number = _arg1.get_x_from_val(this.left);
var _local5:Number = _arg1.get_x_from_val(this.right);
var _local6:Number = (_local5 - _local4);
this.graphics.clear();
this.graphics.beginFill(this.colour, 1);
this.graphics.drawRect(0, 0, _local6, _local3.width);
this.graphics.endFill();
this.x = _local4;
this.y = _local3.y;
}
override public function get_tip_pos():Object{
return ({x:((this.x + this.width) - 20), y:this.y});
}
override public function get_mid_point():Point{
return (new Point((this.x + (this.width / 2)), this.y));
}
override public function mouseOver(_arg1:Event):void{
Tweener.addTween(this, {alpha:1, time:0.6, transition:Equations.easeOutCirc});
}
public function get_max_x():Number{
return (this.right);
}
protected function replace_magic_values(_arg1:String):String{
_arg1 = _arg1.replace("#right#", NumberUtils.formatNumber(this.right));
_arg1 = _arg1.replace("#left#", NumberUtils.formatNumber(this.left));
_arg1 = _arg1.replace("#val#", NumberUtils.formatNumber((this.right - this.left)));
return (_arg1);
}
}
}//package charts.series.bars
Section 20
//Outline (charts.series.bars.Outline)
package charts.series.bars {
public class Outline extends Base {
private var outline:Number;
public function Outline(_arg1:Number, _arg2:Properties, _arg3:Number){
super(_arg1, _arg2, _arg3);
this.outline = _arg2.get_colour("outline-colour");
}
override public function resize(_arg1:ScreenCoordsBase):void{
var _local2:Object = this.resize_helper((_arg1 as ScreenCoords));
this.graphics.clear();
this.graphics.lineStyle(1, this.outline, 1);
this.graphics.beginFill(this.colour, 1);
this.graphics.moveTo(0, 0);
this.graphics.lineTo(_local2.width, 0);
this.graphics.lineTo(_local2.width, _local2.height);
this.graphics.lineTo(0, _local2.height);
this.graphics.lineTo(0, 0);
this.graphics.endFill();
}
}
}//package charts.series.bars
Section 21
//Plastic (charts.series.bars.Plastic)
package charts.series.bars {
import flash.geom.*;
import flash.filters.*;
public class Plastic extends Base {
public function Plastic(_arg1:Number, _arg2:Properties, _arg3:Number){
super(_arg1, _arg2, _arg3);
var _local4:DropShadowFilter = new DropShadowFilter();
_local4.blurX = 5;
_local4.blurY = 5;
_local4.distance = 3;
_local4.angle = 45;
_local4.quality = 2;
_local4.alpha = 0.4;
this.filters = [_local4];
}
public function Ellipse(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
this.graphics.moveTo((_arg1 + _arg3), _arg2);
var _local6:Number = 0;
while (_local6 <= _arg5) {
_local7 = (_local6 / _arg5);
_local8 = magicTrigFunctionX(_local7);
_local9 = magicTrigFunctionY(_local7);
_local10 = (_arg1 + (_local8 * _arg3));
_local11 = (_arg2 + (_local9 * _arg4));
this.graphics.lineTo(_local10, _local11);
_local6++;
};
return (1);
}
override public function resize(_arg1:ScreenCoordsBase):void{
this.graphics.clear();
var _local2:Object = this.resize_helper((_arg1 as ScreenCoords));
this.bg(_local2.width, _local2.height, _local2.upside_down);
this.glass(_local2.width, _local2.height, _local2.upside_down);
}
private function bg(_arg1:Number, _arg2:Number, _arg3:Boolean):void{
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local4:Number = (_arg1 / 3);
if (_local4 > (_arg1 / 2)){
_local4 = (_arg1 / 2);
};
this.graphics.lineStyle(0, 0, 0);
var _local5:Array = GetColours(this.colour);
var _local6:Number = _local5[2];
var _local7:Number = _local5[0];
var _local8:Array = [_local5[1], _local5[2], _local5[2]];
var _local9:Array = [1, 1, 1];
var _local10:Array = [0, 115, 0xFF];
var _local11:Matrix = new Matrix();
var _local16:Number = (0.02 * _arg1);
var _local17:Number = 3;
_local11.createGradientBox(_arg1, _arg2, ((180 / 180) * Math.PI));
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local11, "pad");
if ((((_arg2 > 0)) || ((_arg2 < 0)))){
this.graphics.beginFill(0, 1);
this.graphics.drawRoundRect(0, 0, _arg1, _arg2, (_arg1 / _local17), (_arg1 / _local17));
this.graphics.beginFill(_local7, 1);
this.graphics.drawRoundRect((0 + _local16), (0 + _local16), (_arg1 - (2 * _local16)), (_arg2 - (2 * _local16)), ((_arg1 / _local17) - (2 * _local16)), ((_arg1 / _local17) - (2 * _local16)));
_local16 = (_local16 * 3);
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local11, "pad");
this.graphics.drawRoundRect((0 + _local16), (0 + _local16), (_arg1 - (2 * _local16)), (_arg2 - (2 * _local16)), ((_arg1 / _local17) - (2 * _local16)), ((_arg1 / _local17) - (2 * _local16)));
} else {
this.graphics.beginFill(0, 1);
this.graphics.drawRoundRect(0, (0 - (2 * _local16)), _arg1, (_arg2 + (4 * _local16)), (_arg1 / _local17), (_arg1 / _local17));
this.graphics.beginFill(_local7, 1);
this.graphics.drawRoundRect((0 + _local16), ((0 - (2 * _local16)) + _local16), (_arg1 - (2 * _local16)), ((_arg2 + (4 * _local16)) - (2 * _local16)), ((_arg1 / _local17) - (2 * _local16)), ((_arg1 / _local17) - (2 * _local16)));
_local16 = (_local16 * 3);
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local11, "pad");
this.graphics.drawRoundRect((0 + _local16), ((0 - (2 * _local16)) + _local16), (_arg1 - (2 * _local16)), ((_arg2 + (4 * _local16)) - (2 * _local16)), ((_arg1 / _local17) - (2 * _local16)), ((_arg1 / _local17) - (2 * _local16)));
};
this.graphics.endFill();
}
private function glass(_arg1:Number, _arg2:Number, _arg3:Boolean):void{
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
this.graphics.lineStyle(0, 0, 0);
var _local4:Array = GetColours(this.colour);
var _local5:Matrix = new Matrix();
var _local6:Array = [1, 1];
var _local7:Array = [0, 0xFF];
var _local8:Array = [0xFFFFFF, 0xFFFFFF, 0xFFFFFF];
var _local9:Array = [0, 0.05, 0.75];
var _local10:Array = [0, 123, 0xFF];
var _local15:Matrix = new Matrix();
var _local16:Number = (0.02 * _arg1);
var _local17:Number = 3;
_local15.createGradientBox(width, height, ((180 / 180) * Math.PI));
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local15, "pad");
var _local18:Number = (_arg1 / 3);
if ((((_arg2 > 0)) || ((_arg2 < 0)))){
this.graphics.drawRoundRect((0 + _local16), (0 + _local16), (_arg1 - (2 * _local16)), (_arg2 - (2 * _local16)), ((_arg1 / _local17) - (2 * _local16)), ((_arg1 / _local17) - (2 * _local16)));
} else {
this.graphics.drawRoundRect((0 + _local16), ((0 - (2 * _local16)) + _local16), (_arg1 - (2 * _local16)), ((_arg2 + (4 * _local16)) - (2 * _local16)), ((_arg1 / _local17) - (2 * _local16)), ((_arg1 / _local17) - (2 * _local16)));
};
this.graphics.endFill();
}
public static function magicTrigFunctionY(_arg1:Number):Number{
return (Math.sin(((_arg1 * 2) * Math.PI)));
}
public static function GetColours(_arg1:Number):Array{
var _local2:Number = _arg1;
var _local3:Number = ((_local2 & 0xFF0000) >> 16);
var _local4:Number = ((_local2 & 0xFF00) >> 8);
var _local5:Number = (_local2 & 0xFF);
var _local6:Number = 0.15;
var _local7:Number = 1.75;
var _local8:Number = _arg1;
var _local9:Number = _arg1;
var _local10:Number = _arg1;
var _local11:Number = ((_local2 & 0xFF0000) >> 16);
var _local12:Number = ((_local2 & 0xFF00) >> 8);
var _local13:Number = (_local2 & 0xFF);
var _local14:Number = ((_local2 & 0xFF0000) >> 16);
var _local15:Number = ((_local2 & 0xFF00) >> 8);
var _local16:Number = (_local2 & 0xFF);
var _local17:Number = ((_local2 & 0xFF0000) >> 16);
var _local18:Number = ((_local2 & 0xFF00) >> 8);
var _local19:Number = (_local2 & 0xFF);
if (((((_local3 + (_local3 * _local6)) < 0xFF)) && (((_local3 - ((_local7 * _local3) * _local6)) > 0)))){
_local11 = _local3;
} else {
if ((_local3 + (_local3 * _local6)) < 0xFF){
_local11 = (_local3 + (_local3 / _local6));
} else {
_local11 = (_local3 - ((_local7 * _local3) * _local6));
};
};
if (((((_local5 + (_local5 * _local6)) < 0xFF)) && (((_local5 - ((_local7 * _local5) * _local6)) > 0)))){
_local13 = _local5;
} else {
if ((_local5 + (_local5 * _local6)) < 0xFF){
_local13 = (_local5 + (_local5 * _local6));
} else {
_local13 = (_local5 - ((_local7 * _local5) * _local6));
};
};
if (((((_local4 + (_local4 * _local6)) < 0xFF)) && (((_local4 - ((_local7 * _local4) * _local6)) > 0)))){
_local12 = _local4;
} else {
if ((_local4 + (_local4 * _local6)) < 0xFF){
_local12 = (_local4 + (_local4 * _local6));
} else {
_local12 = (_local4 - ((_local7 * _local4) * _local6));
};
};
_local17 = (_local11 + (_local3 * _local6));
_local14 = (_local11 - (_local7 * (_local3 * _local6)));
_local19 = (_local13 + (_local5 * _local6));
_local16 = (_local13 - (_local7 * (_local5 * _local6)));
_local18 = (_local12 + (_local4 * _local6));
_local15 = (_local12 - (_local7 * (_local4 * _local6)));
_local8 = (((_local11 << 16) | (_local12 << 8)) | _local13);
_local10 = (((_local17 << 16) | (_local18 << 8)) | _local19);
_local9 = (((_local14 << 16) | (_local15 << 8)) | _local16);
return ([_local10, _local8, _local9]);
}
public static function magicTrigFunctionX(_arg1:Number):Number{
return (Math.cos(((_arg1 * 2) * Math.PI)));
}
}
}//package charts.series.bars
Section 22
//PlasticFlat (charts.series.bars.PlasticFlat)
package charts.series.bars {
import flash.geom.*;
import flash.filters.*;
public class PlasticFlat extends Base {
public function PlasticFlat(_arg1:Number, _arg2:Properties, _arg3:Number){
super(_arg1, _arg2, _arg3);
var _local4:DropShadowFilter = new DropShadowFilter();
_local4.blurX = 5;
_local4.blurY = 5;
_local4.distance = 3;
_local4.angle = 45;
_local4.quality = 2;
_local4.alpha = 0.4;
this.filters = [_local4];
}
public function Ellipse(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
this.graphics.moveTo((_arg1 + _arg3), _arg2);
var _local6:Number = 0;
while (_local6 <= _arg5) {
_local7 = (_local6 / _arg5);
_local8 = magicTrigFunctionX(_local7);
_local9 = magicTrigFunctionY(_local7);
_local10 = (_arg1 + (_local8 * _arg3));
_local11 = (_arg2 + (_local9 * _arg4));
this.graphics.lineTo(_local10, _local11);
_local6++;
};
return (1);
}
override public function resize(_arg1:ScreenCoordsBase):void{
this.graphics.clear();
var _local2:Object = this.resize_helper((_arg1 as ScreenCoords));
this.bg(_local2.width, _local2.height, _local2.upside_down);
this.glass(_local2.width, _local2.height, _local2.upside_down);
}
private function bg(_arg1:Number, _arg2:Number, _arg3:Boolean):void{
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local4:Number = (_arg1 / 3);
if (_local4 > (_arg1 / 2)){
_local4 = (_arg1 / 2);
};
this.graphics.lineStyle(0, 0, 0);
var _local5:Array = GetColours(this.colour);
var _local6:Number = _local5[2];
var _local7:Number = _local5[0];
var _local8:Array = [_local5[1], _local5[2], _local5[2]];
var _local9:Array = [1, 1, 1];
var _local10:Array = [0, 115, 0xFF];
var _local11:Matrix = new Matrix();
var _local16:Number = (0.02 * _arg1);
var _local17:Number = 3;
_local11.createGradientBox(_arg1, _arg2, ((180 / 180) * Math.PI));
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local11, "pad");
if ((((_arg2 > 0)) || ((_arg2 < 0)))){
this.graphics.beginFill(0, 1);
this.graphics.drawRoundRect(0, 0, _arg1, _arg2, (_arg1 / _local17), (_arg1 / _local17));
this.graphics.beginFill(_local7, 1);
this.graphics.drawRoundRect((0 + _local16), (0 + _local16), (_arg1 - (2 * _local16)), (_arg2 - (2 * _local16)), ((_arg1 / _local17) - (2 * _local16)), ((_arg1 / _local17) - (2 * _local16)));
_local16 = (_local16 * 3);
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local11, "pad");
this.graphics.drawRoundRect((0 + _local16), (0 + _local16), (_arg1 - (2 * _local16)), (_arg2 - (2 * _local16)), ((_arg1 / _local17) - (2 * _local16)), ((_arg1 / _local17) - (2 * _local16)));
} else {
this.graphics.beginFill(0, 1);
this.graphics.drawRoundRect(0, (0 - (2 * _local16)), _arg1, (_arg2 + (4 * _local16)), (_arg1 / _local17), (_arg1 / _local17));
this.graphics.beginFill(_local7, 1);
this.graphics.drawRoundRect((0 + _local16), ((0 - (2 * _local16)) + _local16), (_arg1 - (2 * _local16)), ((_arg2 + (4 * _local16)) - (2 * _local16)), ((_arg1 / _local17) - (2 * _local16)), ((_arg1 / _local17) - (2 * _local16)));
_local16 = (_local16 * 3);
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local11, "pad");
this.graphics.drawRoundRect((0 + _local16), ((0 - (2 * _local16)) + _local16), (_arg1 - (2 * _local16)), ((_arg2 + (4 * _local16)) - (2 * _local16)), ((_arg1 / _local17) - (2 * _local16)), ((_arg1 / _local17) - (2 * _local16)));
};
this.graphics.endFill();
}
private function glass(_arg1:Number, _arg2:Number, _arg3:Boolean):void{
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
this.graphics.lineStyle(0, 0, 0);
var _local4:Array = GetColours(this.colour);
var _local5:Number = _local4[2];
var _local6:Number = _local4[0];
var _local7:Array = [_local4[1], _local4[2], _local4[2]];
var _local8:Array = [1, 1, 1];
var _local9:Array = [0, 115, 0xFF];
var _local10:Matrix = new Matrix();
var _local11:Array = [0xFFFFFF, 0xFFFFFF, 0xFFFFFF];
var _local12:Array = [0, 0.05, 0.75];
var _local13:Array = [0, 123, 0xFF];
var _local18:Matrix = new Matrix();
var _local19:Number = (0.02 * _arg1);
var _local20:Number = 3;
_local10.createGradientBox(_arg1, _arg2, ((180 / 180) * Math.PI));
_local18.createGradientBox(width, height, ((180 / 180) * Math.PI));
this.graphics.beginGradientFill("linear", _local11, _local12, _local13, _local18, "pad");
var _local21:Number = (_arg1 / 3);
if ((((_arg2 > 0)) && (!(_arg3)))){
this.graphics.drawRoundRect((0 + _local19), (0 + _local19), (_arg1 - (2 * _local19)), (_arg2 - (2 * _local19)), ((_arg1 / _local20) - (2 * _local19)), ((_arg1 / _local20) - (2 * _local19)));
this.graphics.beginFill(0, 1);
this.graphics.drawRect(0, (_arg2 - (_arg2 / 2)), _arg1, (_arg2 / 2));
this.graphics.beginFill(_local6, 1);
this.graphics.drawRect((0 + _local19), (_arg2 - (_arg2 / 2)), (_arg1 - (2 * _local19)), ((_arg2 / 2) - _local19));
_local19 = (_local19 * 3);
this.graphics.beginGradientFill("linear", _local7, _local8, _local9, _local10, "pad");
this.graphics.drawRect((0 + _local19), (_arg2 - (_arg2 / 2)), (_arg1 - (2 * _local19)), ((_arg2 / 2) - _local19));
_local19 = (_local19 / 3);
this.graphics.beginGradientFill("linear", _local11, _local12, _local13, _local18, "pad");
this.graphics.drawRect((0 + _local19), (_arg2 - (_arg2 / 2)), (_arg1 - (2 * _local19)), ((_arg2 / 2) - _local19));
} else {
if (_arg2 > 0){
this.graphics.drawRoundRect((0 + _local19), (0 + _local19), (_arg1 - (2 * _local19)), (_arg2 - (2 * _local19)), ((_arg1 / _local20) - (2 * _local19)), ((_arg1 / _local20) - (2 * _local19)));
this.graphics.beginFill(0, 1);
this.graphics.drawRect(0, 0, _arg1, (_arg2 / 2));
this.graphics.beginFill(_local6, 1);
this.graphics.drawRect((0 + _local19), (0 + _local19), (_arg1 - (2 * _local19)), ((_arg2 / 2) - _local19));
_local19 = (_local19 * 3);
this.graphics.beginGradientFill("linear", _local7, _local8, _local9, _local10, "pad");
this.graphics.drawRect((0 + _local19), (0 + _local19), (_arg1 - (2 * _local19)), ((_arg2 / 2) - _local19));
_local19 = (_local19 / 3);
this.graphics.beginGradientFill("linear", _local11, _local12, _local13, _local18, "pad");
this.graphics.drawRect((0 + _local19), (0 + _local19), (_arg1 - (2 * _local19)), ((_arg2 / 2) - _local19));
} else {
this.graphics.drawRoundRect((0 + _local19), ((0 - (2 * _local19)) + _local19), (_arg1 - (2 * _local19)), ((_arg2 + (4 * _local19)) - (2 * _local19)), ((_arg1 / _local20) - (2 * _local19)), ((_arg1 / _local20) - (2 * _local19)));
};
};
this.graphics.endFill();
}
public static function magicTrigFunctionY(_arg1:Number):Number{
return (Math.sin(((_arg1 * 2) * Math.PI)));
}
public static function GetColours(_arg1:Number):Array{
var _local2:Number = _arg1;
var _local3:Number = ((_local2 & 0xFF0000) >> 16);
var _local4:Number = ((_local2 & 0xFF00) >> 8);
var _local5:Number = (_local2 & 0xFF);
var _local6:Number = 0.15;
var _local7:Number = 1.75;
var _local8:Number = _arg1;
var _local9:Number = _arg1;
var _local10:Number = _arg1;
var _local11:Number = ((_local2 & 0xFF0000) >> 16);
var _local12:Number = ((_local2 & 0xFF00) >> 8);
var _local13:Number = (_local2 & 0xFF);
var _local14:Number = ((_local2 & 0xFF0000) >> 16);
var _local15:Number = ((_local2 & 0xFF00) >> 8);
var _local16:Number = (_local2 & 0xFF);
var _local17:Number = ((_local2 & 0xFF0000) >> 16);
var _local18:Number = ((_local2 & 0xFF00) >> 8);
var _local19:Number = (_local2 & 0xFF);
if (((((_local3 + (_local3 * _local6)) < 0xFF)) && (((_local3 - ((_local7 * _local3) * _local6)) > 0)))){
_local11 = _local3;
} else {
if ((_local3 + (_local3 * _local6)) < 0xFF){
_local11 = (_local3 + (_local3 / _local6));
} else {
_local11 = (_local3 - ((_local7 * _local3) * _local6));
};
};
if (((((_local5 + (_local5 * _local6)) < 0xFF)) && (((_local5 - ((_local7 * _local5) * _local6)) > 0)))){
_local13 = _local5;
} else {
if ((_local5 + (_local5 * _local6)) < 0xFF){
_local13 = (_local5 + (_local5 * _local6));
} else {
_local13 = (_local5 - ((_local7 * _local5) * _local6));
};
};
if (((((_local4 + (_local4 * _local6)) < 0xFF)) && (((_local4 - ((_local7 * _local4) * _local6)) > 0)))){
_local12 = _local4;
} else {
if ((_local4 + (_local4 * _local6)) < 0xFF){
_local12 = (_local4 + (_local4 * _local6));
} else {
_local12 = (_local4 - ((_local7 * _local4) * _local6));
};
};
_local17 = (_local11 + (_local3 * _local6));
_local14 = (_local11 - (_local7 * (_local3 * _local6)));
_local19 = (_local13 + (_local5 * _local6));
_local16 = (_local13 - (_local7 * (_local5 * _local6)));
_local18 = (_local12 + (_local4 * _local6));
_local15 = (_local12 - (_local7 * (_local4 * _local6)));
_local8 = (((_local11 << 16) | (_local12 << 8)) | _local13);
_local10 = (((_local17 << 16) | (_local18 << 8)) | _local19);
_local9 = (((_local14 << 16) | (_local15 << 8)) | _local16);
return ([_local10, _local8, _local9]);
}
public static function magicTrigFunctionX(_arg1:Number):Number{
return (Math.cos(((_arg1 * 2) * Math.PI)));
}
}
}//package charts.series.bars
Section 23
//Round (charts.series.bars.Round)
package charts.series.bars {
import flash.geom.*;
import flash.filters.*;
public class Round extends Base {
public function Round(_arg1:Number, _arg2:Properties, _arg3:Number){
super(_arg1, _arg2, _arg3);
var _local4:DropShadowFilter = new DropShadowFilter();
_local4.blurX = 5;
_local4.blurY = 5;
_local4.distance = 3;
_local4.angle = 45;
_local4.quality = 2;
_local4.alpha = 0.4;
this.filters = [_local4];
}
public function Ellipse(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
this.graphics.moveTo((_arg1 + _arg3), _arg2);
var _local6:Number = 0;
while (_local6 <= _arg5) {
_local7 = (_local6 / _arg5);
_local8 = magicTrigFunctionX(_local7);
_local9 = magicTrigFunctionY(_local7);
_local10 = (_arg1 + (_local8 * _arg3));
_local11 = (_arg2 + (_local9 * _arg4));
this.graphics.lineTo(_local10, _local11);
_local6++;
};
return (1);
}
public function halfEllipse(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Boolean):Number{
var _local7:Number;
var _local8:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
if (_arg6 == true){
_local7 = (_arg5 / 2);
_local8 = _arg5;
} else {
_local7 = 0;
_local8 = (_arg5 / 2);
};
this.graphics.moveTo((_arg1 + _arg3), _arg2);
var _local9:Number = _local7;
while (_local9 <= _local8) {
_local10 = (_local9 / _arg5);
_local11 = magicTrigFunctionX(_local10);
_local12 = magicTrigFunctionY(_local10);
_local13 = (_arg1 + (_local11 * _arg3));
_local14 = (_arg2 + (_local12 * _arg4));
this.graphics.lineTo(_local13, _local14);
_local9++;
};
return (1);
}
override public function resize(_arg1:ScreenCoordsBase):void{
this.graphics.clear();
var _local2:Object = this.resize_helper((_arg1 as ScreenCoords));
this.bg(_local2.width, _local2.height, _local2.upside_down);
this.glass(_local2.width, _local2.height, _local2.upside_down);
}
private function bg(_arg1:Number, _arg2:Number, _arg3:Boolean):void{
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local4:Number = (_arg1 / 3);
if (_local4 > (_arg1 / 2)){
_local4 = (_arg1 / 2);
};
this.graphics.lineStyle(0, 0, 0);
var _local5:Array = GetColours(this.colour);
var _local6:Array = [1, 1];
var _local7:Array = [0, 0xFF];
var _local8:Matrix = new Matrix();
_local8.createGradientBox(_arg1, _arg2, ((180 / 180) * Math.PI));
this.graphics.beginGradientFill("linear", _local5, _local6, _local7, _local8, "pad");
if (_arg2 > 0){
if (_arg2 >= _arg1){
_local11 = (_arg1 / 2);
_local12 = (_arg2 - (_arg1 / 2));
_local9 = (_arg1 / 2);
_local10 = _local9;
halfEllipse(_local11, _local12, _local9, _local10, 100, false);
this.graphics.beginGradientFill("linear", _local5, _local6, _local7, _local8, "pad");
this.graphics.moveTo(0, (_arg1 / 2));
this.graphics.lineTo(0, (_arg2 - (_arg1 / 2)));
this.graphics.lineTo(_arg1, (_arg2 - (_arg1 / 2)));
this.graphics.lineTo(_arg1, (_arg1 / 2));
_local11 = (_arg1 / 2);
_local12 = (_arg1 / 2);
_local9 = (_arg1 / 2);
_local10 = _local9;
halfEllipse(_local11, _local12, _local9, _local10, 100, true);
} else {
_local11 = (_arg1 / 2);
_local12 = (_arg2 / 2);
_local9 = (_arg1 / 2);
_local10 = (_arg2 / 2);
halfEllipse(_local11, _local12, _local9, _local10, 100, false);
_local11 = (_arg1 / 2);
_local12 = (_arg2 / 2);
_local9 = (_arg1 / 2);
_local10 = (_arg2 / 2);
halfEllipse(_local11, _local12, _local9, _local10, 100, true);
};
} else {
_local11 = (_arg1 / 2);
_local12 = _arg2;
_local9 = (_arg1 / 2);
_local10 = (_local4 / 4);
Ellipse(_local11, _local12, _local9, _local10, 100);
};
this.graphics.endFill();
}
private function glass(_arg1:Number, _arg2:Number, _arg3:Boolean):void{
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
this.graphics.lineStyle(0, 0, 0);
var _local4:Array = GetColours(this.colour);
var _local5:Array = [1, 1];
var _local6:Array = [0, 0xFF];
var _local7:Matrix = new Matrix();
_local7.createGradientBox(_arg1, _arg2, ((180 / 180) * Math.PI));
var _local8:Array = [0xFFFFFF, 0xFFFFFF];
var _local9:Array = [0, 0.75];
var _local10:Array = [100, 0xFF];
var _local15:Matrix = new Matrix();
_local15.createGradientBox(width, height, ((180 / 180) * Math.PI));
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local15, "pad");
var _local16:Number = (_arg1 / 3);
if (_arg2 > 0){
if (_arg2 >= _arg1){
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local15, "pad");
_local13 = (_arg1 / 3);
_local14 = (_arg2 - (_arg1 / 2));
_local11 = ((_arg1 / 3) - (0.05 * _arg1));
_local12 = (_local11 + (0.05 * _arg1));
halfEllipse(_local13, _local14, _local11, _local12, 100, false);
this.graphics.moveTo((0 + (0.05 * _arg1)), (_arg1 / 2));
this.graphics.lineTo((0 + (0.05 * _arg1)), (_arg2 - (_arg1 / 2)));
this.graphics.lineTo((_arg1 - (0.05 * _arg1)), (_arg2 - (_arg1 / 2)));
this.graphics.lineTo((_arg1 - (0.05 * _arg1)), (_arg1 / 2));
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local15, "pad");
_local13 = (_arg1 / 3);
_local14 = (_arg1 / 2);
_local11 = ((_arg1 / 3) - (0.05 * _arg1));
_local12 = (_local11 + (0.05 * _arg1));
halfEllipse(_local13, _local14, _local11, _local12, 100, true);
} else {
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local15, "pad");
_local13 = (_arg1 / 3);
_local14 = (_arg2 / 2);
_local11 = ((_arg1 / 3) - (0.05 * _arg1));
_local12 = ((_arg2 / 2) - (3 * (0.05 * _arg1)));
Ellipse(_local13, _local14, _local11, _local12, 100);
};
} else {
_local13 = (_arg1 / 2);
_local14 = _arg2;
_local11 = ((_arg1 / 2) - (0.05 * _arg1));
_local12 = ((_local16 / 4) - (0.05 * _arg1));
Ellipse(_local13, _local14, _local11, _local12, 100);
};
this.graphics.endFill();
}
public static function magicTrigFunctionY(_arg1:Number):Number{
return (Math.sin(((_arg1 * 2) * Math.PI)));
}
public static function GetColours(_arg1:Number):Array{
var _local2:Number = _arg1;
var _local3:Number = ((_local2 & 0xFF0000) >> 16);
var _local4:Number = ((_local2 & 0xFF00) >> 8);
var _local5:Number = (_local2 & 0xFF);
var _local6:Number = 2;
var _local7:Number = _arg1;
var _local8:Number = _arg1;
var _local9:Number = ((_local2 & 0xFF0000) >> 16);
var _local10:Number = ((_local2 & 0xFF00) >> 8);
var _local11:Number = (_local2 & 0xFF);
var _local12:Number = ((_local2 & 0xFF0000) >> 16);
var _local13:Number = ((_local2 & 0xFF00) >> 8);
var _local14:Number = (_local2 & 0xFF);
if (((((((_local3 + (_local3 / _local6)) > 0xFF)) || (((_local4 + (_local4 / _local6)) > 0xFF)))) || (((_local5 + (_local5 / _local6)) > 0xFF)))){
_local9 = (_local3 - (_local3 / _local6));
_local10 = (_local4 - (_local4 / _local6));
_local11 = (_local5 - (_local5 / _local6));
};
_local12 = (_local9 + (_local3 / _local6));
_local14 = (_local11 + (_local5 / _local6));
_local13 = (_local10 + (_local4 / _local6));
_local7 = (((_local9 << 16) | (_local10 << 8)) | _local11);
_local8 = (((_local12 << 16) | (_local13 << 8)) | _local14);
return ([_local8, _local7]);
}
public static function magicTrigFunctionX(_arg1:Number):Number{
return (Math.cos(((_arg1 * 2) * Math.PI)));
}
}
}//package charts.series.bars
Section 24
//Round3D (charts.series.bars.Round3D)
package charts.series.bars {
import flash.geom.*;
import flash.filters.*;
public class Round3D extends Base {
public function Round3D(_arg1:Number, _arg2:Properties, _arg3:Number){
super(_arg1, _arg2, _arg3);
var _local4:DropShadowFilter = new DropShadowFilter();
_local4.blurX = 5;
_local4.blurY = 5;
_local4.distance = 3;
_local4.angle = 45;
_local4.quality = 2;
_local4.alpha = 0.4;
this.filters = [_local4];
}
public function Ellipse(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
this.graphics.moveTo((_arg1 + _arg3), _arg2);
var _local6:Number = 0;
while (_local6 <= _arg5) {
_local7 = (_local6 / _arg5);
_local8 = magicTrigFunctionX(_local7);
_local9 = magicTrigFunctionY(_local7);
_local10 = (_arg1 + (_local8 * _arg3));
_local11 = (_arg2 + (_local9 * _arg4));
this.graphics.lineTo(_local10, _local11);
_local6++;
};
return (1);
}
public function halfEllipse(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Boolean):Number{
var _local7:Number;
var _local8:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
if (_arg6 == true){
_local7 = (_arg5 / 2);
_local8 = _arg5;
} else {
_local7 = 0;
_local8 = (_arg5 / 2);
};
this.graphics.moveTo((_arg1 + _arg3), _arg2);
var _local9:Number = _local7;
while (_local9 <= _local8) {
_local10 = (_local9 / _arg5);
_local11 = magicTrigFunctionX(_local10);
_local12 = magicTrigFunctionY(_local10);
_local13 = (_arg1 + (_local11 * _arg3));
_local14 = (_arg2 + (_local12 * _arg4));
this.graphics.lineTo(_local13, _local14);
_local9++;
};
return (1);
}
override public function resize(_arg1:ScreenCoordsBase):void{
this.graphics.clear();
var _local2:Object = this.resize_helper((_arg1 as ScreenCoords));
this.bg(_local2.width, _local2.height, _local2.upside_down);
this.glass(_local2.width, _local2.height, _local2.upside_down);
}
private function bg(_arg1:Number, _arg2:Number, _arg3:Boolean):void{
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local4:Number = (_arg1 / 3);
if (_local4 > (_arg1 / 2)){
_local4 = (_arg1 / 2);
};
this.graphics.lineStyle(0, 0, 0);
var _local5:Array = GetColours(this.colour);
var _local6:Array = [1, 1];
var _local7:Array = [0, 0xFF];
var _local8:Matrix = new Matrix();
_local8.createGradientBox(_arg1, _arg2, ((180 / 180) * Math.PI));
this.graphics.beginGradientFill("linear", _local5, _local6, _local7, _local8, "pad");
if (((!(_arg3)) && ((_arg2 > 0)))){
if (_arg2 >= (_arg1 / 2)){
_local11 = (_arg1 / 2);
_local12 = _arg2;
_local9 = (_arg1 / 2);
_local10 = (_local4 / 2);
halfEllipse(_local11, _local12, _local9, _local10, 100, false);
this.graphics.beginGradientFill("linear", _local5, _local6, _local7, _local8, "pad");
this.graphics.moveTo(0, (_arg1 / 2));
this.graphics.lineTo(0, _arg2);
this.graphics.lineTo(_arg1, _arg2);
this.graphics.lineTo(_arg1, (_arg1 / 2));
_local11 = (_arg1 / 2);
_local12 = (_arg1 / 2);
_local9 = (_arg1 / 2);
_local10 = _local9;
halfEllipse(_local11, _local12, _local9, _local10, 100, true);
} else {
_local11 = (_arg1 / 2);
_local12 = _arg2;
_local9 = (_arg1 / 2);
_local10 = (_local4 / 2);
halfEllipse(_local11, _local12, _local9, _local10, 100, false);
_local11 = (_arg1 / 2);
_local12 = _arg2;
_local9 = (_arg1 / 2);
_local10 = _arg2;
halfEllipse(_local11, _local12, _local9, _local10, 100, true);
};
} else {
if (_arg2 >= (_arg1 / 2)){
_local11 = (_arg1 / 2);
_local12 = 0;
_local9 = (_arg1 / 2);
_local10 = (_local4 / 2);
halfEllipse(_local11, _local12, _local9, _local10, 100, true);
this.graphics.beginGradientFill("linear", _local5, _local6, _local7, _local8, "pad");
this.graphics.moveTo(0, 0);
this.graphics.lineTo(0, (_arg2 - (_arg1 / 2)));
this.graphics.lineTo(_arg1, (_arg2 - (_arg1 / 2)));
this.graphics.lineTo(_arg1, 0);
_local11 = (_arg1 / 2);
_local12 = (_arg2 - (_arg1 / 2));
_local9 = (_arg1 / 2);
_local10 = _local9;
halfEllipse(_local11, _local12, _local9, _local10, 100, false);
} else {
if (_arg2 > 0){
_local11 = (_arg1 / 2);
_local12 = 0;
_local9 = (_arg1 / 2);
_local10 = (_local4 / 2);
halfEllipse(_local11, _local12, _local9, _local10, 100, true);
_local11 = (_arg1 / 2);
_local12 = 0;
_local9 = (_arg1 / 2);
_local10 = _arg2;
halfEllipse(_local11, _local12, _local9, _local10, 100, false);
} else {
_local11 = (_arg1 / 2);
_local12 = _arg2;
_local9 = (_arg1 / 2);
_local10 = (_local4 / 4);
Ellipse(_local11, _local12, _local9, _local10, 100);
};
};
};
this.graphics.endFill();
}
private function glass(_arg1:Number, _arg2:Number, _arg3:Boolean):void{
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
this.graphics.lineStyle(0, 0, 0);
var _local4:Array = GetColours(this.colour);
var _local5:Array = [1, 1];
var _local6:Array = [0, 0xFF];
var _local7:Matrix = new Matrix();
_local7.createGradientBox(_arg1, _arg2, ((180 / 180) * Math.PI));
var _local8:Array = [0xFFFFFF, 0xFFFFFF];
var _local9:Array = [0, 0.75];
var _local10:Array = [100, 0xFF];
var _local15:Matrix = new Matrix();
_local15.createGradientBox(width, height, ((180 / 180) * Math.PI));
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local15, "pad");
var _local16:Number = (_arg1 / 3);
if (((!(_arg3)) && ((_arg2 > 0)))){
if (_arg2 >= (_arg1 / 2)){
_local13 = (_arg1 / 2);
_local14 = _arg2;
_local11 = ((_arg1 / 2) - (0.05 * _arg1));
_local12 = ((_local16 / 2) - (0.05 * _arg1));
halfEllipse(_local13, _local14, _local11, _local12, 100, false);
this.graphics.moveTo((0 + (0.05 * _arg1)), (_arg1 / 2));
this.graphics.lineTo((0 + (0.05 * _arg1)), _arg2);
this.graphics.lineTo((_arg1 - (0.05 * _arg1)), _arg2);
this.graphics.lineTo((_arg1 - (0.05 * _arg1)), (_arg1 / 2));
this.graphics.beginGradientFill("linear", _local4, _local5, _local6, _local7, "pad");
_local13 = (_arg1 / 2);
_local14 = (_arg1 / 2);
_local11 = (_arg1 / 2);
_local12 = _local11;
halfEllipse(_local13, _local14, _local11, _local12, 100, true);
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local15, "pad");
_local13 = (_arg1 / 3);
_local14 = (_arg1 / 2);
_local11 = ((_arg1 / 3) - (0.05 * _arg1));
_local12 = (_local11 + (0.05 * _arg1));
halfEllipse(_local13, _local14, _local11, _local12, 100, true);
} else {
_local13 = (_arg1 / 2);
_local14 = _arg2;
_local11 = ((_arg1 / 2) - (0.05 * _arg1));
_local12 = ((_local16 / 2) - (0.05 * _arg1));
halfEllipse(_local13, _local14, _local11, _local12, 100, false);
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local15, "pad");
_local13 = (_arg1 / 3);
_local14 = _arg2;
_local11 = ((_arg1 / 3) - (0.05 * _arg1));
_local12 = (_arg2 - (2.5 * (0.05 * _arg1)));
halfEllipse(_local13, _local14, _local11, _local12, 100, true);
};
} else {
if (_arg2 >= (_arg1 / 2)){
this.graphics.moveTo((0 + (0.05 * _arg1)), 0);
this.graphics.lineTo((0 + (0.05 * _arg1)), (_arg2 - (_arg1 / 2)));
this.graphics.lineTo((_arg1 - (0.05 * _arg1)), (_arg2 - (_arg1 / 2)));
this.graphics.lineTo((_arg1 - (0.05 * _arg1)), 0);
this.graphics.beginGradientFill("linear", _local4, _local5, _local6, _local7, "pad");
_local13 = (_arg1 / 2);
_local14 = (_arg2 - (_arg1 / 2));
_local11 = (_arg1 / 2);
_local12 = _local11;
halfEllipse(_local13, _local14, _local11, _local12, 100, false);
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local15, "pad");
_local13 = (_arg1 / 3);
_local14 = (_arg2 - (_arg1 / 2));
_local11 = ((_arg1 / 3) - (0.05 * _arg1));
_local12 = (_local11 + (0.05 * _arg1));
halfEllipse(_local13, _local14, _local11, _local12, 100, false);
this.graphics.beginGradientFill("linear", _local4, _local5, _local6, _local7, "pad");
_local13 = (_arg1 / 2);
_local14 = 0;
_local11 = (_arg1 / 2);
_local12 = (_local16 / 2);
Ellipse(_local13, _local14, _local11, _local12, 100);
this.graphics.beginGradientFill("linear", _local8, [0.1, 0.7], [0, 0xFF], _local15, "pad");
_local13 = (_arg1 / 2);
_local14 = 0;
_local11 = ((_arg1 / 2) - (0.05 * _arg1));
_local12 = ((_local16 / 2) - (0.05 * _arg1));
Ellipse(_local13, _local14, _local11, _local12, 100);
} else {
if (_arg2 > 0){
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local15, "pad");
_local13 = (_arg1 / 3);
_local14 = 0;
_local11 = ((_arg1 / 3) - (0.05 * _arg1));
_local12 = (_arg2 - (2.5 * (0.05 * _arg1)));
halfEllipse(_local13, _local14, _local11, _local12, 100, false);
this.graphics.beginGradientFill("linear", _local4, _local5, _local6, _local7, "pad");
_local13 = (_arg1 / 2);
_local14 = 0;
_local11 = (_arg1 / 2);
_local12 = (_local16 / 2);
Ellipse(_local13, _local14, _local11, _local12, 100);
this.graphics.beginGradientFill("linear", _local8, [0.1, 0.67], [0, 0xFF], _local15, "pad");
_local13 = (_arg1 / 2);
_local14 = 0;
_local11 = ((_arg1 / 2) - (0.05 * _arg1));
_local12 = ((_local16 / 2) - (0.05 * _arg1));
Ellipse(_local13, _local14, _local11, _local12, 100);
} else {
this.graphics.beginGradientFill("linear", _local4, _local5, _local6, _local7, "pad");
_local13 = (_arg1 / 2);
_local14 = 0;
_local11 = (_arg1 / 2);
_local12 = (_local16 / 2);
Ellipse(_local13, _local14, _local11, _local12, 100);
this.graphics.beginGradientFill("linear", _local8, [0.1, 0.7], [0, 0xFF], _local15, "pad");
_local13 = (_arg1 / 2);
_local14 = 0;
_local11 = ((_arg1 / 2) - (0.05 * _arg1));
_local12 = ((_local16 / 2) - (0.05 * _arg1));
Ellipse(_local13, _local14, _local11, _local12, 100);
};
};
};
this.graphics.endFill();
}
public static function magicTrigFunctionY(_arg1:Number):Number{
return (Math.sin(((_arg1 * 2) * Math.PI)));
}
public static function GetColours(_arg1:Number):Array{
var _local2:Number = _arg1;
var _local3:Number = ((_local2 & 0xFF0000) >> 16);
var _local4:Number = ((_local2 & 0xFF00) >> 8);
var _local5:Number = (_local2 & 0xFF);
var _local6:Number = 2;
var _local7:Number = _arg1;
var _local8:Number = _arg1;
var _local9:Number = ((_local2 & 0xFF0000) >> 16);
var _local10:Number = ((_local2 & 0xFF00) >> 8);
var _local11:Number = (_local2 & 0xFF);
var _local12:Number = ((_local2 & 0xFF0000) >> 16);
var _local13:Number = ((_local2 & 0xFF00) >> 8);
var _local14:Number = (_local2 & 0xFF);
if (((((((_local3 + (_local3 / _local6)) > 0xFF)) || (((_local4 + (_local4 / _local6)) > 0xFF)))) || (((_local5 + (_local5 / _local6)) > 0xFF)))){
_local9 = (_local3 - (_local3 / _local6));
_local10 = (_local4 - (_local4 / _local6));
_local11 = (_local5 - (_local5 / _local6));
};
_local12 = (_local9 + (_local3 / _local6));
_local14 = (_local11 + (_local5 / _local6));
_local13 = (_local10 + (_local4 / _local6));
_local7 = (((_local9 << 16) | (_local10 << 8)) | _local11);
_local8 = (((_local12 << 16) | (_local13 << 8)) | _local14);
return ([_local8, _local7]);
}
public static function magicTrigFunctionX(_arg1:Number):Number{
return (Math.cos(((_arg1 * 2) * Math.PI)));
}
}
}//package charts.series.bars
Section 25
//RoundGlass (charts.series.bars.RoundGlass)
package charts.series.bars {
import flash.geom.*;
import flash.filters.*;
public class RoundGlass extends Base {
public function RoundGlass(_arg1:Number, _arg2:Properties, _arg3:Number){
super(_arg1, _arg2, _arg3);
var _local4:DropShadowFilter = new DropShadowFilter();
_local4.blurX = 5;
_local4.blurY = 5;
_local4.distance = 3;
_local4.angle = 45;
_local4.quality = 2;
_local4.alpha = 0.4;
this.filters = [_local4];
}
public function Ellipse(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
this.graphics.moveTo((_arg1 + _arg3), _arg2);
var _local6:Number = 0;
while (_local6 <= _arg5) {
_local7 = (_local6 / _arg5);
_local8 = magicTrigFunctionX(_local7);
_local9 = magicTrigFunctionY(_local7);
_local10 = (_arg1 + (_local8 * _arg3));
_local11 = (_arg2 + (_local9 * _arg4));
this.graphics.lineTo(_local10, _local11);
_local6++;
};
return (1);
}
public function halfEllipse(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Boolean):Number{
var _local7:Number;
var _local8:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
if (_arg6 == true){
_local7 = (_arg5 / 2);
_local8 = _arg5;
} else {
_local7 = 0;
_local8 = (_arg5 / 2);
};
this.graphics.moveTo((_arg1 + _arg3), _arg2);
var _local9:Number = _local7;
while (_local9 <= _local8) {
_local10 = (_local9 / _arg5);
_local11 = magicTrigFunctionX(_local10);
_local12 = magicTrigFunctionY(_local10);
_local13 = (_arg1 + (_local11 * _arg3));
_local14 = (_arg2 + (_local12 * _arg4));
this.graphics.lineTo(_local13, _local14);
_local9++;
};
return (1);
}
override public function resize(_arg1:ScreenCoordsBase):void{
this.graphics.clear();
var _local2:Object = this.resize_helper((_arg1 as ScreenCoords));
this.bg(_local2.width, _local2.height, _local2.upside_down);
this.glass(_local2.width, _local2.height, _local2.upside_down);
}
private function bg(_arg1:Number, _arg2:Number, _arg3:Boolean):void{
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local4:Number = (_arg1 / 3);
if (_local4 > (_arg1 / 2)){
_local4 = (_arg1 / 2);
};
this.graphics.lineStyle(0, 0, 0);
var _local5:Array = GetColours(this.colour);
var _local6:Array = [1, 1];
var _local7:Array = [0, 0xFF];
var _local8:Matrix = new Matrix();
_local8.createGradientBox(_arg1, _arg2, ((180 / 180) * Math.PI));
this.graphics.beginGradientFill("linear", _local5, _local6, _local7, _local8, "pad");
if (((!(_arg3)) && ((_arg2 > 0)))){
if (_arg2 >= (_arg1 / 2)){
this.graphics.beginGradientFill("linear", _local5, _local6, _local7, _local8, "pad");
this.graphics.moveTo(0, (_arg1 / 2));
this.graphics.lineTo(0, _arg2);
this.graphics.lineTo(_arg1, _arg2);
this.graphics.lineTo(_arg1, (_arg1 / 2));
_local11 = (_arg1 / 2);
_local12 = (_arg1 / 2);
_local9 = (_arg1 / 2);
_local10 = _local9;
halfEllipse(_local11, _local12, _local9, _local10, 100, true);
} else {
_local11 = (_arg1 / 2);
_local12 = _arg2;
_local9 = (_arg1 / 2);
_local10 = _arg2;
halfEllipse(_local11, _local12, _local9, _local10, 100, true);
};
} else {
if (_arg2 >= (_arg1 / 2)){
this.graphics.beginGradientFill("linear", _local5, _local6, _local7, _local8, "pad");
this.graphics.moveTo(0, 0);
this.graphics.lineTo(0, (_arg2 - (_arg1 / 2)));
this.graphics.lineTo(_arg1, (_arg2 - (_arg1 / 2)));
this.graphics.lineTo(_arg1, 0);
_local11 = (_arg1 / 2);
_local12 = (_arg2 - (_arg1 / 2));
_local9 = (_arg1 / 2);
_local10 = _local9;
halfEllipse(_local11, _local12, _local9, _local10, 100, false);
} else {
if (_arg2 > 0){
_local11 = (_arg1 / 2);
_local12 = 0;
_local9 = (_arg1 / 2);
_local10 = _arg2;
halfEllipse(_local11, _local12, _local9, _local10, 100, false);
} else {
this.graphics.beginGradientFill("linear", _local5, _local6, _local7, _local8, "pad");
this.graphics.moveTo(0, (-0.05 * _arg1));
this.graphics.lineTo(0, (_arg2 + (0.05 * _arg1)));
this.graphics.lineTo(_arg1, (_arg2 + (0.05 * _arg1)));
this.graphics.lineTo(_arg1, (-0.05 * _arg1));
};
};
};
this.graphics.endFill();
}
private function glass(_arg1:Number, _arg2:Number, _arg3:Boolean):void{
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
this.graphics.lineStyle(0, 0, 0);
var _local4:Array = GetColours(this.colour);
var _local5:Array = [1, 1];
var _local6:Array = [0, 0xFF];
var _local7:Matrix = new Matrix();
_local7.createGradientBox(_arg1, _arg2, ((180 / 180) * Math.PI));
var _local8:Array = [0xFFFFFF, 0xFFFFFF];
var _local9:Array = [0, 0.75];
var _local10:Array = [100, 0xFF];
var _local15:Matrix = new Matrix();
_local15.createGradientBox(width, height, ((180 / 180) * Math.PI));
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local15, "pad");
var _local16:Number = (_arg1 / 3);
if (((!(_arg3)) && ((_arg2 > 0)))){
if (_arg2 >= (_arg1 / 2)){
this.graphics.moveTo((0 + (0.05 * _arg1)), (_arg1 / 2));
this.graphics.lineTo((0 + (0.05 * _arg1)), (_arg2 - (0.05 * _arg1)));
this.graphics.lineTo((_arg1 - (0.05 * _arg1)), (_arg2 - (0.05 * _arg1)));
this.graphics.lineTo((_arg1 - (0.05 * _arg1)), (_arg1 / 2));
this.graphics.beginGradientFill("linear", _local4, _local5, _local6, _local7, "pad");
_local13 = (_arg1 / 2);
_local14 = (_arg1 / 2);
_local11 = (_arg1 / 2);
_local12 = _local11;
halfEllipse(_local13, _local14, _local11, _local12, 100, true);
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local15, "pad");
_local13 = (_arg1 / 3);
_local14 = (_arg1 / 2);
_local11 = ((_arg1 / 3) - (0.05 * _arg1));
_local12 = (_local11 + (0.05 * _arg1));
halfEllipse(_local13, _local14, _local11, _local12, 100, true);
} else {
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local15, "pad");
_local13 = (_arg1 / 3);
_local14 = (_arg2 - (0.05 * _arg1));
_local11 = ((_arg1 / 3) - (0.05 * _arg1));
_local12 = (_arg2 - (2.5 * (0.05 * _arg1)));
halfEllipse(_local13, _local14, _local11, _local12, 100, true);
};
} else {
if (_arg2 >= (_arg1 / 2)){
this.graphics.moveTo((0 + (0.05 * _arg1)), (0 + (0.05 * _arg1)));
this.graphics.lineTo((0 + (0.05 * _arg1)), (_arg2 - (_arg1 / 2)));
this.graphics.lineTo((_arg1 - (0.05 * _arg1)), (_arg2 - (_arg1 / 2)));
this.graphics.lineTo((_arg1 - (0.05 * _arg1)), (0 + (0.05 * _arg1)));
this.graphics.beginGradientFill("linear", _local4, _local5, _local6, _local7, "pad");
_local13 = (_arg1 / 2);
_local14 = (_arg2 - (_arg1 / 2));
_local11 = (_arg1 / 2);
_local12 = _local11;
halfEllipse(_local13, _local14, _local11, _local12, 100, false);
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local15, "pad");
_local13 = (_arg1 / 3);
_local14 = (_arg2 - (_arg1 / 2));
_local11 = ((_arg1 / 3) - (0.05 * _arg1));
_local12 = (_local11 + (0.05 * _arg1));
halfEllipse(_local13, _local14, _local11, _local12, 100, false);
} else {
if (_arg2 > 0){
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local15, "pad");
_local13 = (_arg1 / 3);
_local14 = (0 + (0.05 * _arg1));
_local11 = ((_arg1 / 3) - (0.05 * _arg1));
_local12 = (_arg2 - (2.5 * (0.05 * _arg1)));
halfEllipse(_local13, _local14, _local11, _local12, 100, false);
} else {
this.graphics.moveTo((0 + (0.025 * _arg1)), (-0.025 * _arg1));
this.graphics.lineTo((0 + (0.025 * _arg1)), (_arg2 + (0.025 * _arg1)));
this.graphics.lineTo(_arg1, (_arg2 + (0.025 * _arg1)));
this.graphics.lineTo(_arg1, (-0.025 * _arg1));
};
};
};
this.graphics.endFill();
}
public static function magicTrigFunctionY(_arg1:Number):Number{
return (Math.sin(((_arg1 * 2) * Math.PI)));
}
public static function GetColours(_arg1:Number):Array{
var _local2:Number = _arg1;
var _local3:Number = ((_local2 & 0xFF0000) >> 16);
var _local4:Number = ((_local2 & 0xFF00) >> 8);
var _local5:Number = (_local2 & 0xFF);
var _local6:Number = 2;
var _local7:Number = _arg1;
var _local8:Number = _arg1;
var _local9:Number = ((_local2 & 0xFF0000) >> 16);
var _local10:Number = ((_local2 & 0xFF00) >> 8);
var _local11:Number = (_local2 & 0xFF);
var _local12:Number = ((_local2 & 0xFF0000) >> 16);
var _local13:Number = ((_local2 & 0xFF00) >> 8);
var _local14:Number = (_local2 & 0xFF);
if (((((((_local3 + (_local3 / _local6)) > 0xFF)) || (((_local4 + (_local4 / _local6)) > 0xFF)))) || (((_local5 + (_local5 / _local6)) > 0xFF)))){
_local9 = (_local3 - (_local3 / _local6));
_local10 = (_local4 - (_local4 / _local6));
_local11 = (_local5 - (_local5 / _local6));
};
_local12 = (_local9 + (_local3 / _local6));
_local14 = (_local11 + (_local5 / _local6));
_local13 = (_local10 + (_local4 / _local6));
_local7 = (((_local9 << 16) | (_local10 << 8)) | _local11);
_local8 = (((_local12 << 16) | (_local13 << 8)) | _local14);
return ([_local8, _local7]);
}
public static function magicTrigFunctionX(_arg1:Number):Number{
return (Math.cos(((_arg1 * 2) * Math.PI)));
}
}
}//package charts.series.bars
Section 26
//Sketch (charts.series.bars.Sketch)
package charts.series.bars {
public class Sketch extends Base {
private var outline:Number;
private var offset:Number;
public function Sketch(_arg1:Number, _arg2:Properties, _arg3:Number){
super(_arg1, _arg2, _arg3);
this.outline = _arg2.get_colour("outline-colour");
this.offset = _arg2.get("offset");
}
override public function resize(_arg1:ScreenCoordsBase):void{
var _local2:Object = this.resize_helper((_arg1 as ScreenCoords));
var _local3:Number = this.offset;
var _local4:Number = (_local3 / 2);
var _local5:Number = 6;
var _local6:Number = (_local2.width / _local5);
this.graphics.clear();
this.graphics.lineStyle((_local6 + 1), this.colour, 0.85, true, "none", "round", "miter", 0.8);
var _local7:Number = 0;
while (_local7 < _local5) {
this.graphics.moveTo((((_local6 * _local7) + (_local6 / 2)) + ((Math.random() * _local3) - _local4)), (2 + ((Math.random() * _local3) - _local4)));
this.graphics.lineTo((((_local6 * _local7) + (_local6 / 2)) + ((Math.random() * _local3) - _local4)), ((_local2.height - 2) + ((Math.random() * _local3) - _local4)));
_local7++;
};
this.graphics.lineStyle(2, this.outline, 1);
this.graphics.moveTo(((Math.random() * _local3) - _local4), ((Math.random() * _local3) - _local4));
this.graphics.lineTo(((Math.random() * _local3) - _local4), ((_local2.height + (Math.random() * _local3)) - _local4));
this.graphics.moveTo(((Math.random() * _local3) - _local4), ((Math.random() * _local3) - _local4));
this.graphics.lineTo((_local2.width + ((Math.random() * _local3) - _local4)), ((Math.random() * _local3) - _local4));
this.graphics.moveTo((_local2.width + ((Math.random() * _local3) - _local4)), ((Math.random() * _local3) - _local4));
this.graphics.lineTo((_local2.width + ((Math.random() * _local3) - _local4)), (_local2.height + ((Math.random() * _local3) - _local4)));
this.graphics.moveTo(((Math.random() * _local3) - _local4), (_local2.height + ((Math.random() * _local3) - _local4)));
this.graphics.lineTo((_local2.width + ((Math.random() * _local3) - _local4)), (_local2.height + ((Math.random() * _local3) - _local4)));
}
}
}//package charts.series.bars
Section 27
//Stack (charts.series.bars.Stack)
package charts.series.bars {
public class Stack extends Base {
private var total:Number;
public function Stack(_arg1:Number, _arg2:Properties, _arg3:Number){
this.total = _arg2.get("total");
super(_arg1, _arg2, _arg3);
}
public function replace_x_axis_label(_arg1:String):void{
this.tooltip = this.tooltip.replace("#x_label#", _arg1);
}
override public function resize(_arg1:ScreenCoordsBase):void{
var _local2:Object = this.resize_helper((_arg1 as ScreenCoords));
this.graphics.clear();
this.graphics.beginFill(this.colour, 1);
this.graphics.moveTo(0, 0);
this.graphics.lineTo(_local2.width, 0);
this.graphics.lineTo(_local2.width, _local2.height);
this.graphics.lineTo(0, _local2.height);
this.graphics.lineTo(0, 0);
this.graphics.endFill();
}
override protected function replace_magic_values(_arg1:String):String{
_arg1 = super.replace_magic_values(_arg1);
_arg1 = _arg1.replace("#total#", NumberUtils.formatNumber(this.total));
return (_arg1);
}
}
}//package charts.series.bars
Section 28
//StackCollection (charts.series.bars.StackCollection)
package charts.series.bars {
import flash.geom.*;
import elements.axis.*;
import charts.series.*;
import string.*;
public class StackCollection extends Element {
public var colours:Array;
private var total:Number;
protected var tip_pos:Point;
private var vals:Array;
protected var group:Number;
public function StackCollection(_arg1:Number, _arg2:Properties, _arg3:Number){
var _local4:Object;
var _local5:String;
var _local6:String;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Properties;
var _local13:Properties;
var _local14:Stack;
super();
this.tooltip = _arg2.get("tip");
this.index = _arg1;
this.vals = (_arg2.get("values") as Array);
this.total = 0;
for each (_local4 in this.vals) {
if (_local4 != null){
if ((_local4 is Number)){
this.total = (this.total + _local4);
} else {
this.total = (this.total + _local4.val);
};
};
};
this.colours = new Array();
for each (_local5 in _arg2.get("colours")) {
this.colours.push(Utils.get_colour(_local5));
};
this.group = _arg3;
this.visible = true;
_local8 = 0;
_local9 = 0;
_local11 = 0;
for each (_local4 in this.vals) {
if (_local4 != null){
_local10 = this.colours[(_local11 % this.colours.length)];
_local12 = new Properties({bottom:_local8, colour:_local10, total:this.total}, _arg2);
if ((_local4 is Number)){
_local4 = {val:_local4};
};
if (_local4 == null){
_local4 = {val:null};
};
_local9 = (_local9 + _local4.val);
_local4.top = _local9;
_local13 = new Properties(_local4, _local12);
_local14 = new Stack(_arg1, _local13, _arg3);
this.addChild(_local14);
_local8 = _local9;
_local11++;
};
};
}
override public function tooltip_replace_labels(_arg1:XAxisLabels):void{
var _local3:Stack;
var _local2:Number = 0;
while (_local2 < this.numChildren) {
_local3 = (this.getChildAt(_local2) as Stack);
_local3.replace_x_axis_label(_arg1.get(this.index));
_local2++;
};
}
public function get_children():Array{
var _local1:Array = [];
var _local2:Number = 0;
while (_local2 < this.numChildren) {
_local1.push(this.getChildAt(_local2));
_local2++;
};
return (_local1);
}
override public function resize(_arg1:ScreenCoordsBase):void{
var _local3:Element;
var _local2:Number = 0;
while (_local2 < this.numChildren) {
_local3 = (this.getChildAt(_local2) as Element);
_local3.resize(_arg1);
_local2++;
};
}
override public function get_tip_pos():Object{
var _local1:Element = (this.getChildAt((this.numChildren - 1)) as Element);
return (_local1.get_tip_pos());
}
override public function get_mid_point():Point{
var _local1:Element = (this.getChildAt(0) as Element);
return (_local1.get_mid_point());
}
override public function get_tooltip():String{
var _local2:Element;
var _local1:Number = 0;
while (_local1 < this.numChildren) {
_local2 = (this.getChildAt(_local1) as Element);
if (_local2.is_tip){
return (_local2.get_tooltip());
};
_local1++;
};
return (this.tooltip);
}
}
}//package charts.series.bars
Section 29
//anchor (charts.series.dots.anchor)
package charts.series.dots {
import flash.display.*;
import caurina.transitions.*;
import string.*;
public class anchor extends PointDotBase {
public function anchor(_arg1:Number, _arg2:Properties){
var _local4:Number;
var _local5:Number;
var _local6:Sprite;
var _local3:Number = Utils.get_colour(_arg2.get("colour"));
super(_arg1, _arg2);
this.tooltip = this.replace_magic_values(_arg2.get("tip"));
this.attach_events();
if (_arg2.get("hollow")){
if (_arg2.has("background-colour")){
_local4 = Utils.get_colour(_arg2.get("background-colour"));
} else {
_local4 = _local3;
};
this.graphics.beginFill(_local4, _arg2.get("background-alpha"));
} else {
this.graphics.beginFill(_local3, _arg2.get("alpha"));
};
this.graphics.lineStyle(_arg2.get("width"), _local3, _arg2.get("alpha"));
this.drawAnchor(this.graphics, this.radius, _arg2.get("sides"), rotation);
if (_arg2.get("halo-size") > 0){
_local5 = (_arg2.get("halo-size") + this.radius);
_local6 = new Sprite();
_local6.graphics.lineStyle(0, 0, 0);
_local6.graphics.beginFill(0, 1);
this.drawAnchor(_local6.graphics, _local5, _arg2.get("sides"), rotation);
_local6.blendMode = BlendMode.ERASE;
_local6.graphics.endFill();
this.line_mask = _local6;
};
}
private function drawAnchor(_arg1:Graphics, _arg2:Number, _arg3:Number, _arg4:Number):void{
var _local7:Number;
var _local8:Number;
var _local9:Number;
if (_arg3 < 3){
_arg3 = 3;
};
if (_arg3 > 360){
_arg3 = 360;
};
var _local5:Number = (360 / _arg3);
var _local6:int;
while (_local6 <= _arg3) {
_local7 = ((-90 + _arg4) + ((_local6 % _arg3) * _local5));
_local8 = calcXOnCircle(_arg2, _local7);
_local9 = calcYOnCircle(_arg2, _local7);
if (_local6 == 0){
_arg1.moveTo(_local8, _local9);
} else {
_arg1.lineTo(_local8, _local9);
};
_local6++;
};
}
override public function set_tip(_arg1:Boolean):void{
if (_arg1){
if (!this.is_tip){
Tweener.addTween(this, {scaleX:1.3, time:0.4, transition:"easeoutbounce"});
Tweener.addTween(this, {scaleY:1.3, time:0.4, transition:"easeoutbounce"});
if (this.line_mask != null){
Tweener.addTween(this.line_mask, {scaleX:1.3, time:0.4, transition:"easeoutbounce"});
Tweener.addTween(this.line_mask, {scaleY:1.3, time:0.4, transition:"easeoutbounce"});
};
};
this.is_tip = true;
} else {
Tweener.removeTweens(this);
Tweener.removeTweens(this.line_mask);
this.scaleX = 1;
this.scaleY = 1;
if (this.line_mask != null){
this.line_mask.scaleX = 1;
this.line_mask.scaleY = 1;
};
this.is_tip = false;
};
}
}
}//package charts.series.dots
Section 30
//bow (charts.series.dots.bow)
package charts.series.dots {
import flash.display.*;
import caurina.transitions.*;
import string.*;
public class bow extends PointDotBase {
public function bow(_arg1:Number, _arg2:Properties){
var _local4:Number;
var _local5:Sprite;
var _local3:Number = Utils.get_colour(_arg2.get("colour"));
super(_arg1, _arg2);
this.tooltip = this.replace_magic_values(_arg2.get("tip"));
this.attach_events();
if (_arg2.get("hollow")){
if (_arg2.get("background-colour") != null){
_local4 = Utils.get_colour(_arg2.get("background-colour"));
} else {
_local4 = _local3;
};
this.graphics.beginFill(_local4, _arg2.get("background-alpha"));
} else {
this.graphics.beginFill(_local3, _arg2.get("alpha"));
};
this.graphics.lineStyle(_arg2.get("width"), _local3, _arg2.get("alpha"));
this.draw(this.graphics, this.radius, _arg2.get("rotation"));
if (_arg2.get("halo-size") > 0){
_local5 = new Sprite();
_local5.graphics.lineStyle(0, 0, 0);
_local5.graphics.beginFill(0, 1);
this.draw(_local5.graphics, (_arg2.get("halo-size") + this.radius), _arg2.get("rotation"));
_local5.blendMode = BlendMode.ERASE;
_local5.graphics.endFill();
this.line_mask = _local5;
};
}
private function draw(_arg1:Graphics, _arg2:Number, _arg3:Number):void{
var _local4:Number = 60;
_arg1.moveTo(0, 0);
var _local5:Number = ((-90 + _arg3) + _local4);
var _local6:Number = calcXOnCircle(_arg2, _local5);
var _local7:Number = calcYOnCircle(_arg2, _local5);
_arg1.lineTo(_local6, _local7);
_local5 = (_local5 + _local4);
_local6 = calcXOnCircle(_arg2, _local5);
_local7 = calcYOnCircle(_arg2, _local5);
_arg1.lineTo(_local6, _local7);
_arg1.lineTo(_local6, _local7);
_local5 = ((-90 + _arg3) - _local4);
_local6 = calcXOnCircle(_arg2, _local5);
_local7 = calcYOnCircle(_arg2, _local5);
_arg1.lineTo(_local6, _local7);
_local5 = (_local5 - _local4);
_local6 = calcXOnCircle(_arg2, _local5);
_local7 = calcYOnCircle(_arg2, _local5);
_arg1.lineTo(_local6, _local7);
_arg1.lineTo(_local6, _local7);
}
override public function set_tip(_arg1:Boolean):void{
if (_arg1){
if (!this.is_tip){
Tweener.addTween(this, {scaleX:1.3, time:0.4, transition:"easeoutbounce"});
Tweener.addTween(this, {scaleY:1.3, time:0.4, transition:"easeoutbounce"});
if (this.line_mask != null){
Tweener.addTween(this.line_mask, {scaleX:1.3, time:0.4, transition:"easeoutbounce"});
Tweener.addTween(this.line_mask, {scaleY:1.3, time:0.4, transition:"easeoutbounce"});
};
};
this.is_tip = true;
} else {
Tweener.removeTweens(this);
Tweener.removeTweens(this.line_mask);
this.scaleX = 1;
this.scaleY = 1;
if (this.line_mask != null){
this.line_mask.scaleX = 1;
this.line_mask.scaleY = 1;
};
this.is_tip = false;
};
}
}
}//package charts.series.dots
Section 31
//DefaultDotProperties (charts.series.dots.DefaultDotProperties)
package charts.series.dots {
public class DefaultDotProperties extends Properties {
public function DefaultDotProperties(_arg1:Object, _arg2:String, _arg3:String){
var _local4:Properties = new Properties({axis:_arg3, type:"dot", dot-size:5, halo-size:2, colour:_arg2, tip:"#val#", alpha:1, rotation:0, sides:3, width:1});
super(_arg1, _local4);
tr.aces("4", this.get("axis"));
}
}
}//package charts.series.dots
Section 32
//dot_factory (charts.series.dots.dot_factory)
package charts.series.dots {
public class dot_factory {
public static function make(_arg1:Number, _arg2:Properties):PointDotBase{
switch (_arg2.get("type")){
case "star":
return (new star(_arg1, _arg2));
case "bow":
return (new bow(_arg1, _arg2));
case "anchor":
return (new anchor(_arg1, _arg2));
case "dot":
return (new Point(_arg1, _arg2));
case "solid-dot":
return (new PointDot(_arg1, _arg2));
case "hollow-dot":
return (new Hollow(_arg1, _arg2));
default:
return (new Point(_arg1, _arg2));
};
}
}
}//package charts.series.dots
Section 33
//Hollow (charts.series.dots.Hollow)
package charts.series.dots {
import flash.display.*;
import string.*;
public class Hollow extends PointDotBase {
public function Hollow(_arg1:Number, _arg2:Properties){
super(_arg1, _arg2);
var _local3:Number = Utils.get_colour(_arg2.get("colour"));
this.graphics.clear();
this.graphics.lineStyle(0, 0, 0);
this.graphics.beginFill(_local3, 1);
this.graphics.drawCircle(0, 0, _arg2.get("dot-size"));
this.graphics.drawCircle(0, 0, (_arg2.get("dot-size") - _arg2.get("width")));
this.graphics.endFill();
this.graphics.lineStyle(0, 0, 0);
this.graphics.beginFill(0, 0);
this.graphics.drawCircle(0, 0, _arg2.get("dot-size"));
this.graphics.endFill();
var _local4:Sprite = new Sprite();
_local4.graphics.lineStyle(0, 0, 0);
_local4.graphics.beginFill(0, 1);
_local4.graphics.drawCircle(0, 0, (_arg2.get("dot-size") + _arg2.get("halo-size")));
_local4.blendMode = BlendMode.ERASE;
this.line_mask = _local4;
this.attach_events();
}
}
}//package charts.series.dots
Section 34
//Point (charts.series.dots.Point)
package charts.series.dots {
import flash.display.*;
import string.*;
public class Point extends PointDotBase {
public function Point(_arg1:Number, _arg2:Properties){
super(_arg1, _arg2);
var _local3:Number = Utils.get_colour(_arg2.get("colour"));
this.graphics.lineStyle(0, 0, 0);
this.graphics.beginFill(_local3, 1);
this.graphics.drawCircle(0, 0, _arg2.get("dot-size"));
this.visible = false;
this.attach_events();
var _local4:Sprite = new Sprite();
_local4.graphics.lineStyle(0, 0, 0);
_local4.graphics.beginFill(0, 1);
_local4.graphics.drawCircle(0, 0, (_arg2.get("dot-size") + _arg2.get("halo-size")));
_local4.blendMode = BlendMode.ERASE;
_local4.visible = false;
this.line_mask = _local4;
}
override public function set_tip(_arg1:Boolean):void{
this.visible = _arg1;
this.line_mask.visible = _arg1;
}
}
}//package charts.series.dots
Section 35
//PointDot (charts.series.dots.PointDot)
package charts.series.dots {
import flash.display.*;
import string.*;
public class PointDot extends PointDotBase {
public function PointDot(_arg1:Number, _arg2:Properties){
super(_arg1, _arg2);
var _local3:Number = Utils.get_colour(_arg2.get("colour"));
this.graphics.lineStyle(0, 0, 0);
this.graphics.beginFill(_local3, 1);
this.graphics.drawCircle(0, 0, _arg2.get("dot-size"));
this.graphics.endFill();
var _local4:Sprite = new Sprite();
_local4.graphics.lineStyle(0, 0, 0);
_local4.graphics.beginFill(0, 1);
_local4.graphics.drawCircle(0, 0, (_arg2.get("dot-size") + _arg2.get("halo-size")));
_local4.blendMode = BlendMode.ERASE;
this.line_mask = _local4;
this.attach_events();
}
}
}//package charts.series.dots
Section 36
//PointDotBase (charts.series.dots.PointDotBase)
package charts.series.dots {
import flash.geom.*;
import charts.series.*;
import caurina.transitions.*;
import string.*;
public class PointDotBase extends Element {
protected var colour:Number;
protected var radius:Number;
protected var on_show:Properties;
private var on_show_animate:Boolean;
public function PointDotBase(_arg1:Number, _arg2:Properties){
this.is_tip = false;
this.visible = true;
this.on_show_animate = true;
this.on_show = _arg2.get("on-show");
if (!_arg2.has("y")){
_arg2.set("y", _arg2.get("value"));
};
this._y = _arg2.get("y");
if (!_arg2.has("x")){
this.index = (this._x = _arg1);
} else {
this._x = _arg2.get("x");
this.index = Number.MIN_VALUE;
};
this.radius = _arg2.get("dot-size");
this.tooltip = this.replace_magic_values(_arg2.get("tip"));
if (_arg2.has("on-click")){
this.set_on_click(_arg2.get("on-click"));
};
if (_arg2.has("axis")){
if (_arg2.get("axis") == "right"){
this.right_axis = true;
};
};
}
protected function calcYOnCircle(_arg1:Number, _arg2:Number):Number{
return ((_arg1 * Math.sin(((_arg2 / 180) * Math.PI))));
}
override public function set_tip(_arg1:Boolean):void{
if (_arg1){
this.scaleY = (this.scaleX = 1.3);
this.line_mask.scaleY = (this.line_mask.scaleX = 1.3);
} else {
this.scaleY = (this.scaleX = 1);
this.line_mask.scaleY = (this.line_mask.scaleX = 1);
};
}
protected function replace_magic_values(_arg1:String):String{
_arg1 = _arg1.replace("#val#", NumberUtils.formatNumber(this._y));
_arg1 = _arg1.replace("#x#", NumberUtils.formatNumber(this._x));
_arg1 = _arg1.replace("#y#", NumberUtils.formatNumber(this._y));
_arg1 = _arg1.replace("#size#", NumberUtils.formatNumber(this.radius));
_arg1 = DateUtils.replace_magic_values(_arg1, this._x);
return (_arg1);
}
protected function first_show(_arg1:Number, _arg2:Number, _arg3:ScreenCoordsBase):void{
var x = _arg1;
var y = _arg2;
var sc = _arg3;
this.on_show_animate = false;
Tweener.removeTweens(this);
var d:Number = (x / this.stage.stageWidth);
d = (d * this.on_show.get("cascade"));
d = (d + this.on_show.get("delay"));
switch (this.on_show.get("type")){
case "pop-up":
this.x = x;
this.y = sc.get_y_bottom(this.right_axis);
Tweener.addTween(this, {y:y, time:1.4, delay:d, transition:Equations.easeOutQuad});
if (this.line_mask != null){
this.line_mask.x = x;
this.line_mask.y = sc.get_y_bottom(this.right_axis);
Tweener.addTween(this.line_mask, {y:y, time:1.4, delay:d, transition:Equations.easeOutQuad});
};
break;
case "explode":
this.x = (this.stage.stageWidth / 2);
this.y = (this.stage.stageHeight / 2);
Tweener.addTween(this, {y:y, x:x, time:1.4, delay:d, transition:Equations.easeOutQuad});
if (this.line_mask != null){
this.line_mask.x = (this.stage.stageWidth / 2);
this.line_mask.y = (this.stage.stageHeight / 2);
Tweener.addTween(this.line_mask, {y:y, x:x, time:1.4, delay:d, transition:Equations.easeOutQuad});
};
break;
case "mid-slide":
this.x = x;
this.y = (this.stage.stageHeight / 2);
this.alpha = 0.2;
Tweener.addTween(this, {alpha:1, y:y, time:1.4, delay:d, transition:Equations.easeOutQuad});
if (this.line_mask != null){
this.line_mask.x = x;
this.line_mask.y = (this.stage.stageHeight / 2);
Tweener.addTween(this.line_mask, {y:y, time:1.4, delay:d, transition:Equations.easeOutQuad});
};
break;
case "drop":
this.x = x;
this.y = (-(height) - 10);
Tweener.addTween(this, {y:y, time:1.4, delay:d, transition:Equations.easeOutBounce});
if (this.line_mask != null){
this.line_mask.x = x;
this.line_mask.y = (-(height) - 10);
Tweener.addTween(this.line_mask, {y:y, time:1.4, delay:d, transition:Equations.easeOutQuad});
};
break;
case "fade-in":
this.x = x;
this.y = y;
this.alpha = 0;
Tweener.addTween(this, {alpha:1, time:1.2, delay:d, transition:Equations.easeOutQuad});
break;
case "shrink-in":
this.x = x;
this.y = y;
this.scaleX = (this.scaleY = 5);
this.alpha = 0;
Tweener.addTween(this, {scaleX:1, scaleY:1, alpha:1, time:1.2, delay:d, transition:Equations.easeOutQuad, onComplete:function ():void{
tr.ace("Fin");
}});
break;
default:
this.y = y;
this.x = x;
};
}
override public function resize(_arg1:ScreenCoordsBase):void{
var _local2:Number;
var _local3:Number;
var _local4:Point;
if (this.index != Number.MIN_VALUE){
_local4 = _arg1.get_get_x_from_pos_and_y_from_val(this.index, this._y, this.right_axis);
_local2 = _local4.x;
_local3 = _local4.y;
} else {
_local2 = _arg1.get_x_from_val(this._x);
_local3 = _arg1.get_y_from_val(this._y, this.right_axis);
};
if (this.line_mask != null){
this.line_mask.x = _local2;
this.line_mask.y = _local3;
};
if (this.on_show_animate){
this.first_show(_local2, _local3, _arg1);
} else {
this.y = _local3;
this.x = _local2;
};
}
protected function calcXOnCircle(_arg1:Number, _arg2:Number):Number{
return ((_arg1 * Math.cos(((_arg2 / 180) * Math.PI))));
}
public function is_tweening():Boolean{
return (Tweener.isTweening(this));
}
}
}//package charts.series.dots
Section 37
//star (charts.series.dots.star)
package charts.series.dots {
import flash.display.*;
import caurina.transitions.*;
import string.*;
public class star extends PointDotBase {
public function star(_arg1:Number, _arg2:Properties){
var _local4:Number;
var _local5:Sprite;
var _local3:Number = Utils.get_colour(_arg2.get("colour"));
super(_arg1, _arg2);
this.tooltip = this.replace_magic_values(_arg2.get("tip"));
this.attach_events();
if (_arg2.get("hollow")){
if (_arg2.get("background-colour") != null){
_local4 = Utils.get_colour(_arg2.get("background-colour"));
} else {
_local4 = _local3;
};
this.graphics.beginFill(_local4, _arg2.get("background-alpha"));
} else {
this.graphics.beginFill(_local3, _arg2.get("alpha"));
};
this.graphics.lineStyle(_arg2.get("width"), _local3, _arg2.get("alpha"));
this.drawStar_2(this.graphics, this.radius, _arg2.get("rotation"));
if (_arg2.get("halo-size") > 0){
_local5 = new Sprite();
_local5.graphics.lineStyle(0, 0, 0);
_local5.graphics.beginFill(0, 1);
this.drawStar_2(_local5.graphics, (_arg2.get("halo-size") + this.radius), _arg2.get("rotation"));
_local5.blendMode = BlendMode.ERASE;
_local5.graphics.endFill();
this.line_mask = _local5;
};
}
private function drawStar_2(_arg1:Graphics, _arg2:Number, _arg3:Number):void{
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local4:Number = (360 / 10);
var _local5:Number = (-90 + _arg3);
var _local6:int;
while (_local6 < 11) {
_local7 = (((_local6 % 2))==0) ? _arg2 : (_arg2 / 2);
_local8 = calcXOnCircle(_local7, _local5);
_local9 = calcYOnCircle(_local7, _local5);
if (_local6 == 0){
_arg1.moveTo(_local8, _local9);
} else {
_arg1.lineTo(_local8, _local9);
};
_local5 = (_local5 + _local4);
_local6++;
};
}
override public function set_tip(_arg1:Boolean):void{
if (_arg1){
if (!this.is_tip){
Tweener.addTween(this, {scaleX:1.3, time:0.4, transition:"easeoutbounce"});
Tweener.addTween(this, {scaleY:1.3, time:0.4, transition:"easeoutbounce"});
if (this.line_mask != null){
Tweener.addTween(this.line_mask, {scaleX:1.3, time:0.4, transition:"easeoutbounce"});
Tweener.addTween(this.line_mask, {scaleY:1.3, time:0.4, transition:"easeoutbounce"});
};
};
this.is_tip = true;
} else {
Tweener.removeTweens(this);
Tweener.removeTweens(this.line_mask);
this.scaleX = 1;
this.scaleY = 1;
if (this.line_mask != null){
this.line_mask.scaleX = 1;
this.line_mask.scaleY = 1;
};
this.is_tip = false;
};
}
}
}//package charts.series.dots
Section 38
//DefaultPieProperties (charts.series.pies.DefaultPieProperties)
package charts.series.pies {
public class DefaultPieProperties extends Properties {
public function DefaultPieProperties(_arg1:Object){
var _local2:Properties = new Properties({alpha:0.5, start-angle:90, label-colour:null, font-size:10, gradient-fill:false, stroke:1, colours:["#900000", "#009000"], animate:[{type:"fade-in"}], tip:"#val# of #total#", no-labels:false, on-click:null});
super(_arg1, _local2);
tr.aces("4", this.get("start-angle"));
}
}
}//package charts.series.pies
Section 39
//PieLabel (charts.series.pies.PieLabel)
package charts.series.pies {
import charts.series.*;
import flash.text.*;
import string.*;
public class PieLabel extends TextField implements has_tooltip {
public var is_over:Boolean;
private static var TO_RADIANS:Number = 0.0174532925199433;
public function PieLabel(_arg1:Object){
this.text = _arg1.label;
var _local2:TextFormat = new TextFormat();
_local2.color = Utils.get_colour(_arg1.colour);
_local2.font = "Verdana";
_local2.size = _arg1["font-size"];
_local2.align = "center";
this.setTextFormat(_local2);
this.autoSize = "left";
this.mouseEnabled = false;
}
public function resize(_arg1:ScreenCoords):void{
}
public function set_tip(_arg1:Boolean):void{
return ((this.parent as has_tooltip).set_tip(_arg1));
}
public function move_label(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Boolean{
var _local5:Number = (_arg2 + (_arg1 * Math.cos((_arg4 * TO_RADIANS))));
var _local6:Number = (_arg3 + (_arg1 * Math.sin((_arg4 * TO_RADIANS))));
if (_local5 < _arg2){
_local5 = (_local5 - this.width);
};
if (_local6 < _arg3){
_local6 = (_local6 - this.height);
};
this.x = _local5;
this.y = _local6;
if ((((((((this.x > 0)) && ((this.y > 0)))) && (((this.y + this.height) < this.stage.stageHeight)))) && (((this.x + this.width) < this.stage.stageWidth)))){
return (true);
};
return (false);
}
public function get_tip_pos():Object{
return ((this.parent as has_tooltip).get_tip_pos());
}
public function get_tooltip():String{
tr.ace((this.parent as has_tooltip).get_tooltip());
return ((this.parent as has_tooltip).get_tooltip());
}
}
}//package charts.series.pies
Section 40
//PieSlice (charts.series.pies.PieSlice)
package charts.series.pies {
import flash.geom.*;
import charts.series.*;
import flash.display.*;
import caurina.transitions.*;
public class PieSlice extends Element {
public var nolabels:Boolean;
public var is_over:Boolean;
private var colour:Number;
private var TO_RADIANS:Number;// = 0.0174532925199433
private var finished_animating:Boolean;
private var gradientFill:Boolean;
public var angle:Number;
private var animate:Boolean;
public var position_original:Point;
private var rawToolTip:String;
public var position_animate_to:Point;
public var value:Number;
private var border_width:Number;
private var label:String;
public var slice_angle:Number;
private var pieRadius:Number;
public function PieSlice(_arg1:Number, _arg2:Properties){
this.colour = _arg2.get_colour("colour");
this.slice_angle = _arg2.get("angle");
this.border_width = 1;
this.angle = _arg2.get("start");
this.animate = _arg2.get("animate");
this.nolabels = _arg2.get("no-labels");
this.value = _arg2.get("value");
this.gradientFill = _arg2.get("gradient-fill");
this.index = _arg1;
this.rawToolTip = _arg2.get("tip");
this.label = this.replace_magic_values(_arg2.get("label"));
this.tooltip = this.replace_magic_values(_arg2.get("tip"));
if (_arg2.has("on-click")){
this.set_on_click(_arg2.get("on-click"));
};
this.finished_animating = false;
}
private function draw_label_line(_arg1:Number, _arg2:Number, _arg3:Number):void{
}
override public function set_tip(_arg1:Boolean):void{
}
public function pie_resize(_arg1:ScreenCoordsBase, _arg2:Number):void{
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Array;
var _local12:Array;
var _local13:Array;
var _local14:Matrix;
this.pieRadius = _arg2;
this.x = _arg1.get_center_x();
this.y = _arg1.get_center_y();
var _local3:Number = 10;
this.graphics.clear();
this.graphics.lineStyle(this.border_width, this.colour, 1);
if (this.gradientFill){
_local11 = [this.colour, this.colour];
_local12 = [1, 0.5];
_local13 = [100, 0xFF];
_local14 = new Matrix();
_local14.createGradientBox((_arg2 * 2), (_arg2 * 2), 0, -(_arg2), -(_arg2));
this.graphics.beginGradientFill(GradientType.RADIAL, _local11, _local12, _local13, _local14);
} else {
this.graphics.beginFill(this.colour, 1);
};
this.graphics.moveTo(0, 0);
this.graphics.lineTo(_arg2, 0);
var _local4:Number = 4;
var _local5:Number = Math.tan(((_local4 / 2) * TO_RADIANS));
var _local6:Number = 0;
_local6 = 0;
while ((_local6 + _local4) < this.slice_angle) {
_local7 = (_arg2 * Math.cos(((_local6 + _local4) * TO_RADIANS)));
_local8 = (_arg2 * Math.sin(((_local6 + _local4) * TO_RADIANS)));
_local9 = (_local7 + ((_arg2 * _local5) * Math.cos((((_local6 + _local4) - 90) * TO_RADIANS))));
_local10 = (_local8 + ((_arg2 * _local5) * Math.sin((((_local6 + _local4) - 90) * TO_RADIANS))));
this.graphics.curveTo(_local9, _local10, _local7, _local8);
_local6 = (_local6 + _local4);
};
_local4 = 0.08;
_local5 = Math.tan(((_local4 / 2) * TO_RADIANS));
while ((_local6 + _local4) < slice_angle) {
_local7 = (_arg2 * Math.cos(((_local6 + _local4) * TO_RADIANS)));
_local8 = (_arg2 * Math.sin(((_local6 + _local4) * TO_RADIANS)));
_local9 = (_local7 + ((_arg2 * _local5) * Math.cos((((_local6 + _local4) - 90) * TO_RADIANS))));
_local10 = (_local8 + ((_arg2 * _local5) * Math.sin((((_local6 + _local4) - 90) * TO_RADIANS))));
this.graphics.curveTo(_local9, _local10, _local7, _local8);
_local6 = (_local6 + _local4);
};
this.graphics.endFill();
this.graphics.lineTo(0, 0);
if (!this.nolabels){
this.draw_label_line(_arg2, _local3, this.slice_angle);
};
if (this.animate){
if (!this.finished_animating){
this.finished_animating = true;
Tweener.addTween(this, {rotation:this.angle, time:1.4, transition:Equations.easeOutCirc, onComplete:this.done_animating});
};
} else {
this.done_animating();
};
}
public function isRightSide():Boolean{
return ((((this.getTicAngle() >= 270)) || ((this.getTicAngle() <= 90))));
}
override public function get_tip_pos():Object{
var _local1:Point = this.localToGlobal(new Point(this.mouseX, this.mouseY));
return ({x:_local1.x, y:_local1.y});
}
public function get_colour():Number{
return (this.colour);
}
override public function toString():String{
return (("PieSlice: " + this.get_tooltip()));
}
private function replace_magic_values(_arg1:String):String{
_arg1 = _arg1.replace("#label#", this.label);
_arg1 = _arg1.replace("#val#", NumberUtils.formatNumber(this.value));
_arg1 = _arg1.replace("#radius#", NumberUtils.formatNumber(this.pieRadius));
return (_arg1);
}
private function done_animating():void{
this.rotation = this.angle;
this.finished_animating = true;
}
override public function get_tooltip():String{
this.tooltip = this.replace_magic_values(this.rawToolTip);
return (this.tooltip);
}
override public function resize(_arg1:ScreenCoordsBase):void{
}
public function getTicAngle():Number{
return ((this.angle + (this.slice_angle / 2)));
}
}
}//package charts.series.pies
Section 41
//PieSliceContainer (charts.series.pies.PieSliceContainer)
package charts.series.pies {
import flash.events.*;
import flash.geom.*;
import charts.series.*;
import caurina.transitions.*;
public class PieSliceContainer extends Element {
private var TO_RADIANS:Number;// = 0.0174532925199433
private var moveToX:Number;
private var moveToY:Number;
private var animationOffset:Number;// = 30
private var pieRadius:Number;
private var pieLabel:PieLabel;
private var label_margin:Number;// = 2
private var animating:Boolean;
private var tick_size:Number;// = 10
private var pieSlice:PieSlice;
private var tick_extension_size:Number;// = 4
private var original_alpha:Number;
private var saveX:Number;
private var saveY:Number;
public function PieSliceContainer(_arg1:Number, _arg2:Properties){
tr.aces("pie", _arg2.get("animate"));
this.pieSlice = new PieSlice(_arg1, _arg2);
this.addChild(this.pieSlice);
var _local3:String = _arg2.get("label");
this.alpha = (this.original_alpha = _arg2.get("alpha"));
if (!_arg2.has("label-colour")){
_arg2.set("label-colour", _arg2.get("colour"));
};
var _local4:String = (_arg2.get("no-labels")) ? "" : _arg2.get("label");
this.pieLabel = new PieLabel({label:_local4, colour:_arg2.get("label-colour"), font-size:_arg2.get("font-size"), on-click:_arg2.get("on-click")});
this.addChild(this.pieLabel);
this.attach_events__(_arg2);
this.animating = false;
}
public function getLabelTopY():Number{
return (this.pieLabel.y);
}
public function mouseOut_alpha(_arg1:Event):void{
Tweener.addTween(this, {alpha:this.original_alpha, time:0.8, transition:Equations.easeOutElastic});
}
public function isRightSide():Boolean{
return (this.pieSlice.isRightSide());
}
public function mouseOver_first(_arg1:Event):void{
if (this.animating){
return;
};
this.animating = true;
Tweener.removeTweens(this);
}
public function moveLabelUp(_arg1:ScreenCoordsBase, _arg2:Number):Number{
var _local3:Number;
var _local4:Boolean;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
if (this.pieLabel.visible){
_local3 = 1;
_local4 = false;
_local5 = this.getLabelBottomY();
if (_local5 > _arg2){
_local6 = (_arg2 - _local5);
if ((_arg2 - this.pieLabel.height) < (_arg1.top + 1)){
_local6 = (_arg1.top - this.getLabelTopY());
_local4 = true;
};
this.pieLabel.y = (this.pieLabel.y + _local6);
if (!_local4){
_local7 = (this.pieRadius + this.tick_size);
_local8 = (((this.pieLabel.y + (this.pieLabel.height / 2)) - this.pieSlice.y) / _local7);
_local8 = Math.max(-1, Math.min(1, _local8));
_local9 = (Math.asin(_local8) / TO_RADIANS);
if ((((this.getTicAngle() > 90)) && ((this.getTicAngle() < 270)))){
_local9 = (180 - _local9);
_local3 = -1;
} else {
if (this.getTicAngle() >= 270){
_local9 = (360 + _local9);
};
};
_local10 = (this.pieSlice.x + (_local7 * Math.cos((_local9 * TO_RADIANS))));
if (this.isRightSide()){
this.pieLabel.x = ((_local10 + this.tick_extension_size) + this.label_margin);
} else {
this.pieLabel.x = ((((_local10 - this.pieLabel.width) - this.tick_extension_size) - this.label_margin) - 4);
};
};
};
this.drawTicLines();
return (this.pieLabel.y);
//unresolved jump
};
return (_arg2);
}
override public function get_tooltip():String{
return (this.pieSlice.get_tooltip());
}
public function get_radius_offsets():Object{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local1:Object = {top:animationOffset, right:animationOffset, bottom:animationOffset, left:animationOffset};
if (this.pieLabel.visible){
_local2 = this.getTicAngle();
_local3 = 20;
_local4 = this.tick_size;
if ((((_local2 >= 0)) && ((_local2 <= 90)))){
_local1.bottom = ((((_local2 / 90) * _local4) + (this.pieLabel.height / 2)) + 1);
_local1.right = ((((((90 - _local2) / 90) * _local4) + this.tick_extension_size) + this.label_margin) + this.pieLabel.width);
} else {
if ((((_local2 > 90)) && ((_local2 <= 180)))){
_local1.bottom = (((((180 - _local2) / 90) * _local4) + (this.pieLabel.height / 2)) + 1);
_local1.left = (((((((_local2 - 90) / 90) * _local4) + this.tick_extension_size) + this.label_margin) + this.pieLabel.width) + 4);
} else {
if ((((_local2 > 180)) && ((_local2 < 270)))){
_local1.top = (((((_local2 - 180) / 90) * _local4) + (this.pieLabel.height / 2)) + 1);
_local1.left = (((((((270 - _local2) / 90) * _local4) + this.tick_extension_size) + this.label_margin) + this.pieLabel.width) + 4);
} else {
_local1.top = (((((360 - _local2) / 90) * _local4) + (this.pieLabel.height / 2)) + 1);
_local1.right = ((((((_local2 - 270) / 90) * _local4) + this.tick_extension_size) + this.label_margin) + this.pieLabel.width);
};
};
};
};
return (_local1);
}
public function is_label_on_screen(_arg1:ScreenCoordsBase, _arg2:Number):Boolean{
return (this.pieLabel.move_label((_arg2 + 10), _arg1.get_center_x(), _arg1.get_center_y(), (this.pieSlice.angle + (this.pieSlice.slice_angle / 2))));
}
public function mouseOut_bounce_out(_arg1:Event):void{
Tweener.addTween(this, {x:this.saveX, y:this.saveY, time:0.4, transition:"easeOutBounce"});
}
public function mouseOver_alpha(_arg1:Event):void{
Tweener.addTween(this, {alpha:1, time:0.6, transition:Equations.easeOutCirc});
}
override public function resize(_arg1:ScreenCoordsBase):void{
}
public function pie_resize(_arg1:ScreenCoordsBase, _arg2:Number):void{
var _local4:Number;
var _local5:Number;
this.pieRadius = _arg2;
this.pieSlice.pie_resize(_arg1, _arg2);
var _local3:Number = this.getTicAngle();
this.saveX = this.x;
this.saveY = this.y;
this.moveToX = (this.x + (animationOffset * Math.cos((_local3 * TO_RADIANS))));
this.moveToY = (this.y + (animationOffset * Math.sin((_local3 * TO_RADIANS))));
if (this.pieLabel.visible){
_local4 = (_arg2 + this.tick_size);
_local5 = (_local3 * TO_RADIANS);
this.pieLabel.x = (this.pieSlice.x + (_local4 * Math.cos(_local5)));
this.pieLabel.y = (this.pieSlice.y + (_local4 * Math.sin(_local5)));
if (this.isRightSide()){
this.pieLabel.x = (this.pieLabel.x + (this.tick_extension_size + this.label_margin));
} else {
this.pieLabel.x = ((((this.pieLabel.x - this.pieLabel.width) - this.tick_extension_size) - this.label_margin) - 4);
};
this.pieLabel.y = (this.pieLabel.y - (this.pieLabel.height / 2));
this.drawTicLines();
};
}
public function is_over():Boolean{
return (this.pieSlice.is_over);
}
public function get_label():PieLabel{
return (this.pieLabel);
}
override public function get_tip_pos():Object{
var _local1:Point = this.localToGlobal(new Point(this.mouseX, this.mouseY));
return ({x:_local1.x, y:_local1.y});
}
public function getTicAngle():Number{
return (this.pieSlice.getTicAngle());
}
public function mouseOut_first(_arg1:Event):void{
Tweener.removeTweens(this);
this.animating = false;
}
public function moveLabelDown(_arg1:ScreenCoordsBase, _arg2:Number):Number{
var _local3:Boolean;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
if (this.pieLabel.visible){
_local3 = false;
_local4 = this.getLabelTopY();
if (_local4 < _arg2){
_local5 = (_arg2 - _local4);
if ((this.pieLabel.height + _arg2) > (_arg1.bottom - 1)){
_local5 = ((_arg1.bottom - this.pieLabel.height) - _local4);
_local3 = true;
};
this.pieLabel.y = (this.pieLabel.y + _local5);
if (!_local3){
_local6 = (this.pieRadius + this.tick_size);
_local7 = (((this.pieLabel.y + (this.pieLabel.height / 2)) - this.pieSlice.y) / _local6);
_local7 = Math.max(-1, Math.min(1, _local7));
_local8 = (Math.asin(_local7) / TO_RADIANS);
if ((((this.getTicAngle() > 90)) && ((this.getTicAngle() < 270)))){
_local8 = (180 - _local8);
} else {
if (this.getTicAngle() >= 270){
_local8 = (360 + _local8);
};
};
_local9 = (this.pieSlice.x + (_local6 * Math.cos((_local8 * TO_RADIANS))));
if (this.isRightSide()){
this.pieLabel.x = ((_local9 + this.tick_extension_size) + this.label_margin);
} else {
this.pieLabel.x = ((((_local9 - this.pieLabel.width) - this.tick_extension_size) - this.label_margin) - 4);
};
};
};
this.drawTicLines();
return ((this.pieLabel.y + this.pieLabel.height));
//unresolved jump
};
return (_arg2);
}
public function get_slice():Element{
return (this.pieSlice);
}
public function getLabelBottomY():Number{
return ((this.pieLabel.y + this.pieLabel.height));
}
protected function attach_events__(_arg1:Properties):void{
var _local4:Object;
var _local2:Object = _arg1.get("animate");
if (!(_local2 is Array)){
if ((((_local2 == null)) || (_local2))){
_local2 = [{type:"bounce", distance:5}];
} else {
_local2 = new Array();
};
};
var _local3:Array = (_local2 as Array);
this.addEventListener(MouseEvent.MOUSE_OVER, this.mouseOver_first, false, 0, true);
this.addEventListener(MouseEvent.MOUSE_OUT, this.mouseOut_first, false, 0, true);
for each (_local4 in _local3) {
switch (_local4.type){
case "bounce":
this.addEventListener(MouseEvent.MOUSE_OVER, this.mouseOver_bounce_out, false, 0, true);
this.addEventListener(MouseEvent.MOUSE_OUT, this.mouseOut_bounce_out, false, 0, true);
this.animationOffset = _local4.distance;
break;
default:
this.addEventListener(MouseEvent.MOUSE_OVER, this.mouseOver_alpha, false, 0, true);
this.addEventListener(MouseEvent.MOUSE_OUT, this.mouseOut_alpha, false, 0, true);
break;
};
};
}
protected function drawTicLines():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
if (((!((this.pieLabel.text == ""))) && (this.pieLabel.visible))){
_local1 = this.getTicAngle();
_local2 = (this.pieRadius + this.tick_size);
_local3 = (_local1 * TO_RADIANS);
if (this.pieSlice.isRightSide()){
_local4 = (this.pieLabel.x - this.label_margin);
} else {
_local4 = (((this.pieLabel.x + this.pieLabel.width) + this.label_margin) + 4);
};
_local5 = (this.pieLabel.y + (this.pieLabel.height / 2));
_local6 = (this.pieSlice.x + (this.pieRadius * Math.cos(_local3)));
_local7 = (this.pieSlice.y + (this.pieRadius * Math.sin(_local3)));
this.graphics.clear();
this.graphics.lineStyle(1, this.pieSlice.get_colour(), 1);
this.graphics.moveTo(_local4, _local5);
if (this.pieSlice.isRightSide()){
this.graphics.lineTo((_local4 - this.tick_extension_size), _local5);
} else {
this.graphics.lineTo((_local4 + this.tick_extension_size), _local5);
};
this.graphics.lineTo(_local6, _local7);
};
}
public function mouseOver_bounce_out(_arg1:Event):void{
Tweener.addTween(this, {x:this.moveToX, y:this.moveToY, time:0.4, transition:"easeOutBounce"});
}
}
}//package charts.series.pies
Section 42
//Element (charts.series.Element)
package charts.series {
import flash.events.*;
import flash.geom.*;
import elements.axis.*;
import flash.display.*;
import caurina.transitions.*;
import flash.net.*;
import flash.external.*;
public class Element extends Sprite implements has_tooltip {
public var _y:Number;
protected var tooltip:String;
public var is_tip:Boolean;
public var index:Number;
public var line_mask:Sprite;
protected var right_axis:Boolean;
public var _x:Number;
private var link:String;
public function Element(){
this.right_axis = false;
}
public function die():void{
if (this.line_mask != null){
this.line_mask.graphics.clear();
this.line_mask = null;
};
}
public function set_tip(_arg1:Boolean):void{
}
public function get_tip_pos():Object{
return ({x:this.x, y:this.y});
}
private function browse_url(_arg1:String):void{
var url = _arg1;
var req:URLRequest = new URLRequest(this.link);
try {
navigateToURL(req);
} catch(e:Error) {
trace(("Error opening link: " + this.link));
};
}
public function get_x():Number{
return (this._x);
}
protected function attach_events():void{
this.addEventListener(MouseEvent.MOUSE_OVER, this.mouseOver, false, 0, true);
this.addEventListener(MouseEvent.MOUSE_OUT, this.mouseOut, false, 0, true);
}
public function mouseOver(_arg1:Event):void{
this.pulse();
}
public function get_tooltip():String{
return (this.tooltip);
}
public function pulse():void{
Tweener.addTween(this, {alpha:0.5, time:0.4, transition:"linear"});
Tweener.addTween(this, {alpha:1, time:0.4, delay:0.4, onComplete:this.pulse, transition:"linear"});
}
public function set_on_click(_arg1:String):void{
this.link = _arg1;
this.buttonMode = true;
this.useHandCursor = true;
this.addEventListener(MouseEvent.MOUSE_UP, this.mouseUp, false, 0, true);
}
public function tooltip_replace_labels(_arg1:XAxisLabels):void{
tr.aces("x label", this._x, _arg1.get(this._x));
this.tooltip = this.tooltip.replace("#x_label#", _arg1.get(this._x));
}
private function mouseUp(_arg1:Event):void{
if (this.link.substring(0, 6) == "trace:"){
tr.ace(this.link);
} else {
if (this.link.substring(0, 5) == "http:"){
this.browse_url(this.link);
} else {
if (this.link.substring(0, 6) == "https:"){
this.browse_url(this.link);
} else {
ExternalInterface.call(this.link, this.index);
};
};
};
}
public function mouseOut(_arg1:Event):void{
Tweener.removeTweens(this);
Tweener.addTween(this, {alpha:1, time:0.4, transition:Equations.easeOutElastic});
}
public function get_mid_point():Point{
return (new Point(this.x, this.y));
}
public function resize(_arg1:ScreenCoordsBase):void{
var _local2:Point = _arg1.get_get_x_from_pos_and_y_from_val(this._x, this._y, this.right_axis);
this.x = _local2.x;
this.y = _local2.y;
}
}
}//package charts.series
Section 43
//has_tooltip (charts.series.has_tooltip)
package charts.series {
public interface has_tooltip {
function get_tooltip():String;
function set_tip(_arg1:Boolean):void;
function get_tip_pos():Object;
}
}//package charts.series
Section 44
//Area (charts.Area)
package charts {
import charts.series.*;
import flash.display.*;
import string.*;
public class Area extends Line {
private var fill_colour:Number;
private var area_base:Number;
public function Area(_arg1:Object){
var _local2:String;
super(_arg1);
if (_arg1.fill){
_local2 = _arg1.fill;
} else {
_local2 = _arg1.colour;
};
this.fill_colour = Utils.get_colour(_local2);
}
override public function resize(_arg1:ScreenCoordsBase):void{
var _local2:Boolean;
if (props.has("axis")){
if (props.get("axis") == "right"){
_local2 = true;
};
};
this.area_base = _arg1.get_y_bottom(_local2);
super.resize(_arg1);
}
private function fill_area():void{
var _local1:Element;
var _local3:Sprite;
var _local5:Element;
var _local2:Boolean;
var _local4:Number = 0;
while (_local4 < this.numChildren) {
_local3 = (this.getChildAt(_local4) as Sprite);
if ((_local3 is Element)){
_local5 = (_local3 as Element);
if (_local2){
_local2 = false;
if (this.props.get("loop")){
this.graphics.moveTo(_local5.x, _local5.y);
} else {
this.graphics.moveTo(_local5.x, this.area_base);
};
this.graphics.lineStyle(0, 0, 0);
this.graphics.beginFill(this.fill_colour, this.props.get("fill-alpha"));
if (!this.props.get("loop")){
this.graphics.lineTo(_local5.x, _local5.y);
};
} else {
this.graphics.lineTo(_local5.x, _local5.y);
_local1 = _local5;
};
};
_local4++;
};
if (_local1 != null){
if (!this.props.get("loop")){
this.graphics.lineTo(_local1.x, this.area_base);
};
};
this.graphics.endFill();
}
override protected function draw():void{
this.graphics.clear();
this.fill_area();
this.draw_line();
}
}
}//package charts
Section 45
//Bar (charts.Bar)
package charts {
import charts.series.*;
import charts.series.bars.*;
public class Bar extends BarBase {
public function Bar(_arg1:Object, _arg2:Number){
super(_arg1, _arg2);
}
override protected function get_element(_arg1:Number, _arg2:Object):Element{
return (new Bar(_arg1, this.get_element_helper_prop(_arg2), this.group));
}
}
}//package charts
Section 46
//Bar3D (charts.Bar3D)
package charts {
import charts.series.*;
import charts.series.bars.*;
public class Bar3D extends BarBase {
public function Bar3D(_arg1:Object, _arg2:Number){
super(_arg1, _arg2);
}
override protected function get_element(_arg1:Number, _arg2:Object):Element{
return (new Bar3D(_arg1, this.get_element_helper_prop(_arg2), this.group));
}
}
}//package charts
Section 47
//BarBase (charts.BarBase)
package charts {
import charts.series.*;
public class BarBase extends Base {
protected var props:Properties;
protected var on_show:Properties;
protected var group:Number;
public function BarBase(_arg1:Object, _arg2:Number){
var _local3:Properties = new Properties({values:[], colour:"#3030d0", text:"", font-size:12, tip:"#val#<br>#x_label#", alpha:0.6, on-click:false, axis:"left"});
this.props = new Properties(_arg1, _local3);
this.on_show = this.get_on_show(_arg1["on-show"]);
this.colour = this.props.get_colour("colour");
this.key = this.props.get("text");
this.font_size = this.props.get("font-size");
this.props.set("tip", this.props.get("tip").replace("#key#", this.key));
this.group = _arg2;
this.values = this.props.get("values");
this.add_values();
}
override public function get_min_x():Number{
return (0);
}
override public function get_max_x():Number{
var _local3:Element;
var _local1:Number = Number.MIN_VALUE;
var _local2:Number = 0;
while (_local2 < this.numChildren) {
_local3 = (this.getChildAt(_local2) as Element);
_local1 = Math.max(_local1, _local3.index);
_local2++;
};
return (_local1);
}
override public function die():void{
super.die();
this.props.die();
}
protected function get_element_helper_prop(_arg1:Object):Properties{
var _local3:Properties;
var _local2:Properties = new Properties({colour:this.props.get("colour"), tip:this.props.get("tip"), alpha:this.props.get("alpha"), on-click:this.props.get("on-click"), axis:this.props.get("axis"), on-show:this.on_show});
if ((_arg1 is Number)){
_local3 = new Properties({top:_arg1}, _local2);
} else {
_local3 = new Properties(_arg1, _local2);
};
return (_local3);
}
protected function get_on_show(_arg1:Object):Properties{
var _local2:Properties = new Properties({type:"none", cascade:3, delay:0});
return (new Properties(_arg1, _local2));
}
override public function closest(_arg1:Number, _arg2:Number):Object{
var _local7:Element;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local3:Number = Number.MAX_VALUE;
var _local4:Element;
var _local5:Number = 0;
while (_local5 < this.numChildren) {
_local7 = (this.getChildAt(_local5) as Element);
_local7.is_tip = false;
if ((((_arg1 > _local7.x)) && ((_arg1 < (_local7.x + _local7.width))))){
_local3 = Math.min(Math.abs((_arg1 - _local7.x)), Math.abs((_arg1 - (_local7.x + _local7.width))));
_local4 = _local7;
break;
} else {
_local8 = Math.abs((_arg1 - _local7.x));
_local9 = Math.abs((_arg1 - (_local7.x + _local7.width)));
_local10 = Math.min(_local8, _local9);
if (_local10 < _local3){
_local3 = _local10;
_local4 = _local7;
};
};
_local5++;
};
var _local6:Number = Math.abs((_arg2 - _local4.y));
return ({element:_local4, distance_x:_local3, distance_y:_local6});
}
override public function resize(_arg1:ScreenCoordsBase):void{
var _local3:Element;
var _local2:Number = 0;
while (_local2 < this.numChildren) {
_local3 = (this.getChildAt(_local2) as Element);
_local3.resize(_arg1);
_local2++;
};
}
}
}//package charts
Section 48
//BarCylinder (charts.BarCylinder)
package charts {
import charts.series.*;
import charts.series.bars.*;
public class BarCylinder extends BarBase {
public function BarCylinder(_arg1:Object, _arg2:Number){
super(_arg1, _arg2);
}
override protected function get_element(_arg1:Number, _arg2:Object):Element{
return (new Cylinder(_arg1, this.get_element_helper_prop(_arg2), this.group));
}
}
}//package charts
Section 49
//BarCylinderOutline (charts.BarCylinderOutline)
package charts {
import charts.series.*;
import charts.series.bars.*;
public class BarCylinderOutline extends BarBase {
public function BarCylinderOutline(_arg1:Object, _arg2:Number){
super(_arg1, _arg2);
}
override protected function get_element(_arg1:Number, _arg2:Object):Element{
return (new CylinderOutline(_arg1, this.get_element_helper_prop(_arg2), this.group));
}
}
}//package charts
Section 50
//BarDome (charts.BarDome)
package charts {
import charts.series.*;
import charts.series.bars.*;
public class BarDome extends BarBase {
public function BarDome(_arg1:Object, _arg2:Number){
super(_arg1, _arg2);
}
override protected function get_element(_arg1:Number, _arg2:Object):Element{
return (new Dome(_arg1, this.get_element_helper_prop(_arg2), this.group));
}
}
}//package charts
Section 51
//BarFade (charts.BarFade)
package charts {
import charts.series.*;
import charts.Elements.*;
public class BarFade extends BarBase {
public function BarFade(_arg1:Object, _arg2:Number){
super(_arg1, _arg2);
}
override protected function get_element(_arg1:Number, _arg2:Object):Element{
return (new PointBarFade(_arg1, _arg2, this.colour, this.group));
}
}
}//package charts
Section 52
//BarGlass (charts.BarGlass)
package charts {
import charts.series.*;
import charts.series.bars.*;
public class BarGlass extends BarBase {
public function BarGlass(_arg1:Object, _arg2:Number){
super(_arg1, _arg2);
}
override protected function get_element(_arg1:Number, _arg2:Object):Element{
return (new Glass(_arg1, this.get_element_helper_prop(_arg2), this.group));
}
}
}//package charts
Section 53
//BarOutline (charts.BarOutline)
package charts {
import charts.series.*;
import charts.series.bars.*;
public class BarOutline extends BarBase {
protected var style:Object;
private var outline_colour:Number;
public function BarOutline(_arg1:Object, _arg2:Number){
this.style = {outline-colour:"#000000"};
object_helper.merge_2(_arg1, this.style);
super(_arg1, _arg2);
}
override protected function get_element(_arg1:Number, _arg2:Object):Element{
var _local3:Properties = new Properties({outline-colour:this.style["outline-colour"]});
var _local4:Properties = this.get_element_helper_prop(_arg2);
_local4.set_parent(_local3);
return (new Outline(_arg1, _local4, this.group));
}
}
}//package charts
Section 54
//BarPlastic (charts.BarPlastic)
package charts {
import charts.series.*;
import charts.series.bars.*;
public class BarPlastic extends BarBase {
public function BarPlastic(_arg1:Object, _arg2:Number){
super(_arg1, _arg2);
}
override protected function get_element(_arg1:Number, _arg2:Object):Element{
return (new Plastic(_arg1, this.get_element_helper_prop(_arg2), this.group));
}
}
}//package charts
Section 55
//BarPlasticFlat (charts.BarPlasticFlat)
package charts {
import charts.series.*;
import charts.series.bars.*;
public class BarPlasticFlat extends BarBase {
public function BarPlasticFlat(_arg1:Object, _arg2:Number){
super(_arg1, _arg2);
}
override protected function get_element(_arg1:Number, _arg2:Object):Element{
return (new PlasticFlat(_arg1, this.get_element_helper_prop(_arg2), this.group));
}
}
}//package charts
Section 56
//BarRound (charts.BarRound)
package charts {
import charts.series.*;
import charts.series.bars.*;
public class BarRound extends BarBase {
public function BarRound(_arg1:Object, _arg2:Number){
super(_arg1, _arg2);
}
override protected function get_element(_arg1:Number, _arg2:Object):Element{
return (new Round(_arg1, this.get_element_helper_prop(_arg2), this.group));
}
}
}//package charts
Section 57
//BarRound3D (charts.BarRound3D)
package charts {
import charts.series.*;
import charts.series.bars.*;
public class BarRound3D extends BarBase {
public function BarRound3D(_arg1:Object, _arg2:Number){
super(_arg1, _arg2);
}
override protected function get_element(_arg1:Number, _arg2:Object):Element{
return (new Round3D(_arg1, this.get_element_helper_prop(_arg2), this.group));
}
}
}//package charts
Section 58
//BarRoundGlass (charts.BarRoundGlass)
package charts {
import charts.series.*;
import charts.series.bars.*;
public class BarRoundGlass extends BarBase {
public function BarRoundGlass(_arg1:Object, _arg2:Number){
super(_arg1, _arg2);
}
override protected function get_element(_arg1:Number, _arg2:Object):Element{
return (new RoundGlass(_arg1, this.get_element_helper_prop(_arg2), this.group));
}
}
}//package charts
Section 59
//BarSketch (charts.BarSketch)
package charts {
import charts.series.*;
import charts.series.bars.*;
public class BarSketch extends BarBase {
protected var style:Object;
private var offset:Number;
private var outline_colour:Number;
public function BarSketch(_arg1:Object, _arg2:Number){
this.style = {outline-colour:"#000000", offset:6};
object_helper.merge_2(_arg1, this.style);
super(style, _arg2);
}
override protected function get_element(_arg1:Number, _arg2:Object):Element{
var _local3:Properties = new Properties({outline-colour:this.style["outline-colour"], offset:this.style.offset});
var _local4:Properties = this.get_element_helper_prop(_arg2);
_local4.set_parent(_local3);
return (new Sketch(_arg1, _local4, this.group));
}
}
}//package charts
Section 60
//BarStack (charts.BarStack)
package charts {
import flash.geom.*;
import charts.series.*;
import string.*;
import charts.series.bars.*;
public class BarStack extends BarBase {
public function BarStack(_arg1:Object, _arg2:Number, _arg3:Number){
super({}, 0);
var _local4:Properties = new Properties({values:[], keys:[], colours:["#FF0000", "#00FF00"], text:"", font-size:12, tip:"#x_label# : #val#<br>Total: #total#", alpha:0.6, on-click:false, axis:"left"});
this.props = new Properties(_arg1, _local4);
this.on_show = this.get_on_show(_arg1["on-show"]);
this.group = _arg3;
this.values = _arg1.values;
this.add_values();
}
override protected function get_all_at_this_x_pos(_arg1:Number):Array{
var _local3:Point;
var _local4:StackCollection;
var _local6:Array;
var _local7:Element;
var _local2:Array = new Array();
var _local5:Number = 0;
while (_local5 < this.numChildren) {
if ((this.getChildAt(_local5) is Element)){
_local4 = (this.getChildAt(_local5) as StackCollection);
_local3 = _local4.get_mid_point();
if (_local3.x == _arg1){
_local6 = _local4.get_children();
for each (_local7 in _local6) {
_local2.push(_local7);
};
};
};
_local5++;
};
return (_local2);
}
override protected function get_element(_arg1:Number, _arg2:Object):Element{
var _local3:Properties = new Properties({colours:this.props.get("colours"), tip:this.props.get("tip"), alpha:this.props.get("alpha"), on-click:this.props.get("on-click"), axis:this.props.get("axis"), on-show:this.on_show, values:_arg2});
return (new StackCollection(_arg1, _local3, this.group));
}
override public function get_keys():Object{
var _local2:Object;
var _local1:Array = [];
for each (_local2 in this.props.get("keys")) {
if (((((_local2.text) && (_local2["font-size"]))) && (_local2.colour))){
_local2.colour = Utils.get_colour(_local2.colour);
_local1.push(_local2);
};
};
return (_local1);
}
}
}//package charts
Section 61
//Base (charts.Base)
package charts {
import flash.geom.*;
import elements.axis.*;
import charts.series.*;
import flash.display.*;
public class Base extends Sprite {
public var line_width:Number;
public var colour:Number;
public var circle_size:Number;
protected var key:String;
protected var axis:Number;
public var values:Array;
protected var font_size:Number;
public function add_values():void{
var _local2:Object;
var _local3:Element;
var _local1:Number = 0;
for each (_local2 in this.values) {
if (_local2 != null){
_local3 = this.get_element(_local1, _local2);
if (_local3.line_mask != null){
this.addChild(_local3.line_mask);
};
this.addChild(_local3);
};
_local1++;
};
}
public function mouse_out():void{
var _local2:Element;
var _local1:Number = 0;
while (_local1 < this.numChildren) {
if ((this.getChildAt(_local1) is Element)){
_local2 = (this.getChildAt(_local1) as Element);
_local2.set_tip(false);
};
_local1++;
};
}
public function die():void{
var _local2:Element;
var _local1:Number = 0;
while (_local1 < this.numChildren) {
if ((this.getChildAt(_local1) is Element)){
_local2 = (this.getChildAt(_local1) as Element);
_local2.die();
};
_local1++;
};
while (this.numChildren > 0) {
this.removeChildAt(0);
};
}
protected function which_axis_am_i_attached_to(_arg1:Array, _arg2:Number):Number{
var _local3:Array;
var _local4:Number;
if (_arg1["show_y2"] != undefined){
if (_arg1["show_y2"] != "false"){
if (_arg1["y2_lines"] != undefined){
_local3 = _arg1.y2_lines.split(",");
_local4 = _local3.indexOf(_arg2.toString());
if (_local4 == -1){
return (1);
};
return (2);
};
};
};
return (1);
}
private function closest_x(_arg1:Number):Number{
var _local3:Point;
var _local4:Number;
var _local5:Number;
var _local7:Element;
var _local2:Number = Number.MAX_VALUE;
var _local6:Number = 0;
while (_local6 < this.numChildren) {
if ((this.getChildAt(_local6) is Element)){
_local7 = (this.getChildAt(_local6) as Element);
_local3 = _local7.get_mid_point();
_local5 = Math.abs((_arg1 - _local3.x));
if (_local5 < _local2){
_local2 = _local5;
_local4 = _local3.x;
};
};
_local6++;
};
return (_local4);
}
public function closest_2(_arg1:Number, _arg2:Number):Array{
_arg1 = closest_x(_arg1);
var _local3:Array = this.get_all_at_this_x_pos(_arg1);
var _local4:Array = this.get_closest_y(_local3, _arg2);
var _local5:Number = Math.abs((_arg2 - _local4.y));
return (_local4);
}
public function get_colour():Number{
return (this.colour);
}
public function closest(_arg1:Number, _arg2:Number):Object{
var _local5:Number;
var _local8:Element;
var _local3:Number = Number.MAX_VALUE;
var _local4:Element;
var _local6:Number = 0;
while (_local6 < this.numChildren) {
if ((this.getChildAt(_local6) is Element)){
_local8 = (this.getChildAt(_local6) as Element);
_local8.set_tip(false);
_local5 = Math.abs((_arg1 - _local8.x));
if (_local5 < _local3){
_local3 = _local5;
_local4 = _local8;
};
};
_local6++;
};
var _local7:Number = 0;
if (_local4){
_local7 = Math.abs((_arg2 - _local4.y));
};
return ({element:_local4, distance_x:_local3, distance_y:_local7});
}
protected function get_element(_arg1:Number, _arg2:Object):Element{
return (null);
}
public function mouse_proximity(_arg1:Number, _arg2:Number):Array{
var _local4:Point;
var _local5:Number;
var _local6:Element;
var _local3:Number = Number.MAX_VALUE;
var _local7:Point = new Point(_arg1, _arg2);
_local5 = 0;
while (_local5 < this.numChildren) {
if ((this.getChildAt(_local5) is Element)){
_local6 = (this.getChildAt(_local5) as Element);
_local3 = Math.min(Point.distance(_local6.get_mid_point(), _local7), _local3);
};
_local5++;
};
var _local8:Array = [];
_local5 = 0;
while (_local5 < this.numChildren) {
if ((this.getChildAt(_local5) is Element)){
_local6 = (this.getChildAt(_local5) as Element);
if (Point.distance(_local6.get_mid_point(), _local7) == _local3){
_local8.push(_local6);
};
};
_local5++;
};
return (_local8);
}
public function tooltip_replace_labels(_arg1:XAxisLabels):void{
var _local3:Element;
var _local2:Number = 0;
while (_local2 < this.numChildren) {
if ((this.getChildAt(_local2) is Element)){
_local3 = (this.getChildAt(_local2) as Element);
_local3.tooltip_replace_labels(_arg1);
};
_local2++;
};
}
private function get_closest_y(_arg1:Array, _arg2:Number):Array{
var _local4:Number;
var _local6:Point;
var _local7:Element;
var _local3:Number = Number.MAX_VALUE;
var _local5:Array = new Array();
for each (_local7 in _arg1) {
_local6 = _local7.get_mid_point();
_local4 = Math.abs((_arg2 - _local6.y));
_local3 = Math.min(_local4, _local3);
};
for each (_local7 in _arg1) {
_local6 = _local7.get_mid_point();
_local4 = Math.abs((_arg2 - _local6.y));
if (_local4 == _local3){
_local5.push(_local7);
};
};
return (_local5);
}
protected function get_all_at_this_x_pos(_arg1:Number):Array{
var _local3:Point;
var _local4:Element;
var _local2:Array = new Array();
var _local5:Number = 0;
while (_local5 < this.numChildren) {
if ((this.getChildAt(_local5) is Element)){
_local4 = (this.getChildAt(_local5) as Element);
_local3 = _local4.get_mid_point();
if (_local3.x == _arg1){
_local2.push(_local4);
};
};
_local5++;
};
return (_local2);
}
public function resize(_arg1:ScreenCoordsBase):void{
}
public function get_min_x():Number{
var _local3:Element;
var _local1:Number = Number.MAX_VALUE;
var _local2:Number = 0;
while (_local2 < this.numChildren) {
if ((this.getChildAt(_local2) is Element)){
_local3 = (this.getChildAt(_local2) as Element);
_local1 = Math.min(_local1, _local3.get_x());
};
_local2++;
};
return (_local1);
}
public function get_max_x():Number{
var _local3:Element;
var _local1:Number = Number.MIN_VALUE;
var _local2:Number = 0;
while (_local2 < this.numChildren) {
if ((this.getChildAt(_local2) is Element)){
_local3 = (this.getChildAt(_local2) as Element);
_local1 = Math.max(_local1, _local3.get_x());
};
_local2++;
};
return (_local1);
}
public function get_keys():Object{
var _local1:Array = [];
if ((((this.font_size > 0)) && (!((this.key == ""))))){
_local1.push({text:this.key, font-size:this.font_size, colour:this.get_colour()});
};
return (_local1);
}
}
}//package charts
Section 62
//Candle (charts.Candle)
package charts {
import charts.series.*;
import charts.series.bars.*;
public class Candle extends BarBase {
public function Candle(_arg1:Object, _arg2:Number){
super(_arg1, _arg2);
}
override protected function get_element(_arg1:Number, _arg2:Object):Element{
return (new ECandle(_arg1, this.get_element_helper_prop(_arg2), this.group));
}
}
}//package charts
Section 63
//Factory (charts.Factory)
package charts {
public class Factory {
private var attach_right:Array;
public static function MakeChart(_arg1:Object):ObjectCollection{
var _local9:Array;
var _local2:ObjectCollection = new ObjectCollection();
var _local3:Number = 0;
var _local4 = "";
var _local5:Number = 1;
var _local6:Array = (_arg1["elements"] as Array);
var _local7:Number = 0;
while (_local7 < _local6.length) {
switch (_local6[_local7]["type"]){
case "bar":
_local2.add(new Bar(_local6[_local7], _local3));
_local3++;
break;
case "line":
_local2.add(new Line(_local6[_local7]));
break;
case "area":
_local2.add(new Area(_local6[_local7]));
break;
case "pie":
_local2.add(new Pie(_local6[_local7]));
break;
case "hbar":
_local2.add(new HBar(_local6[_local7]));
_local3++;
break;
case "bar_stack":
_local2.add(new BarStack(_local6[_local7], _local5, _local3));
_local3++;
break;
case "scatter":
_local2.add(new Scatter(_local6[_local7]));
break;
case "scatter_line":
_local2.add(new ScatterLine(_local6[_local7]));
break;
case "bar_sketch":
_local2.add(new BarSketch(_local6[_local7], _local3));
_local3++;
break;
case "bar_glass":
_local2.add(new BarGlass(_local6[_local7], _local3));
_local3++;
break;
case "bar_cylinder":
_local2.add(new BarCylinder(_local6[_local7], _local3));
_local3++;
break;
case "bar_cylinder_outline":
_local2.add(new BarCylinderOutline(_local6[_local7], _local3));
_local3++;
break;
case "bar_dome":
_local2.add(new BarDome(_local6[_local7], _local3));
_local3++;
break;
case "bar_round":
_local2.add(new BarRound(_local6[_local7], _local3));
_local3++;
break;
case "bar_round_glass":
_local2.add(new BarRoundGlass(_local6[_local7], _local3));
_local3++;
break;
case "bar_round3d":
_local2.add(new BarRound3D(_local6[_local7], _local3));
_local3++;
break;
case "bar_fade":
_local2.add(new BarFade(_local6[_local7], _local3));
_local3++;
break;
case "bar_3d":
_local2.add(new Bar3D(_local6[_local7], _local3));
_local3++;
break;
case "bar_filled":
_local2.add(new BarOutline(_local6[_local7], _local3));
_local3++;
break;
case "bar_plastic":
_local2.add(new BarPlastic(_local6[_local7], _local3));
_local3++;
break;
case "bar_plastic_flat":
_local2.add(new BarPlasticFlat(_local6[_local7], _local3));
_local3++;
break;
case "shape":
_local2.add(new Shape(_local6[_local7]));
break;
case "candle":
_local2.add(new Candle(_local6[_local7], _local3));
_local3++;
break;
};
_local7++;
};
var _local8:Boolean;
_local2.groups = _local3;
return (_local2);
}
}
}//package charts
Section 64
//HBar (charts.HBar)
package charts {
import charts.series.*;
import string.*;
import charts.series.bars.*;
public class HBar extends Base {
protected var style:Object;
protected var group:Number;
public function HBar(_arg1:Object){
this.style = {values:[], colour:"#3030d0", text:"", font-size:12, tip:"#val#"};
object_helper.merge_2(_arg1, style);
this.colour = Utils.get_colour(style.colour);
this.key = _arg1.text;
this.font_size = _arg1["font-size"];
this.group = 0;
this.values = _arg1["values"];
this.style["on-click"] = _arg1["on-click"];
this.add_values();
}
override public function resize(_arg1:ScreenCoordsBase):void{
var _local3:Horizontal;
var _local2:Number = 0;
while (_local2 < this.numChildren) {
_local3 = (this.getChildAt(_local2) as Horizontal);
_local3.resize(_arg1);
_local2++;
};
}
override public function get_min_x():Number{
return (0);
}
override protected function get_element(_arg1:Number, _arg2:Object):Element{
var _local3:Object = {colour:this.style.colour, tip:this.style.tip, on-click:this.style["on-click"]};
if ((_arg2 is Number)){
_local3.top = _arg2;
} else {
object_helper.merge_2(_arg2, _local3);
};
if ((_local3.colour is String)){
_local3.colour = Utils.get_colour(_local3.colour);
};
return (new Horizontal(_arg1, _local3, this.group));
}
override public function get_max_x():Number{
var _local3:Horizontal;
var _local1:Number = 0;
var _local2:Number = 0;
while (_local2 < this.numChildren) {
if ((this.getChildAt(_local2) is Horizontal)){
_local3 = (this.getChildAt(_local2) as Horizontal);
_local1 = Math.max(_local1, _local3.get_max_x());
};
_local2++;
};
return (_local1);
}
}
}//package charts
Section 65
//Line (charts.Line)
package charts {
import flash.events.*;
import flash.utils.*;
import charts.series.*;
import flash.display.*;
import charts.series.dots.*;
public class Line extends Base {
private var on_show_timer:Timer;
private var line_style:LineStyle;
private var on_show_start:Boolean;
protected var props:Properties;
private var dot_style:Properties;
private var on_show:Properties;
public function Line(_arg1:Object){
var _local2:Properties = new Properties({values:[], width:2, colour:"#3030d0", text:"", font-size:12, tip:"#val#", loop:false, axis:"left"});
this.props = new Properties(_arg1, _local2);
this.line_style = new LineStyle(_arg1["line-style"]);
this.dot_style = new DefaultDotProperties(_arg1["dot-style"], this.props.get("colour"), this.props.get("axis"));
var _local3:Properties = new Properties({type:"none", cascade:0.5, delay:0});
this.on_show = new Properties(_arg1["on-show"], _local3);
this.on_show_start = true;
this.key = this.props.get("text");
this.font_size = this.props.get("font-size");
this.values = this.props.get("values");
this.add_values();
this.blendMode = BlendMode.LAYER;
}
public function dash_line():void{
var _local10:Sprite;
var _local11:Element;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Boolean;
var _local1:Boolean;
var _local2:int;
var _local3:int;
var _local4:Number = 0;
var _local5:Number = 0;
var _local6:Number = this.line_style.on;
var _local7:Number = this.line_style.off;
var _local8:Boolean;
var _local9:Number = 0;
while (_local9 < this.numChildren) {
_local10 = (this.getChildAt(_local9) as Sprite);
if ((_local10 is Element)){
_local11 = (_local10 as Element);
if (_local1){
this.graphics.moveTo(_local11.x, _local11.y);
_local4 = _local6;
_local5 = _local7;
_local8 = true;
_local1 = false;
_local2 = _local11.x;
_local3 = _local11.y;
_local12 = _local2;
_local14 = _local3;
} else {
_local16 = Math.sqrt((((_local11.x - _local2) * (_local11.x - _local2)) + ((_local11.y - _local3) * (_local11.y - _local3))));
_local17 = ((_local11.y - _local3) / _local16);
_local18 = ((_local11.x - _local2) / _local16);
_local19 = _local16;
_local20 = true;
while (_local20) {
if (_local8){
if (_local4 < _local19){
_local13 = (_local12 + (_local4 * _local18));
_local15 = (_local14 + (_local4 * _local17));
_local12 = _local13;
_local14 = _local15;
_local19 = (_local19 - _local4);
_local8 = false;
_local5 = _local7;
} else {
_local13 = _local11.x;
_local15 = _local11.y;
_local12 = _local13;
_local14 = _local15;
_local4 = (_local4 - _local19);
_local20 = false;
};
this.graphics.lineTo(_local13, _local15);
} else {
if (_local5 < _local19){
_local13 = (_local12 + (_local5 * _local18));
_local15 = (_local14 + (_local5 * _local17));
_local12 = _local13;
_local14 = _local15;
_local19 = (_local19 - _local5);
_local8 = true;
_local4 = _local6;
} else {
_local13 = _local11.x;
_local15 = _local11.y;
_local12 = _local13;
_local14 = _local15;
_local5 = (_local5 - _local19);
_local20 = false;
};
this.graphics.moveTo(_local13, _local15);
};
};
};
_local2 = _local11.x;
_local3 = _local11.y;
};
_local9++;
};
}
override protected function get_element(_arg1:Number, _arg2:Object):Element{
if ((_arg2 is Number)){
_arg2 = {value:_arg2};
};
var _local3:Properties = new Properties(_arg2, this.dot_style);
_local3.set("tip", _local3.get("tip").replace("#key#", this.key));
_local3.set("on-show", this.on_show);
return (dot_factory.make(_arg1, _local3));
}
protected function draw():void{
this.graphics.clear();
this.draw_line();
}
public function solid_line():void{
var _local2:Number;
var _local3:Sprite;
var _local4:Number;
var _local5:Number;
var _local6:Element;
var _local1:Boolean;
_local2 = 0;
while (_local2 < this.numChildren) {
_local3 = (this.getChildAt(_local2) as Sprite);
if ((_local3 is Element)){
_local6 = (_local3 as Element);
if (_local1){
this.graphics.moveTo(_local6.x, _local6.y);
_local4 = _local6.x;
_local5 = _local6.y;
_local1 = false;
} else {
this.graphics.lineTo(_local6.x, _local6.y);
};
};
_local2++;
};
if (this.props.get("loop")){
this.graphics.lineTo(_local4, _local5);
};
}
protected function animationManager(_arg1:TimerEvent):void{
this.draw();
if (!this.still_animating()){
tr.ace("Line.as : on show animation stop");
this.on_show_timer.stop();
};
}
private function still_animating():Boolean{
var _local1:Number;
var _local2:Sprite;
var _local3:PointDotBase;
_local1 = 0;
while (_local1 < this.numChildren) {
_local2 = (this.getChildAt(_local1) as Sprite);
if ((_local2 is PointDotBase)){
_local3 = (_local2 as PointDotBase);
if (_local3.is_tweening()){
return (true);
};
};
_local1++;
};
return (false);
}
override public function resize(_arg1:ScreenCoordsBase):void{
this.x = (this.y = 0);
this.move_dots(_arg1);
if (this.on_show_start){
this.start_on_show_timer();
} else {
this.draw();
};
}
private function start_on_show_timer():void{
this.on_show_start = false;
this.on_show_timer = new Timer((1000 / 60));
this.on_show_timer.addEventListener("timer", animationManager);
this.on_show_timer.start();
}
public function move_dots(_arg1:ScreenCoordsBase):void{
var _local2:Number;
var _local3:Sprite;
var _local4:Element;
_local2 = 0;
while (_local2 < this.numChildren) {
_local3 = (this.getChildAt(_local2) as Sprite);
if ((_local3 is Element)){
_local4 = (_local3 as Element);
_local4.resize(_arg1);
};
_local2++;
};
}
override public function get_colour():Number{
return (this.props.get_colour("colour"));
}
protected function draw_line():void{
this.graphics.lineStyle(this.props.get_colour("width"), this.props.get_colour("colour"));
if (this.line_style.style != "solid"){
this.dash_line();
} else {
this.solid_line();
};
}
}
}//package charts
Section 66
//LineStyle (charts.LineStyle)
package charts {
public class LineStyle {
public var style:String;
public var on:Number;
public var off:Number;
public function LineStyle(_arg1:Object){
this.style = "solid";
this.on = 1;
this.off = 5;
object_helper.merge_2(_arg1, this);
}
}
}//package charts
Section 67
//ObjectCollection (charts.ObjectCollection)
package charts {
import flash.geom.*;
import elements.axis.*;
import charts.series.*;
public class ObjectCollection {
public var sets:Array;
public var groups:Number;
public function ObjectCollection(){
this.sets = new Array();
}
public function die():void{
var _local1:Base;
for each (_local1 in this.sets) {
_local1.die();
};
}
public function add(_arg1:Base):void{
this.sets.push(_arg1);
}
public function resize(_arg1:ScreenCoordsBase):void{
var _local2:Base;
for each (_local2 in this.sets) {
_local2.resize(_arg1);
};
}
public function closest_2(_arg1:Number, _arg2:Number):Array{
var _local3:Element;
var _local4:Base;
var _local5:Point;
var _local7:Number;
var _local8:Array;
var _local9:Number;
var _local10:Array;
var _local11:Array;
var _local6:Array = new Array();
for each (_local4 in this.sets) {
_local11 = _local4.closest_2(_arg1, _arg2);
for each (_local3 in _local11) {
_local6.push(_local3);
};
};
_local7 = Number.MAX_VALUE;
for each (_local3 in _local6) {
_local5 = _local3.get_mid_point();
_local7 = Math.min(_local7, Math.abs((_arg1 - _local5.x)));
};
_local8 = new Array();
for each (_local3 in _local6) {
_local5 = _local3.get_mid_point();
if (Math.abs((_arg1 - _local5.x)) == _local7){
_local8.push(_local3);
};
};
_local9 = Number.MAX_VALUE;
for each (_local3 in _local8) {
_local5 = _local3.get_mid_point();
_local9 = Math.min(_local9, Math.abs((_arg2 - _local5.y)));
};
_local10 = new Array();
for each (_local3 in _local8) {
_local5 = _local3.get_mid_point();
if (Math.abs((_arg2 - _local5.y)) == _local9){
_local10.push(_local3);
};
};
return (_local10);
}
public function tooltip_replace_labels(_arg1:XAxisLabels):void{
var _local2:Base;
for each (_local2 in this.sets) {
_local2.tooltip_replace_labels(_arg1);
};
}
public function has_pie():Boolean{
if ((((this.sets.length > 0)) && ((this.sets[0] is Pie)))){
return (true);
};
return (false);
}
public function get_min_x():Number{
var _local2:Base;
var _local1:Number = Number.MAX_VALUE;
for each (_local2 in this.sets) {
_local1 = Math.min(_local1, _local2.get_min_x());
};
return (_local1);
}
public function mouse_move(_arg1:Number, _arg2:Number):Element{
var _local3:Element;
if (!_local3){
_local3 = this.closest(_arg1, _arg2);
};
return (_local3);
}
public function mouse_out():void{
var _local1:Base;
for each (_local1 in this.sets) {
_local1.mouse_out();
};
}
public function mouse_move_proximity(_arg1:Number, _arg2:Number):Array{
var _local3:Element;
var _local4:Base;
var _local5:Point;
var _local7:Number;
var _local8:Point;
var _local9:Array;
var _local10:Array;
var _local6:Array = new Array();
for each (_local4 in this.sets) {
_local10 = _local4.mouse_proximity(_arg1, _arg2);
for each (_local3 in _local10) {
_local6.push(_local3);
};
};
_local7 = Number.MAX_VALUE;
_local8 = new Point(_arg1, _arg2);
for each (_local3 in _local6) {
_local7 = Math.min(Point.distance(_local3.get_mid_point(), _local8), _local7);
};
_local9 = [];
for each (_local3 in _local6) {
if (Point.distance(_local3.get_mid_point(), _local8) == _local7){
_local9.push(_local3);
};
};
return (_local9);
}
private function closest(_arg1:Number, _arg2:Number):Element{
var _local3:Object;
var _local4:Base;
var _local6:Number;
var _local7:Object;
var _local5:Array = new Array();
for each (_local4 in this.sets) {
_local5.push(_local4.closest(_arg1, _arg2));
};
_local6 = Number.MAX_VALUE;
for each (_local3 in _local5) {
_local6 = Math.min(_local6, _local3.distance_x);
};
_local7 = {element:null, distance_x:Number.MAX_VALUE, distance_y:Number.MAX_VALUE};
for each (_local3 in _local5) {
if (_local3.distance_x == _local6){
if (_local3.distance_y < _local7.distance_y){
_local7 = _local3;
};
};
};
if (_local7.element){
_local7.element.set_tip(true);
};
return (_local7.element);
}
public function get_max_x():Number{
var _local2:Base;
var _local1:Number = Number.MIN_VALUE;
for each (_local2 in this.sets) {
_local1 = Math.max(_local1, _local2.get_max_x());
};
return (_local1);
}
}
}//package charts
Section 68
//Pie (charts.Pie)
package charts {
import global.*;
import charts.series.pies.*;
import string.*;
public class Pie extends Base {
private var gradientFill:String;// = "true"
private var label_line:Number;
private var colours:Array;
private var easing:Function;
private var props:Properties;
public var style:Object;
public var total_value:Number;// = 0
private var links:Array;
private var border_width:Number;// = 1
private var labels:Array;
public function Pie(_arg1:Object){
var _local2:String;
super();
this.labels = new Array();
this.links = new Array();
this.colours = new Array();
this.style = {colours:["#900000", "#009000"]};
object_helper.merge_2(_arg1, this.style);
for each (_local2 in this.style.colours) {
this.colours.push(Utils.get_colour(_local2));
};
this.props = new DefaultPieProperties(_arg1);
this.label_line = 10;
this.values = _arg1.values;
this.add_values();
}
override public function add_values():void{
var _local4:Number;
var _local5:Object;
var _local6:Number;
var _local7:Number;
var _local8:String;
var _local1:Global = Global.getInstance();
var _local2:Number = 0;
var _local3:Number = this.props.get("start-angle");
for each (_local5 in this.values) {
if ((_local5 is Number)){
_local2 = (_local2 + _local5);
} else {
_local2 = (_local2 + _local5.value);
};
};
this.total_value = _local2;
_local4 = 0;
for each (_local5 in this.values) {
_local6 = ((_local5 is Number)) ? (_local5 as Number) : _local5.value;
_local7 = ((_local6 * 360) / _local2);
if (_local7 >= 0){
_local8 = this.props.get("tip").replace("#total#", NumberUtils.formatNumber(this.total_value));
_local8 = _local8.replace("#percent#", (NumberUtils.formatNumber(((_local6 / this.total_value) * 100)) + "%"));
this.addChild(this.add_slice(_local4, _local3, _local7, _local5, _local8, this.colours[(_local4 % this.colours.length)]));
};
_local4++;
_local3 = (_local3 + _local7);
};
}
override public function toString():String{
return ((("Pie with " + this.numChildren) + " children"));
}
override public function closest(_arg1:Number, _arg2:Number):Object{
return ({Element:null, distance_x:0, distance_y:0});
}
private function add_slice(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Object, _arg5:String, _arg6:String):PieSliceContainer{
var _local7:Properties = new Properties({colour:_arg6, tip:_arg5, start:_arg2, angle:_arg3}, this.props);
var _local8:Object = {};
if ((_arg4 is Number)){
_local8.value = _arg4;
} else {
_local8 = _arg4;
};
var _local9:Properties = new Properties(_local8, _local7);
if (!_local9.has("label")){
_local9.set("label", _local9.get("value").toString());
};
return (new PieSliceContainer(_arg1, _local9));
}
override public function resize(_arg1:ScreenCoordsBase):void{
var _local14:Object;
var _local15:Number;
var _local16:PieSliceContainer;
var _local17:Number;
var _local18:Object;
var _local19:Object;
var _local20:Number;
var _local2:Number = this.style.radius;
if (isNaN(_local2)){
_local2 = (Math.min(_arg1.width, _arg1.height) / 2);
_local14 = {top:0, right:0, bottom:0, left:0};
trace("sc.width, sc.height, radius", _arg1.width, _arg1.height, _local2);
_local15 = 0;
while (_local15 < this.numChildren) {
_local16 = (this.getChildAt(_local15) as PieSliceContainer);
_local18 = _local16.get_radius_offsets();
for (_local19 in _local14) {
if (_local18[_local19] > _local14[_local19]){
_local14[_local19] = _local18[_local19];
};
};
_local15++;
};
_local17 = _local2;
_local17 = (_local17 - Math.max(_local14.top, _local14.bottom));
if ((_local17 + _local14.left) > (_arg1.width / 2)){
_local17 = ((_arg1.width / 2) - _local14.left);
};
if ((_local17 + _local14.right) > (_arg1.width / 2)){
_local17 = ((_arg1.width / 2) - _local14.right);
};
_local2 = Math.max(_local17, 10);
};
var _local3:Number = 720;
var _local4:Number = -1;
var _local5:Number = -720;
var _local6:Number = -1;
var _local7:Number = 720;
var _local8:Number = -1;
var _local9:Number = -720;
var _local10:Number = -1;
_local15 = 0;
while (_local15 < this.numChildren) {
_local16 = (this.getChildAt(_local15) as PieSliceContainer);
_local16.pie_resize(_arg1, _local2);
_local20 = _local16.getTicAngle();
if (_local20 >= 270){
if ((((_local20 < _local3)) || ((_local3 <= 90)))){
_local3 = _local20;
_local4 = _local15;
};
if ((((_local5 < 0)) || ((((_local5 > 90)) && ((_local5 < _local20)))))){
_local5 = _local20;
_local6 = _local15;
};
} else {
if (_local20 <= 90){
if ((((_local20 > _local5)) || ((_local5 > 90)))){
_local5 = _local20;
_local6 = _local15;
};
if ((((_local3 > 360)) || ((((_local3 <= 90)) && ((_local20 < _local5)))))){
_local3 = _local20;
_local4 = _local15;
};
} else {
if (_local20 <= 180){
if ((((_local9 < 0)) || ((_local20 < _local9)))){
_local9 = _local20;
_local10 = _local15;
};
if ((((_local7 > 360)) || ((_local7 < _local20)))){
_local7 = _local20;
_local8 = _local15;
};
} else {
if ((((_local7 > 360)) || ((_local20 > _local7)))){
_local7 = _local20;
_local8 = _local15;
};
if ((((_local9 < 0)) || ((_local9 > _local20)))){
_local9 = _local20;
_local10 = _local15;
};
};
};
};
_local15++;
};
var _local11:Number = _local4;
var _local12:Number = _arg1.top;
var _local13:Boolean;
while ((((_local11 >= 0)) && (!(_local13)))) {
_local16 = (this.getChildAt(_local11) as PieSliceContainer);
_local20 = _local16.getTicAngle();
if ((((_local20 >= 270)) || ((_local20 <= 90)))){
_local12 = _local16.moveLabelDown(_arg1, _local12);
++_local11;
if (_local11 >= this.numChildren){
_local11 = 0;
};
_local13 = (_local11 == _local4);
} else {
_local13 = true;
};
};
_local11 = _local6;
_local12 = _arg1.bottom;
_local13 = false;
while ((((_local11 >= 0)) && (!(_local13)))) {
_local16 = (this.getChildAt(_local11) as PieSliceContainer);
_local20 = _local16.getTicAngle();
if ((((_local20 >= 270)) || ((_local20 <= 90)))){
_local12 = _local16.moveLabelUp(_arg1, _local12);
--_local11;
if (_local11 < 0){
_local11 = (this.numChildren - 1);
};
_local13 = (_local11 == _local6);
} else {
_local13 = true;
};
};
_local11 = _local10;
_local12 = _arg1.bottom;
_local13 = false;
while ((((_local11 >= 0)) && (!(_local13)))) {
_local16 = (this.getChildAt(_local11) as PieSliceContainer);
_local20 = _local16.getTicAngle();
if ((((_local20 > 90)) && ((_local20 < 270)))){
_local12 = _local16.moveLabelUp(_arg1, _local12);
++_local11;
if (_local11 >= this.numChildren){
_local11 = 0;
};
_local13 = (_local11 == _local10);
} else {
_local13 = true;
};
};
_local11 = _local8;
_local12 = _arg1.top;
_local13 = false;
while ((((_local11 >= 0)) && (!(_local13)))) {
_local16 = (this.getChildAt(_local11) as PieSliceContainer);
_local20 = _local16.getTicAngle();
if ((((_local20 > 90)) && ((_local20 < 270)))){
_local12 = _local16.moveLabelDown(_arg1, _local12);
--_local11;
if (_local11 < 0){
_local11 = (this.numChildren - 1);
};
_local13 = (_local11 == _local8);
} else {
_local13 = true;
};
};
}
}
}//package charts
Section 69
//Scatter (charts.Scatter)
package charts {
import charts.series.dots.*;
import string.*;
public class Scatter extends ScatterBase {
public function Scatter(_arg1:Object){
var _local3:Object;
super(_arg1);
this.style = {values:[], width:2, colour:"#3030d0", text:"", font-size:12, tip:"[#x#,#y#] #size#", axis:"left"};
var _local2:Object = _arg1["dot-style"];
object_helper.merge_2(_arg1, style);
this.default_style = new DefaultDotProperties(_arg1["dot-style"], this.style.colour, this.style.axis);
this.line_width = style.width;
this.colour = Utils.get_colour(style.colour);
this.key = style.text;
this.font_size = style["font-size"];
this.circle_size = style["dot-size"];
for each (_local3 in style.values) {
if (_local3["dot-size"] == null){
_local3["dot-size"] = style["dot-size"];
};
};
this.values = style.values;
this.add_values();
}
}
}//package charts
Section 70
//ScatterBase (charts.ScatterBase)
package charts {
import charts.series.*;
import flash.display.*;
import charts.series.dots.*;
import string.*;
public class ScatterBase extends Base {
protected var props:Properties;
protected var style:Object;
protected var default_style:DefaultDotProperties;
private var dot_style:Properties;
private var on_show:Properties;
public function ScatterBase(_arg1:Object){
var _local2:Properties = new Properties({colour:"#3030d0", text:"", font-size:12, tip:"#val#", axis:"left"});
this.props = new Properties(_arg1, _local2);
this.dot_style = new DefaultDotProperties(_arg1["dot-style"], this.props.get("colour"), this.props.get("axis"));
var _local3:Properties = new Properties({type:"explode", cascade:0, delay:0.3});
this.on_show = new Properties(_arg1["on-show"], _local3);
}
override public function resize(_arg1:ScreenCoordsBase):void{
var _local2:Sprite;
var _local4:Element;
var _local3:Number = 0;
while (_local3 < this.numChildren) {
_local2 = (this.getChildAt(_local3) as Sprite);
if ((_local2 is Element)){
_local4 = (_local2 as Element);
_local4.resize(_arg1);
};
_local3++;
};
}
override protected function get_element(_arg1:Number, _arg2:Object):Element{
var _local3:Object = {width:this.style.width, colour:this.style.colour, tip:this.style.tip};
object_helper.merge_2(this.style["dot-style"], _local3);
object_helper.merge_2(_arg2, _local3);
if ((_local3.colour is String)){
_local3.colour = Utils.get_colour(_local3.colour);
};
var _local4:Properties = new Properties(_arg2, this.dot_style);
_local4.set("on-show", this.on_show);
return (dot_factory.make(_arg1, _local4));
}
}
}//package charts
Section 71
//ScatterLine (charts.ScatterLine)
package charts {
import charts.series.*;
import flash.display.*;
import charts.series.dots.*;
import string.*;
public class ScatterLine extends ScatterBase {
public var stepgraph:Number;// = 0
public static const STEP_VERTICAL:Number = 2;
public static const STEP_HORIZONTAL:Number = 1;
public function ScatterLine(_arg1:Object){
super(_arg1);
this.blendMode = BlendMode.LAYER;
this.style = {values:[], width:2, colour:"#3030d0", text:"", font-size:12, stepgraph:0, axis:"left"};
var _local2:Object = _arg1["dot-style"];
object_helper.merge_2(_arg1, style);
this.default_style = new DefaultDotProperties(_arg1["dot-style"], this.style.colour, this.style.axis);
this.style.colour = Utils.get_colour(style.colour);
this.line_width = style.width;
this.colour = this.style.colour;
this.key = style.text;
this.font_size = style["font-size"];
switch (style["stepgraph"]){
case "horizontal":
stepgraph = STEP_HORIZONTAL;
break;
case "vertical":
stepgraph = STEP_VERTICAL;
break;
};
this.values = style.values;
this.add_values();
}
public function solid_line(_arg1:ScreenCoordsBase):void{
var _local13:Sprite;
var _local14:Element;
var _local15:Number;
var _local16:Number;
var _local2:Boolean;
var _local3:Number = 0;
var _local4:Number = 0;
var _local5:Boolean;
var _local6:Boolean;
var _local7:Number = NaN;
var _local8:Number = NaN;
var _local9:Number = this.colour;
var _local10:Number = 0.4;
var _local11:Object = this.style["area-style"];
if (_local11 != null){
_local6 = true;
if (_local11.x != null){
_local7 = _local11.x;
};
if (_local11.y != null){
_local8 = _local11.y;
};
if (_local11.colour != null){
_local9 = Utils.get_colour(_local11.colour);
};
if (_local11.alpha != null){
_local10 = _local11.alpha;
};
if (!isNaN(_local7)){
_local7 = _arg1.get_x_from_val(_local7);
};
if (!isNaN(_local8)){
_local8 = _arg1.get_y_from_val(_local8);
};
};
var _local12:Number = 0;
while (_local12 < this.numChildren) {
_local13 = (this.getChildAt(_local12) as Sprite);
tr.ace("!!");
if ((_local13 is Element)){
_local14 = (_local13 as Element);
tr.ace(_local14.x);
_local14.resize(_arg1);
if (!_local14.visible){
if (((_local6) && ((_local12 > 0)))){
_local15 = (isNaN(_local7)) ? _local3 : _local7;
_local16 = (isNaN(_local8)) ? _local4 : _local8;
this.graphics.lineStyle(0, _local9, 0);
this.graphics.lineTo(_local15, _local16);
this.graphics.endFill();
_local5 = true;
};
_local2 = true;
} else {
if (_local2){
if (_local6){
_local15 = (isNaN(_local7)) ? _local14.x : _local7;
_local16 = (isNaN(_local8)) ? _local14.y : _local8;
this.graphics.beginFill(_local9, _local10);
this.graphics.lineStyle(0, _local9, 0);
this.graphics.moveTo(_local15, _local16);
this.graphics.lineTo(_local14.x, _local14.y);
_local5 = false;
this.graphics.lineStyle(this.style.width, this.style.colour, 1);
} else {
this.graphics.moveTo(_local14.x, _local14.y);
};
_local2 = false;
} else {
if (this.stepgraph == STEP_HORIZONTAL){
this.graphics.lineTo(_local14.x, _local4);
} else {
if (this.stepgraph == STEP_VERTICAL){
this.graphics.lineTo(_local3, _local14.y);
};
};
this.graphics.lineTo(_local14.x, _local14.y);
};
};
_local3 = _local14.x;
_local4 = _local14.y;
};
_local12++;
};
if (((_local6) && (!(_local5)))){
_local15 = (isNaN(_local7)) ? _local3 : _local7;
_local16 = (isNaN(_local8)) ? _local4 : _local8;
this.graphics.lineStyle(0, _local9, 0);
this.graphics.lineTo(_local15, _local16);
this.graphics.endFill();
};
}
override public function resize(_arg1:ScreenCoordsBase):void{
super.resize(_arg1);
this.graphics.clear();
this.graphics.lineStyle(this.style.width, this.style.colour);
this.solid_line(_arg1);
}
}
}//package charts
Section 72
//Shape (charts.Shape)
package charts {
import flash.geom.*;
import string.*;
public class Shape extends Base {
private var style:Object;
public function Shape(_arg1:Object){
var _local2:Object;
super();
this.style = {points:[], colour:"#808080", alpha:0.5};
object_helper.merge_2(_arg1, this.style);
this.style.colour = Utils.get_colour(this.style.colour);
for each (_local2 in _arg1.values) {
this.style.points.push(new Point(_local2.x, _local2.y));
};
}
override public function resize(_arg1:ScreenCoordsBase):void{
var _local3:Point;
this.graphics.clear();
this.graphics.lineStyle(0, 0, 0);
this.graphics.beginFill(this.style.colour, this.style.alpha);
var _local2:Boolean;
for each (_local3 in this.style.points) {
if (!_local2){
this.graphics.moveTo(_arg1.get_x_from_val(_local3.x), _arg1.get_y_from_val(_local3.y));
} else {
this.graphics.lineTo(_arg1.get_x_from_val(_local3.x), _arg1.get_y_from_val(_local3.y));
};
_local2 = true;
};
this.graphics.endFill();
}
}
}//package charts
Section 73
//PNGEncoder (com.adobe.images.PNGEncoder)
package com.adobe.images {
import flash.utils.*;
import flash.display.*;
public class PNGEncoder {
private static var crcTableComputed:Boolean = false;
private static var crcTable:Array;
private static function writeChunk(_arg1:ByteArray, _arg2:uint, _arg3:ByteArray):void{
var _local8:uint;
var _local9:uint;
var _local10:uint;
if (!crcTableComputed){
crcTableComputed = true;
crcTable = [];
_local9 = 0;
while (_local9 < 0x0100) {
_local8 = _local9;
_local10 = 0;
while (_local10 < 8) {
if ((_local8 & 1)){
_local8 = uint((uint(3988292384) ^ uint((_local8 >>> 1))));
} else {
_local8 = uint((_local8 >>> 1));
};
_local10++;
};
crcTable[_local9] = _local8;
_local9++;
};
};
var _local4:uint;
if (_arg3 != null){
_local4 = _arg3.length;
};
_arg1.writeUnsignedInt(_local4);
var _local5:uint = _arg1.position;
_arg1.writeUnsignedInt(_arg2);
if (_arg3 != null){
_arg1.writeBytes(_arg3);
};
var _local6:uint = _arg1.position;
_arg1.position = _local5;
_local8 = 4294967295;
var _local7:int;
while (_local7 < (_local6 - _local5)) {
_local8 = uint((crcTable[((_local8 ^ _arg1.readUnsignedByte()) & uint(0xFF))] ^ uint((_local8 >>> 8))));
_local7++;
};
_local8 = uint((_local8 ^ uint(4294967295)));
_arg1.position = _local6;
_arg1.writeUnsignedInt(_local8);
}
public static function encode(_arg1:BitmapData):ByteArray{
var _local6:uint;
var _local7:int;
var _local2:ByteArray = new ByteArray();
_local2.writeUnsignedInt(2303741511);
_local2.writeUnsignedInt(218765834);
var _local3:ByteArray = new ByteArray();
_local3.writeInt(_arg1.width);
_local3.writeInt(_arg1.height);
_local3.writeUnsignedInt(134610944);
_local3.writeByte(0);
writeChunk(_local2, 1229472850, _local3);
var _local4:ByteArray = new ByteArray();
var _local5:int;
while (_local5 < _arg1.height) {
_local4.writeByte(0);
if (!_arg1.transparent){
_local7 = 0;
while (_local7 < _arg1.width) {
_local6 = _arg1.getPixel(_local7, _local5);
_local4.writeUnsignedInt(uint((((_local6 & 0xFFFFFF) << 8) | 0xFF)));
_local7++;
};
} else {
_local7 = 0;
while (_local7 < _arg1.width) {
_local6 = _arg1.getPixel32(_local7, _local5);
_local4.writeUnsignedInt(uint((((_local6 & 0xFFFFFF) << 8) | (_local6 >>> 24))));
_local7++;
};
};
_local5++;
};
_local4.compress();
writeChunk(_local2, 1229209940, _local4);
writeChunk(_local2, 1229278788, null);
return (_local2);
}
}
}//package com.adobe.images
Section 74
//JSON (com.serialization.json.JSON)
package com.serialization.json {
public class JSON {
public static function serialize(_arg1):String{
var _local2:String;
var _local3:Number;
var _local4:Number;
var _local6:*;
var _local7:String;
var _local8:Number;
var _local5 = "";
switch (typeof(_arg1)){
case "object":
if (_arg1){
if ((_arg1 is Array)){
_local4 = _arg1.length;
_local3 = 0;
while (_local3 < _local4) {
_local6 = serialize(_arg1[_local3]);
if (_local5){
_local5 = (_local5 + ",");
};
_local5 = (_local5 + _local6);
_local3++;
};
return ((("[" + _local5) + "]"));
} else {
if (typeof(_arg1.toString) != "undefined"){
for (_local7 in _arg1) {
_local6 = _arg1[_local7];
if (((!((typeof(_local6) == "undefined"))) && (!((typeof(_local6) == "function"))))){
_local6 = serialize(_local6);
if (_local5){
_local5 = (_local5 + ",");
};
_local5 = (_local5 + ((serialize(_local7) + ":") + _local6));
};
};
return ((("{" + _local5) + "}"));
};
};
};
return ("null");
case "number":
return ((isFinite(_arg1)) ? String(_arg1) : "null");
case "string":
_local4 = _arg1.length;
_local5 = "\"";
_local3 = 0;
while (_local3 < _local4) {
_local2 = _arg1.charAt(_local3);
if (_local2 >= " "){
if ((((_local2 == "\\")) || ((_local2 == "\"")))){
_local5 = (_local5 + "\\");
};
_local5 = (_local5 + _local2);
} else {
switch (_local2){
case "\b":
_local5 = (_local5 + "\\b");
break;
case "\f":
_local5 = (_local5 + "\\f");
break;
case "\n":
_local5 = (_local5 + "\\n");
break;
case "\r":
_local5 = (_local5 + "\\r");
break;
case "\t":
_local5 = (_local5 + "\\t");
break;
default:
_local8 = _local2.charCodeAt();
_local5 = (_local5 + (("\\u00" + Math.floor((_local8 / 16)).toString(16)) + (_local8 % 16).toString(16)));
};
};
_local3 = (_local3 + 1);
};
return ((_local5 + "\""));
case "boolean":
return (String(_arg1));
default:
return ("null");
};
}
public static function deserialize(_arg1:String){
var at:Number;
var ch:String;
var _isDigit:Function;
var _isHexDigit:Function;
var _white:Function;
var _string:Function;
var _next:Function;
var _array:Function;
var _object:Function;
var _number:Function;
var _word:Function;
var _value:Function;
var _error:Function;
var source = _arg1;
source = new String(source);
at = 0;
ch = " ";
_isDigit = function (_arg1:String){
return (((("0" <= _arg1)) && ((_arg1 <= "9"))));
};
_isHexDigit = function (_arg1:String){
return (((((_isDigit(_arg1)) || (((("A" <= _arg1)) && ((_arg1 <= "F")))))) || (((("a" <= _arg1)) && ((_arg1 <= "f"))))));
};
_error = function (_arg1:String):void{
throw (new Error(_arg1, (at - 1)));
};
_next = function (){
ch = source.charAt(at);
at = (at + 1);
return (ch);
};
_white = function ():void{
while (ch) {
if (ch <= " "){
_next();
} else {
if (ch == "/"){
switch (_next()){
case "/":
do {
} while (((((_next()) && (!((ch == "\n"))))) && (!((ch == "\r")))));
break;
case "*":
_next();
while (true) {
if (ch){
if (ch == "*"){
if (_next() == "/"){
_next();
break;
};
} else {
_next();
};
} else {
_error("Unterminated Comment");
};
};
break;
default:
_error("Syntax Error");
};
} else {
break;
};
};
};
};
_string = function (){
var _local3:*;
var _local4:*;
var _local1:* = "";
var _local2:* = "";
var _local5:Boolean;
if (ch == "\""){
while (_next()) {
if (ch == "\""){
_next();
return (_local2);
};
if (ch == "\\"){
switch (_next()){
case "b":
_local2 = (_local2 + "\b");
break;
case "f":
_local2 = (_local2 + "\f");
break;
case "n":
_local2 = (_local2 + "\n");
break;
case "r":
_local2 = (_local2 + "\r");
break;
case "t":
_local2 = (_local2 + "\t");
break;
case "u":
_local4 = 0;
_local1 = 0;
while (_local1 < 4) {
_local3 = parseInt(_next(), 16);
if (!isFinite(_local3)){
_local5 = true;
break;
};
_local4 = ((_local4 * 16) + _local3);
_local1 = (_local1 + 1);
};
if (_local5){
_local5 = false;
break;
};
_local2 = (_local2 + String.fromCharCode(_local4));
break;
default:
_local2 = (_local2 + ch);
};
} else {
_local2 = (_local2 + ch);
};
};
};
_error("Bad String");
return (null);
};
_array = function (){
var _local1:Array = [];
if (ch == "["){
_next();
_white();
if (ch == "]"){
_next();
return (_local1);
};
while (ch) {
_local1.push(_value());
_white();
if (ch == "]"){
_next();
return (_local1);
};
if (ch != ","){
break;
};
_next();
_white();
};
};
_error("Bad Array");
return (null);
};
_object = function (){
var _local1:* = {};
var _local2:* = {};
if (ch == "{"){
_next();
_white();
if (ch == "}"){
_next();
return (_local2);
};
while (ch) {
_local1 = _string();
_white();
if (ch != ":"){
break;
};
_next();
_local2[_local1] = _value();
_white();
if (ch == "}"){
_next();
return (_local2);
};
if (ch != ","){
break;
};
_next();
_white();
};
};
_error("Bad Object");
};
_number = function (){
var _local2:*;
var _local1:* = "";
var _local3 = "";
var _local4 = "";
if (ch == "-"){
_local1 = "-";
_local4 = _local1;
_next();
};
if (ch == "0"){
_next();
if ((((ch == "x")) || ((ch == "X")))){
_next();
while (_isHexDigit(ch)) {
_local3 = (_local3 + ch);
_next();
};
if (_local3 == ""){
_error("mal formed Hexadecimal");
} else {
return (Number(((_local4 + "0x") + _local3)));
};
} else {
_local1 = (_local1 + "0");
};
};
while (_isDigit(ch)) {
_local1 = (_local1 + ch);
_next();
};
if (ch == "."){
_local1 = (_local1 + ".");
while (((((_next()) && ((ch >= "0")))) && ((ch <= "9")))) {
_local1 = (_local1 + ch);
};
};
_local2 = (1 * _local1);
if (!isFinite(_local2)){
_error("Bad Number");
} else {
return (_local2);
};
return (NaN);
};
_word = function (){
switch (ch){
case "t":
if ((((((_next() == "r")) && ((_next() == "u")))) && ((_next() == "e")))){
_next();
return (true);
};
break;
case "f":
if ((((((((_next() == "a")) && ((_next() == "l")))) && ((_next() == "s")))) && ((_next() == "e")))){
_next();
return (false);
};
break;
case "n":
if ((((((_next() == "u")) && ((_next() == "l")))) && ((_next() == "l")))){
_next();
return (null);
};
break;
};
_error("Syntax Error");
return (null);
};
_value = function (){
_white();
switch (ch){
case "{":
return (_object());
case "[":
return (_array());
case "\"":
return (_string());
case "-":
return (_number());
default:
return (((((ch >= "0")) && ((ch <= "9")))) ? _number() : _word());
};
};
return (_value());
}
}
}//package com.serialization.json
Section 75
//AxisLabel (elements.axis.AxisLabel)
package elements.axis {
import flash.geom.*;
import flash.text.*;
import flash.display.*;
public class AxisLabel extends TextField {
public var rightOverhang:Number;// = 0
public var yVal:Number;// = NAN
public var xVal:Number;// = NAN
public var leftOverhang:Number;// = 0
public var yAdj:Number;// = 0
public var xAdj:Number;// = 0
public function rotate_and_align(_arg1:Number, _arg2:String, _arg3:Sprite):void{
_arg1 = (_arg1 % 360);
if (_arg1 < 0){
_arg1 = (_arg1 + 360);
};
var _local4:Number = (this.width * Math.cos(((_arg1 * Math.PI) / 180)));
var _local5:Number = (this.height * Math.cos((((90 - _arg1) * Math.PI) / 180)));
var _local6:Number = (this.height * Math.sin((((90 - _arg1) * Math.PI) / 180)));
var _local7:Number = (this.width * Math.sin(((_arg1 * Math.PI) / 180)));
if (((((_arg1 % 90) == 0)) || ((_arg2 == "center")))){
this.xAdj = ((_local5 - _local4) / 2);
} else {
this.xAdj = ((_arg1)<180) ? (_local5 / 2) : (-(_local4) + (_local5 / 2));
};
if (_arg1 > 90){
this.yAdj = -(_local6);
};
if (_arg1 > 180){
this.yAdj = (-(_local6) - _local7);
};
if (_arg1 > 270){
this.yAdj = -(_local7);
};
this.rotation = _arg1;
var _local8:Rectangle = this.getBounds(_arg3);
this.leftOverhang = Math.abs((_local8.x + this.xAdj));
this.rightOverhang = Math.abs(((_local8.x + _local8.width) + this.xAdj));
}
}
}//package elements.axis
Section 76
//RadarAxis (elements.axis.RadarAxis)
package elements.axis {
import flash.geom.*;
import flash.display.*;
import string.*;
public class RadarAxis extends Sprite {
private var grid_colour:Number;
private var colour:Number;
private var TO_RADIANS:Number;// = 0.0174532925199433
private var style:Object;
private var spoke_labels:RadarSpokeLabels;
private var labels:RadarAxisLabels;
public function RadarAxis(_arg1:Object){
this.style = {stroke:2, colour:"#784016", grid-colour:"#F5E1AA", min:0, max:null, steps:1};
if (_arg1 != null){
object_helper.merge_2(_arg1, this.style);
};
this.colour = Utils.get_colour(this.style.colour);
this.grid_colour = Utils.get_colour(this.style["grid-colour"]);
this.labels = new RadarAxisLabels(_arg1.labels);
this.addChild(this.labels);
this.spoke_labels = new RadarSpokeLabels(_arg1["spoke-labels"]);
this.addChild(this.spoke_labels);
}
public function die():void{
this.style = null;
this.labels.die();
this.spoke_labels.die();
this.graphics.clear();
while (this.numChildren > 0) {
this.removeChildAt(0);
};
}
private function draw_grid(_arg1:ScreenCoordsRadar, _arg2:Number):void{
var _local5:Point;
var _local7:Number;
this.graphics.lineStyle(1, this.grid_colour, 1, true);
var _local3:Number = (_arg1.get_max() + 1E-5);
var _local4:Number = this.style.steps;
var _local6:Number = _local4;
while (_local6 <= _local3) {
_local5 = _arg1.get_get_x_from_pos_and_y_from_val(0, _local6);
this.graphics.moveTo(_local5.x, _local5.y);
_local7 = 1;
while (_local7 < (_arg2 + 1)) {
_local5 = _arg1.get_get_x_from_pos_and_y_from_val(_local7, _local6);
this.graphics.lineTo(_local5.x, _local5.y);
_local7++;
};
_local6 = (_local6 + _local4);
};
}
private function draw_axis(_arg1:ScreenCoordsRadar, _arg2:Number):void{
var _local4:Point;
var _local5:Point;
this.graphics.lineStyle(this.style.stroke, this.colour, 1, true);
var _local3:Number = 0;
while (_local3 < _arg2) {
_local4 = _arg1.get_get_x_from_pos_and_y_from_val(_local3, 0);
this.graphics.moveTo(_local4.x, _local4.y);
_local5 = _arg1.get_get_x_from_pos_and_y_from_val(_local3, _arg1.get_max());
this.graphics.lineTo(_local5.x, _local5.y);
_local3++;
};
}
public function get_range():Range{
return (new Range(this.style.min, this.style.max, this.style.steps, false));
}
public function resize(_arg1:ScreenCoordsRadar):void{
this.x = 0;
this.y = 0;
this.graphics.clear();
this.spoke_labels.resize(_arg1);
var _local2:Number = _arg1.get_angles();
this.draw_grid(_arg1, _local2);
this.draw_axis(_arg1, _local2);
this.labels.resize(_arg1);
}
}
}//package elements.axis
Section 77
//RadarAxisLabels (elements.axis.RadarAxisLabels)
package elements.axis {
import flash.text.*;
import flash.display.*;
import string.*;
public class RadarAxisLabels extends Sprite {
private var style:Object;
public var labels:Array;
public function RadarAxisLabels(_arg1:Object){
var _local2:Array;
var _local4:Object;
super();
this.style = {colour:"#784016", steps:1};
if (_arg1 != null){
object_helper.merge_2(_arg1, this.style);
};
this.style.colour = Utils.get_colour(this.style.colour);
this.labels = new Array();
var _local3:Boolean;
if ((((this.style.labels is Array)) && ((this.style.labels.length > 0)))){
for each (_local4 in this.style.labels) {
this.add(_local4, this.style);
};
};
}
public function die():void{
this.style = null;
this.labels = null;
this.graphics.clear();
while (this.numChildren > 0) {
this.removeChildAt(0);
};
}
public function add(_arg1:Object, _arg2:Object):void{
var _local3:Object = {colour:_arg2.colour, text:"", size:_arg2.size, visible:true};
if ((_arg1 is String)){
_local3.text = (_arg1 as String);
} else {
object_helper.merge_2(_arg1, _local3);
};
if ((_local3.colour is String)){
_local3.colour = Utils.get_colour(_local3.colour);
};
this.labels.push(_local3.text);
if (_local3.visible == null){
if (((this.labels.length - 1) % _arg2.steps) == 0){
_local3.visible = true;
} else {
_local3.visible = false;
};
};
var _local4:TextField = this.make_label(_local3);
this.addChild(_local4);
}
public function resize(_arg1:ScreenCoordsRadar):void{
var _local2:Number;
var _local3:TextField;
var _local4:Number = _arg1.get_center_x();
_local2 = 0;
while (_local2 < this.numChildren) {
_local3 = (this.getChildAt(_local2) as TextField);
_local3.x = (_local4 - _local3.width);
_local2++;
};
_local2 = 0;
while (_local2 < this.numChildren) {
_local3 = (this.getChildAt(_local2) as TextField);
_local3.y = (_arg1.get_y_from_val(_local2, false) - (_local3.height / 2));
_local2++;
};
}
public function make_label(_arg1:Object):TextField{
var _local2:TextField = new TextField();
_local2.x = 0;
_local2.y = 0;
_local2.text = _arg1.text;
var _local3:TextFormat = new TextFormat();
_local3.color = _arg1.colour;
_local3.font = "Verdana";
_local3.size = _arg1.size;
_local3.align = "right";
_local2.setTextFormat(_local3);
_local2.autoSize = "left";
_local2.visible = _arg1.visible;
return (_local2);
}
}
}//package elements.axis
Section 78
//RadarSpokeLabels (elements.axis.RadarSpokeLabels)
package elements.axis {
import flash.geom.*;
import flash.text.*;
import flash.display.*;
import string.*;
public class RadarSpokeLabels extends Sprite {
private var style:Object;
public var labels:Array;
public function RadarSpokeLabels(_arg1:Object){
var _local2:Array;
var _local4:Object;
super();
this.style = {colour:"#784016"};
if (_arg1 != null){
object_helper.merge_2(_arg1, this.style);
};
this.style.colour = Utils.get_colour(this.style.colour);
this.labels = new Array();
var _local3:Boolean;
if ((((this.style.labels is Array)) && ((this.style.labels.length > 0)))){
for each (_local4 in this.style.labels) {
this.add(_local4, this.style);
};
};
}
public function die():void{
this.style = null;
this.labels = null;
this.graphics.clear();
while (this.numChildren > 0) {
this.removeChildAt(0);
};
}
public function add(_arg1:Object, _arg2:Object):void{
var _local3:Object = {colour:_arg2.colour, text:"", size:11};
if ((_arg1 is String)){
_local3.text = (_arg1 as String);
} else {
object_helper.merge_2(_arg1, _local3);
};
if ((_local3.colour is String)){
_local3.colour = Utils.get_colour(_local3.colour);
};
this.labels.push(_local3.text);
var _local4:TextField = this.make_label(_local3);
this.addChild(_local4);
}
public function resize(_arg1:ScreenCoordsRadar):void{
var _local2:TextField;
var _local4:Boolean;
var _local3:Number = 0;
do {
_local4 = false;
this.resize_2(_arg1);
_local3 = 0;
while (_local3 < this.numChildren) {
_local2 = (this.getChildAt(_local3) as TextField);
if ((((((((_local2.x < _arg1.left)) || ((_local2.y < _arg1.top)))) || (((_local2.y + _local2.height) > _arg1.bottom)))) || (((_local2.x + _local2.width) > _arg1.right)))){
_local4 = true;
};
_local3++;
};
_arg1.reduce_radius();
} while (((_local4) && ((_arg1.get_radius() > 10))));
}
private function resize_2(_arg1:ScreenCoordsRadar):void{
var _local2:Number;
var _local3:TextField;
var _local5:Point;
var _local4:Number = _arg1.get_center_x();
_local2 = 0;
while (_local2 < this.numChildren) {
_local3 = (this.getChildAt(_local2) as TextField);
_local5 = _arg1.get_get_x_from_pos_and_y_from_val(_local2, _arg1.get_max());
if (_local5.x > _local4){
_local3.x = _local5.x;
} else {
_local3.x = (_local5.x - _local3.width);
};
if (_local2 == 0){
_local3.y = (_local5.y - _local3.height);
_local3.x = _local5.x;
} else {
_local3.y = _local5.y;
};
_local2++;
};
}
public function make_label(_arg1:Object):TextField{
var _local2:TextField = new TextField();
_local2.x = 0;
_local2.y = 0;
var _local3:Array = _arg1.text.split("<br>");
var _local4:String = _local3.join("\n");
_local2.text = _local4;
var _local5:TextFormat = new TextFormat();
_local5.color = _arg1.colour;
_local5.font = "Verdana";
_local5.size = _arg1.size;
_local5.align = "right";
_local2.setTextFormat(_local5);
_local2.autoSize = "left";
_local2.visible = true;
return (_local2);
}
}
}//package elements.axis
Section 79
//XAxis (elements.axis.XAxis)
package elements.axis {
import flash.geom.*;
import flash.display.*;
import string.*;
import charts.series.bars.*;
public class XAxis extends Sprite {
private var user_ticks:Boolean;
private var three_d:Boolean;
private var tick_height:Number;
private var colour:Number;
public var offset:Boolean;
private var alt_axis_step:Number;
private var alt_axis_colour:Number;
private var three_d_height:Number;
private var grid_colour:Number;
private var steps:Number;
private var style:Object;
private var user_labels:Array;
private var stroke:Number;
private var grid_visible:Boolean;
public var labels:XAxisLabels;
public function XAxis(_arg1:Object, _arg2:Number, _arg3:Number){
this.style = {stroke:2, tick-height:3, colour:"#784016", offset:true, grid-colour:"#F5E1AA", grid-visible:true, 3d:0, steps:1, min:0, max:null};
if (_arg1 != null){
object_helper.merge_2(_arg1.x_axis, this.style);
};
this.calcSteps();
this.stroke = this.style.stroke;
this.tick_height = this.style["tick-height"];
this.colour = this.style.colour;
this.offset = this.style.offset;
this.grid_visible = this.style["grid-visible"];
this.colour = Utils.get_colour(this.style.colour);
this.grid_colour = Utils.get_colour(this.style["grid-colour"]);
if (style["3d"] > 0){
this.three_d = true;
this.three_d_height = int(this.style["3d"]);
} else {
this.three_d = false;
};
if (_arg1){
if (_arg1.x_label_style != undefined){
if (_arg1.x_label_style.alt_axis_step != undefined){
this.alt_axis_step = _arg1.x_label_style.alt_axis_step;
};
if (_arg1.x_label_style.alt_axis_colour != undefined){
this.alt_axis_colour = Utils.get_colour(_arg1.x_label_style.alt_axis_colour);
};
};
};
this.labels = new XAxisLabels(_arg1);
this.addChild(this.labels);
if (!this.range_set()){
if (this.labels.need_labels){
this.set_range(_arg2, _arg3);
} else {
if (this.labels.count() > _arg3){
this.set_range(0, this.labels.count());
} else {
this.set_range(_arg2, _arg3);
};
};
} else {
this.labels.auto_label(this.get_range(), this.get_steps());
};
this.make_user_ticks();
}
public function first_label_width():Number{
return (this.labels.first_label_width());
}
public function get_steps():Number{
return (this.steps);
}
public function die():void{
this.style = null;
this.graphics.clear();
while (this.numChildren > 0) {
this.removeChildAt(0);
};
if (this.labels != null){
this.labels.die();
};
this.labels = null;
}
private function make_user_ticks():void{
var _local1:Object;
var _local2:Object;
if (((((((!((this.style.labels == null))) && (!((this.style.labels.labels == null))))) && ((this.style.labels.labels is Array)))) && ((this.style.labels.labels.length > 0)))){
this.user_labels = new Array();
for each (_local1 in this.style.labels.labels) {
if (!(_local1 is String)){
if (_local1.x != null){
_local2 = {x:_local1.x};
if (_local1["grid-colour"]){
_local2["grid-colour"] = Utils.get_colour(_local1["grid-colour"]);
} else {
_local2["grid-colour"] = this.grid_colour;
};
this.user_ticks = true;
this.user_labels.push(_local2);
};
};
};
};
}
private function calcSteps():void{
var _local1:Number;
var _local2:Boolean;
if (this.style.max == null){
this.steps = 1;
} else {
_local1 = (this.style.max - this.style.min);
_local2 = (this.style.min >= this.style.max);
this.steps = (((!((this.style.steps == null))) && (!((this.style.steps == 0))))) ? this.style.steps : 1;
if ((Math.abs(_local1) / this.steps) > 250){
this.steps = (_local1 / 250);
};
this.steps = (_local2) ? -(Math.abs(this.steps)) : Math.abs(this.steps);
};
}
public function three_d_axis(_arg1:ScreenCoords):void{
var _local12:Object;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local2:Number = this.three_d_height;
var _local3:Number = 12;
var _local4:Number = (_local2 + _local3);
var _local5:Number = (_arg1.width / this.style.max);
this.graphics.lineStyle(0, 0, 0);
var _local6:Number = 1;
if (this.user_ticks){
for each (_local12 in this.user_labels) {
_local13 = _arg1.get_x_from_val(_local12.x);
this.graphics.beginFill(this.colour, 1);
this.graphics.drawRect(_local13, (_arg1.bottom + _local4), _local6, this.tick_height);
this.graphics.endFill();
};
} else {
_local14 = 0;
while (_local14 < this.style.max) {
_local15 = _arg1.get_x_tick_pos(_local14);
this.graphics.beginFill(this.colour, 1);
this.graphics.drawRect(_local15, (_arg1.bottom + _local4), _local6, this.tick_height);
this.graphics.endFill();
_local14 = (_local14 + this.steps);
};
};
var _local7:Number = Bar3D.Lighten(this.colour);
var _local8:Array = [this.colour, _local7];
var _local9:Array = [100, 100];
var _local10:Array = [0, 0xFF];
var _local11:Matrix = new Matrix();
_local11.createGradientBox(_arg1.width_(), _local3, ((270 / 180) * Math.PI), (_arg1.left - _local3), _arg1.bottom);
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local11, "pad");
this.graphics.moveTo(_arg1.left, _arg1.bottom);
this.graphics.lineTo(_arg1.right, _arg1.bottom);
this.graphics.lineTo((_arg1.right - _local3), (_arg1.bottom + _local3));
this.graphics.lineTo((_arg1.left - _local3), (_arg1.bottom + _local3));
this.graphics.endFill();
_local8 = [this.colour, _local7];
_local9 = [100, 100];
_local10 = [0, 0xFF];
_local11.createGradientBox(_arg1.width_(), _local2, ((270 / 180) * Math.PI), (_arg1.left - _local3), (_arg1.bottom + _local3));
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local11);
this.graphics.moveTo((_arg1.left - _local3), (_arg1.bottom + _local3));
this.graphics.lineTo((_arg1.right - _local3), (_arg1.bottom + _local3));
this.graphics.lineTo((_arg1.right - _local3), ((_arg1.bottom + _local3) + _local2));
this.graphics.lineTo((_arg1.left - _local3), ((_arg1.bottom + _local3) + _local2));
this.graphics.endFill();
_local8 = [this.colour, _local7];
_local9 = [100, 100];
_local10 = [0, 0xFF];
_local11.createGradientBox(_arg1.width_(), _local2, ((225 / 180) * Math.PI), (_arg1.left - _local3), (_arg1.bottom + _local3));
this.graphics.beginGradientFill("linear", _local8, _local9, _local10, _local11);
this.graphics.moveTo(_arg1.right, _arg1.bottom);
this.graphics.lineTo(_arg1.right, (_arg1.bottom + _local2));
this.graphics.lineTo((_arg1.right - _local3), ((_arg1.bottom + _local3) + _local2));
this.graphics.lineTo((_arg1.right - _local3), (_arg1.bottom + _local3));
this.graphics.endFill();
}
public function range_set():Boolean{
return (!((this.style.max == null)));
}
public function last_label_width():Number{
return (this.labels.last_label_width());
}
public function get_range():Range{
return (new Range(this.style.min, this.style.max, this.steps, this.offset));
}
public function set_range(_arg1:Number, _arg2:Number):void{
this.style.min = _arg1;
this.style.max = _arg2;
this.calcSteps();
this.labels.auto_label(this.get_range(), this.get_steps());
}
public function two_d_axis(_arg1:ScreenCoords):void{
var _local4:Object;
var _local5:Number;
var _local6:Number;
var _local2:Number = (_arg1.width / this.style.max);
var _local3:Number = (_arg1.left + (_local2 / 2));
this.graphics.lineStyle(0, 0, 0);
this.graphics.beginFill(this.colour);
this.graphics.drawRect(_arg1.left, _arg1.bottom, _arg1.width, this.stroke);
this.graphics.endFill();
if (this.user_ticks){
for each (_local4 in this.user_labels) {
_local5 = _arg1.get_x_from_val(_local4.x);
this.graphics.beginFill(this.colour, 1);
this.graphics.drawRect((_local5 - (this.stroke / 2)), (_arg1.bottom + this.stroke), this.stroke, this.tick_height);
this.graphics.endFill();
};
} else {
_local6 = this.style.min;
while (_local6 <= this.style.max) {
_local5 = _arg1.get_x_from_val(_local6);
this.graphics.beginFill(this.colour, 1);
this.graphics.drawRect((_local5 - (this.stroke / 2)), (_arg1.bottom + this.stroke), this.stroke, this.tick_height);
this.graphics.endFill();
_local6 = (_local6 + this.steps);
};
};
}
public function get_height():Number{
if (this.three_d){
return ((((this.three_d_height + 12) + this.tick_height) + this.labels.get_height()));
};
return (((this.stroke + this.tick_height) + this.labels.get_height()));
}
public function resize(_arg1:ScreenCoords, _arg2:Number):void{
var _local3:Object;
var _local4:Number;
var _local5:Boolean;
var _local6:Number;
var _local7:Number;
this.graphics.clear();
if (this.user_ticks){
for each (_local3 in this.user_labels) {
this.graphics.beginFill(_local3["grid-colour"], 1);
_local4 = _arg1.get_x_from_val(_local3.x);
this.graphics.drawRect(_local4, _arg1.top, 1, _arg1.height);
this.graphics.endFill();
};
} else {
if (this.grid_visible){
_local5 = (this.style.min >= this.style.max);
_local6 = this.style.max;
_local7 = this.style.min;
while ((_local5) ? (_local7 >= _local6) : (_local7 <= _local6)) {
if ((((this.alt_axis_step > 1)) && (((_local7 % this.alt_axis_step) == 0)))){
this.graphics.beginFill(this.alt_axis_colour, 1);
} else {
this.graphics.beginFill(this.grid_colour, 1);
};
_local4 = _arg1.get_x_from_val(_local7);
this.graphics.drawRect(_local4, _arg1.top, 1, _arg1.height);
this.graphics.endFill();
_local7 = (_local7 + this.steps);
};
};
};
if (this.three_d){
this.three_d_axis(_arg1);
} else {
this.two_d_axis(_arg1);
};
this.labels.resize(_arg1, _arg2);
}
}
}//package elements.axis
Section 80
//XAxisLabels (elements.axis.XAxisLabels)
package elements.axis {
import flash.text.*;
import flash.display.*;
import string.*;
public class XAxisLabels extends Sprite {
public var need_labels:Boolean;
private var userSpecifiedVisible:Object;
private var style:Object;
public var axis_labels:Array;
public static var ArialFont__:Class = XAxisLabels_ArialFont__;
public function XAxisLabels(_arg1:Object){
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Object;
var _local6:Object;
super();
this.need_labels = true;
this.style = {rotate:0, visible:null, labels:null, text:"#val#", steps:null, size:10, align:"auto", colour:"#000000", visible-steps:null};
this.axis_labels = new Array();
if (((!((_arg1.x_axis == null))) && (!((_arg1.x_axis.labels == null))))){
object_helper.merge_2(_arg1.x_axis.labels, this.style);
};
this.userSpecifiedVisible = this.style.visible;
if (this.style.visible == null){
this.style.visible = true;
};
if ((this.style.rotate is String)){
if (this.style.rotate == "vertical"){
this.style.rotate = 270;
} else {
if (this.style.rotate == "diagonal"){
this.style.rotate = -45;
};
};
};
this.style.colour = Utils.get_colour(this.style.colour);
if ((((this.style.labels is Array)) && ((this.style.labels.length > 0)))){
this.need_labels = false;
if (this.style.steps == null){
this.style.steps = 1;
};
_local2 = 0;
_local3 = 0;
_local4 = ((this.style["visible-steps"])==null) ? this.style.steps : this.style["visible-steps"];
for each (_local5 in this.style.labels) {
_local6 = {};
object_helper.merge_2(this.style, _local6);
_local6.visible = ((_local3 % _local4) == 0);
_local6.x = _local2;
this.add(_local5, _local6);
_local2++;
_local3++;
};
};
}
public function die():void{
this.axis_labels = null;
this.style = null;
this.graphics.clear();
while (this.numChildren > 0) {
this.removeChildAt(0);
};
}
public function make_label(_arg1:Object):TextField{
var _local2:AxisLabel = new AxisLabel();
_local2.x = 0;
_local2.y = 0;
_local2.text = _arg1.text;
var _local3:TextFormat = new TextFormat();
_local3.color = _arg1.colour;
if (_arg1.rotate != 0){
_local3.font = "spArial";
_local2.embedFonts = true;
} else {
_local3.font = "Verdana";
};
_local3.size = _arg1.size;
_local3.align = "left";
_local2.setTextFormat(_local3);
_local2.autoSize = "left";
_local2.rotate_and_align(_arg1.rotate, _arg1.align, this);
_local2.visible = _arg1.visible;
if (_arg1.x != null){
_local2.xVal = _arg1.x;
};
return (_local2);
}
public function auto_label(_arg1:Range, _arg2:Number):void{
var _local3:Boolean;
var _local4:Number;
var _local5:Number;
var _local6:Object;
var _local7:Number;
var _local8:Number;
if (this.need_labels){
_local3 = (_arg1.min >= _arg1.max);
_local4 = 1;
if (this.style.steps != null){
_local4 = this.style.steps;
};
if (Math.abs((_arg1.count() / _local4)) > 250){
_local4 = (_arg1.count() / 250);
};
_local4 = (_local3) ? -(Math.abs(_local4)) : Math.abs(_local4);
_local5 = ((this.style["visible-steps"])==null) ? _arg2 : this.style["visible-steps"];
_local6 = {};
object_helper.merge_2(this.style, _local6);
_local7 = 0;
_local8 = _arg1.min;
while ((_local3) ? (_local8 >= _arg1.max) : (_local8 <= _arg1.max)) {
_local6.x = _local8;
if (this.userSpecifiedVisible == null){
_local6.visible = ((_local7 % _local5) == 0);
_local7++;
} else {
_local6.visible = this.userSpecifiedVisible;
};
this.add(null, _local6);
_local8 = (_local8 + _local4);
};
};
}
public function first_label_width():Number{
if (this.numChildren > 0){
return ((AxisLabel(this.getChildAt(0)).leftOverhang * 2));
};
return (0);
}
public function count():Number{
return ((this.axis_labels.length - 1));
}
public function last_label_width():Number{
if (this.numChildren > 0){
return ((AxisLabel(this.getChildAt((this.numChildren - 1))).rightOverhang * 2));
};
return (0);
}
public function resize(_arg1:ScreenCoords, _arg2:Number):void{
var _local5:AxisLabel;
this.graphics.clear();
var _local3:Number = 0;
var _local4:Number = 0;
while (_local4 < this.numChildren) {
_local5 = (this.getChildAt(_local4) as AxisLabel);
if (isNaN(_local5.xVal)){
_local5.x = (_arg1.get_x_tick_pos(_local4) + _local5.xAdj);
} else {
_local5.x = (_arg1.get_x_from_val(_local5.xVal) + _local5.xAdj);
};
_local5.y = (_arg2 + _local5.yAdj);
_local4++;
};
}
public function get(_arg1:Number):String{
if (_arg1 < this.axis_labels.length){
return (this.axis_labels[_arg1]);
};
return ("");
}
public function get_height():Number{
var _local3:DisplayObject;
var _local1:Number = 0;
var _local2:Number = 0;
while (_local2 < this.numChildren) {
_local3 = this.getChildAt(_local2);
_local1 = Math.max(_local1, _local3.height);
_local2++;
};
return (_local1);
}
public function add(_arg1:Object, _arg2:Object):void{
var _local5:TextField;
var _local3:Object = {colour:_arg2.colour, text:_arg2.text, rotate:_arg2.rotate, size:_arg2.size, align:_arg2.align, visible:_arg2.visible, x:_arg2.x};
if ((_arg1 is String)){
_local3.text = (_arg1 as String);
} else {
object_helper.merge_2(_arg1, _local3);
};
if (_local3.x != null){
_local3.text = this.replace_magic_values(_local3.text, _local3.x);
};
var _local4:Array = _local3.text.split("<br>");
_local3.text = _local4.join("\n");
this.axis_labels[_local3.x] = _local3.text;
if (_local3.visible){
if ((_local3.colour is String)){
_local3.colour = Utils.get_colour(_local3.colour);
};
_local5 = this.make_label(_local3);
this.addChild(_local5);
};
}
private function replace_magic_values(_arg1:String, _arg2:Number):String{
_arg1 = _arg1.replace("#val#", NumberUtils.formatNumber(_arg2));
_arg1 = DateUtils.replace_magic_values(_arg1, _arg2);
return (_arg1);
}
}
}//package elements.axis
Section 81
//XAxisLabels_ArialFont__ (elements.axis.XAxisLabels_ArialFont__)
package elements.axis {
import mx.core.*;
public class XAxisLabels_ArialFont__ extends FontAsset {
}
}//package elements.axis
Section 82
//YAxisBase (elements.axis.YAxisBase)
package elements.axis {
import flash.display.*;
import string.*;
public class YAxisBase extends Sprite {
private var user_ticks:Boolean;
protected var colour:Number;
protected var tick_length:Number;
protected var grid_colour:Number;
public var style:Object;
protected var stroke:Number;
private var user_labels:Array;
protected var labels:YAxisLabelsBase;
public function die():void{
this.style = null;
if (this.labels != null){
this.labels.die();
};
this.labels = null;
this.graphics.clear();
while (this.numChildren > 0) {
this.removeChildAt(0);
};
}
public function set_y_max(_arg1:Number):void{
this.style.max = _arg1;
}
private function get_steps(_arg1:Number, _arg2:Number, _arg3:Number):Number{
if (this.style.steps == 0){
this.style.steps = 1;
};
if (this.style.steps < 0){
this.style.steps = (this.style.steps * -1);
};
var _local4:Number = ((_arg2 - _arg1) / this.style.steps);
if (_local4 > (_arg3 / 2)){
return (((_arg2 - _arg1) / 5));
};
return (this.style.steps);
}
public function get_style():Object{
return (null);
}
public function get_range():Range{
return (new Range(this.style.min, this.style.max, this.style.steps, this.style.offset));
}
public function init(_arg1:Object):void{
}
protected function resize_helper(_arg1:Number, _arg2:ScreenCoords, _arg3:Boolean):void{
var _local5:Number;
var _local6:Number;
var _local7:Object;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local4:Number = 0;
var _local8:Number = Math.min(this.style.min, this.style.max);
var _local9:Number = Math.max(this.style.min, this.style.max);
if (!_arg3){
this.labels.resize(_arg1, _arg2);
} else {
this.labels.resize(((_arg2.right + this.stroke) + this.tick_length), _arg2);
};
if (!this.style.visible){
return;
};
this.graphics.clear();
this.graphics.lineStyle(0, 0, 0);
if (this.style["grid-visible"]){
this.draw_grid_lines(this.style.steps, _local8, _local9, _arg3, _arg2);
};
if (!_arg3){
_local10 = (_arg2.left - this.stroke);
} else {
_local10 = _arg2.right;
};
this.graphics.beginFill(this.colour, 1);
this.graphics.drawRect(int(_local10), _arg2.top, this.stroke, _arg2.height);
this.graphics.endFill();
if (this.user_ticks){
for each (_local7 in this.user_labels) {
_local6 = _arg2.get_y_from_val(_local7.y, _arg3);
if (!_arg3){
_local12 = ((_arg2.left - this.stroke) - this.tick_length);
} else {
_local12 = (_arg2.right + this.stroke);
};
this.graphics.beginFill(this.colour, 1);
this.graphics.drawRect(_local12, (_local6 - (this.stroke / 2)), this.tick_length, this.stroke);
this.graphics.endFill();
};
} else {
_local5 = _local8;
while (_local5 <= _local9) {
_local6 = _arg2.get_y_from_val(_local5, _arg3);
if (!_arg3){
_local12 = ((_arg2.left - this.stroke) - this.tick_length);
} else {
_local12 = (_arg2.right + this.stroke);
};
this.graphics.beginFill(this.colour, 1);
this.graphics.drawRect(_local12, (_local6 - (this.stroke / 2)), this.tick_length, this.stroke);
this.graphics.endFill();
_local5 = (_local5 + this.style.steps);
};
};
}
public function get_width():Number{
return (((this.stroke + this.tick_length) + this.labels.width));
}
private function draw_grid_lines(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Boolean, _arg5:ScreenCoords):void{
var _local6:Number;
var _local7:Object;
var _local8:Number;
if (this.user_ticks){
for each (_local7 in this.user_labels) {
_local6 = _arg5.get_y_from_val(_local7.y, _arg4);
this.graphics.beginFill(_local7["grid-colour"], 1);
this.graphics.drawRect(_arg5.left, _local6, _arg5.width, 1);
this.graphics.endFill();
};
} else {
_arg3 = (_arg3 + 4E-6);
_local8 = _arg2;
while (_local8 <= _arg3) {
_local6 = _arg5.get_y_from_val(_local8, _arg4);
this.graphics.beginFill(this.grid_colour, 1);
this.graphics.drawRect(int(_arg5.left), int(_local6), _arg5.width, 1);
this.graphics.endFill();
_local8 = (_local8 + _arg1);
};
};
}
public function auto_range(_arg1:Number):Number{
var _local2:Number = (Math.max(_arg1) * 1.07);
var _local3:Number = Math.round((Math.log(_local2) / Math.log(10)));
var _local4:Number = (Math.pow(10, _local3) / 2);
_local2 = (Math.round(((_local2 * 1.1) / _local4)) * _local4);
return (_local2);
}
protected function _init(_arg1:Object, _arg2:String, _arg3:Object):void{
var _local6:Object;
var _local7:Object;
tr.aces("YAxisBase.init() stage", this.stage.stageHeight);
this.style = _arg3;
if (_arg1[_arg2]){
object_helper.merge_2(_arg1[_arg2], this.style);
};
this.colour = Utils.get_colour(_arg3.colour);
this.grid_colour = Utils.get_colour(_arg3["grid-colour"]);
this.stroke = _arg3.stroke;
this.tick_length = _arg3["tick-length"];
tr.aces("YAxisBase auto", this.auto_range(50001));
if (this.style.max == null){
this.style.max = this.labels.y_max;
};
var _local4:Number = Math.min(this.style.min, this.style.max);
var _local5:Number = Math.max(this.style.min, this.style.max);
this.style.steps = this.get_steps(_local4, _local5, this.stage.stageHeight);
if (this.labels.i_need_labels){
this.labels.make_labels(_local4, _local5, this.style.steps);
};
if (((((((!((this.style.labels == null))) && (!((this.style.labels.labels == null))))) && ((this.style.labels.labels is Array)))) && ((this.style.labels.labels.length > 0)))){
this.user_labels = new Array();
for each (_local6 in this.style.labels.labels) {
if (!(_local6 is String)){
if (_local6.y != null){
_local7 = {y:_local6.y};
if (_local6["grid-colour"]){
_local7["grid-colour"] = Utils.get_colour(_local6["grid-colour"]);
} else {
_local7["grid-colour"] = this.grid_colour;
};
this.user_ticks = true;
this.user_labels.push(_local7);
};
};
};
};
}
public function resize(_arg1:Number, _arg2:ScreenCoords):void{
}
}
}//package elements.axis
Section 83
//YAxisLabelsBase (elements.axis.YAxisLabelsBase)
package elements.axis {
import flash.text.*;
import flash.display.*;
import string.*;
public class YAxisLabelsBase extends Sprite {
protected var lblText:String;
private var steps:Number;
private var right:Boolean;
protected var style:Object;
public var i_need_labels:Boolean;
public var y_max:Number;
public function YAxisLabelsBase(_arg1:Object, _arg2:String){
var _local3:Number;
var _local4:String;
var _local5:Array;
var _local6:Number;
var _local8:Number;
var _local9:Number;
var _local10:Object;
var _local11:Object;
super();
this.y_max = 10;
if (_arg1[_arg2]){
if ((_arg1[_arg2].labels is Array)){
_local5 = [];
_local3 = (((_arg1[_arg2]) && (_arg1[_arg2].min))) ? _arg1[_arg2].min : 0;
for each (_local4 in _arg1[_arg2].labels) {
_local5.push({val:_local4, pos:_local3});
_local3++;
};
this.y_max = (((_arg1[_arg2]) && (_arg1[_arg2].max))) ? _arg1[_arg2].max : (_local5.length - 1);
this.i_need_labels = false;
};
};
if (_arg1[_arg2]){
if ((_arg1[_arg2].labels is Object)){
if ((_arg1[_arg2].labels.text is String)){
this.lblText = _arg1[_arg2].labels.text;
};
_local8 = 1;
if ((_arg1[_arg2].steps is Number)){
_local8 = _arg1[_arg2].steps;
};
if ((_arg1[_arg2].labels.steps is Number)){
_local8 = _arg1[_arg2].labels.steps;
};
if ((_arg1[_arg2].labels.labels is Array)){
_local5 = [];
_local9 = (((_arg1[_arg2]) && (_arg1[_arg2].min))) ? _arg1[_arg2].min : 0;
for each (_local10 in _arg1[_arg2].labels.labels) {
if ((_local10 is Number)){
_local5.push({val:lblText, pos:_local10});
} else {
if ((_local10 is String)){
_local5.push({val:_local10, pos:_local9, visible:((_local9 % _local8) == 0)});
} else {
if ((_local10.y is Number)){
_local4 = ((_local10.text is String)) ? _local10.text : lblText;
_local11 = {val:_local4, pos:_local10.y};
if (_local10.colour != null){
_local11.colour = _local10.colour;
};
if (_local10.size != null){
_local11.size = _local10.size;
};
if (_local10.rotate != null){
_local11.rotate = _local10.rotate;
};
_local5.push(_local11);
};
};
};
_local9++;
};
this.i_need_labels = false;
};
};
};
this.steps = _local6;
var _local7:YLabelStyle = new YLabelStyle(_arg1, name);
this.style = _local7.style;
if (((!(_arg1[_arg2])) && (!((_arg2 == "y_axis"))))){
this.style.show_labels = false;
};
if (((_arg1[_arg2]) && (_arg1[_arg2].rotate))){
this.style.rotate = _arg1[_arg2].rotate;
};
if (((!((_arg1[_arg2] == null))) && (!((_arg1[_arg2].labels == null))))){
object_helper.merge_2(_arg1[_arg2].labels, this.style);
};
this.add_labels(_local5);
}
public function die():void{
while (this.numChildren > 0) {
this.removeChildAt(0);
};
}
private function make_label(_arg1:Object):YTextField{
_arg1.colour = Utils.get_colour(_arg1.colour);
var _local2:YTextField = new YTextField();
_local2.text = this.replace_magic_values(_arg1.val, _arg1.pos);
var _local3:TextFormat = new TextFormat();
_local3.color = _arg1.colour;
_local3.font = ((_arg1.rotate == "vertical")) ? "spArial" : "Verdana";
_local3.size = _arg1.size;
_local3.align = "right";
_local2.setTextFormat(_local3);
_local2.autoSize = "right";
if (_arg1.rotate == "vertical"){
_local2.rotation = 270;
_local2.embedFonts = true;
_local2.antiAliasType = AntiAliasType.ADVANCED;
};
return (_local2);
}
public function get_width():Number{
var _local3:YTextField;
var _local1:Number = 0;
var _local2:Number = 0;
while (_local2 < this.numChildren) {
_local3 = (this.getChildAt(_local2) as YTextField);
_local1 = Math.max(_local1, _local3.width);
_local2++;
};
return (_local1);
}
protected function make_labels_(_arg1:Number, _arg2:Number, _arg3:Boolean, _arg4:Number, _arg5:String):void{
var _local6:Array = [];
var _local7:Number = Math.min(_arg1, _arg2);
var _local8:Number = Math.max(_arg1, _arg2);
_local8 = (_local8 + 4E-6);
var _local9:Number = 0;
var _local10:Number = _local7;
while (_local10 <= _local8) {
_local6.push({val:_arg5, pos:_local10});
var _temp1 = _local9;
_local9 = (_local9 + 1);
if (_temp1 > 250){
break;
};
_local10 = (_local10 + _arg4);
};
this.add_labels(_local6);
}
public function make_labels(_arg1:Number, _arg2:Number, _arg3:Number):void{
tr.aces("make_labels", this.i_need_labels, _arg1, _arg2, false, _arg3, this.lblText);
tr.aces(this.style.show_labels);
if (!this.i_need_labels){
return;
};
this.i_need_labels = false;
this.make_labels_(_arg1, _arg2, false, _arg3, this.lblText);
}
public function resize(_arg1:Number, _arg2:ScreenCoords):void{
}
private function add_labels(_arg1:Array):void{
var _local3:Object;
var _local4:Object;
var _local5:YTextField;
if (!this.style.show_labels){
return;
};
var _local2:Number = 0;
for each (_local3 in _arg1) {
_local4 = {};
object_helper.merge_2(this.style, _local4);
object_helper.merge_2(_local3, _local4);
if (_local4.visible){
_local5 = this.make_label(_local4);
_local5.y_val = _local3.pos;
this.addChild(_local5);
_local2++;
};
};
}
private function replace_magic_values(_arg1:String, _arg2:Number):String{
_arg1 = _arg1.replace("#val#", NumberUtils.formatNumber(_arg2));
return (_arg1);
}
}
}//package elements.axis
Section 84
//YAxisLabelsLeft (elements.axis.YAxisLabelsLeft)
package elements.axis {
public class YAxisLabelsLeft extends YAxisLabelsBase {
public function YAxisLabelsLeft(_arg1:Object){
this.lblText = "#val#";
this.i_need_labels = true;
super(_arg1, "y_axis");
}
override public function resize(_arg1:Number, _arg2:ScreenCoords):void{
var _local4:Number;
var _local5:YTextField;
var _local3:Number = this.get_width();
_local4 = 0;
while (_local4 < this.numChildren) {
_local5 = (this.getChildAt(_local4) as YTextField);
_local5.x = ((_arg1 - _local5.width) + _local3);
_local4++;
};
_local4 = 0;
while (_local4 < this.numChildren) {
_local5 = (this.getChildAt(_local4) as YTextField);
if (_local5.rotation != 0){
_local5.y = (_arg2.get_y_from_val(_local5.y_val, false) + (_local5.height / 2));
} else {
_local5.y = (_arg2.get_y_from_val(_local5.y_val, false) - (_local5.height / 2));
};
if ((((_local5.y < 0)) && ((_arg2.top == 0)))){
_local5.y = ((_local5.rotation)!=0) ? _local5.height : (_local5.textHeight - _local5.height);
};
_local4++;
};
}
}
}//package elements.axis
Section 85
//YAxisLabelsRight (elements.axis.YAxisLabelsRight)
package elements.axis {
public class YAxisLabelsRight extends YAxisLabelsBase {
public function YAxisLabelsRight(_arg1:Object){
this.lblText = "#val#";
this.i_need_labels = true;
super(_arg1, "y_axis_right");
}
override public function resize(_arg1:Number, _arg2:ScreenCoords):void{
var _local4:Number;
var _local5:YTextField;
var _local3:Number = this.get_width();
_local4 = 0;
while (_local4 < this.numChildren) {
_local5 = (this.getChildAt(_local4) as YTextField);
_local5.x = _arg1;
_local4++;
};
_local4 = 0;
while (_local4 < this.numChildren) {
_local5 = (this.getChildAt(_local4) as YTextField);
if (_local5.rotation != 0){
_local5.y = (_arg2.get_y_from_val(_local5.y_val, true) + (_local5.height / 2));
} else {
_local5.y = (_arg2.get_y_from_val(_local5.y_val, true) - (_local5.height / 2));
};
if ((((_local5.y < 0)) && ((_arg2.top == 0)))){
_local5.y = ((_local5.rotation)!=0) ? _local5.height : (_local5.textHeight - _local5.height);
};
_local4++;
};
}
}
}//package elements.axis
Section 86
//YAxisLeft (elements.axis.YAxisLeft)
package elements.axis {
public class YAxisLeft extends YAxisBase {
override public function init(_arg1:Object):void{
this.labels = new YAxisLabelsLeft(_arg1);
this.addChild(this.labels);
var _local2:Object = {stroke:2, tick-length:3, colour:"#784016", offset:false, grid-colour:"#F5E1AA", grid-visible:true, 3d:0, steps:1, visible:true, min:0, max:null};
super._init(_arg1, "y_axis", _local2);
}
override public function resize(_arg1:Number, _arg2:ScreenCoords):void{
super.resize_helper(_arg1, _arg2, false);
}
}
}//package elements.axis
Section 87
//YAxisRight (elements.axis.YAxisRight)
package elements.axis {
public class YAxisRight extends YAxisBase {
override public function init(_arg1:Object):void{
this.labels = new YAxisLabelsRight(_arg1);
this.addChild(this.labels);
var _local2:Object = {stroke:2, tick-length:3, colour:"#784016", offset:false, grid-colour:"#F5E1AA", grid-visible:false, 3d:0, steps:1, visible:false, min:0, max:10};
if (_arg1.y_axis_right){
_local2.visible = true;
};
super._init(_arg1, "y_axis_right", _local2);
}
override public function resize(_arg1:Number, _arg2:ScreenCoords):void{
super.resize_helper(_arg1, _arg2, true);
}
}
}//package elements.axis
Section 88
//YLabelStyle (elements.axis.YLabelStyle)
package elements.axis {
import string.*;
public class YLabelStyle {
public var style:Object;
public function YLabelStyle(_arg1:Object, _arg2:String){
var _local3:Number;
var _local4:Number;
var _local5:Array;
super();
this.style = {size:10, colour:0, show_labels:true, visible:true};
if (_arg1[(_arg2 + "_label_style")] == undefined){
return;
};
_local3 = _arg1[(_arg2 + "_label_style")].lastIndexOf(",");
if (_local3 < 0){
_local4 = _arg1[(_arg2 + "_label_style")].lastIndexOf("none", 0);
if (_local4 > -1){
this.style.show_labels = false;
};
} else {
_local5 = _arg1[(_arg2 + "_label_style")].split(",");
if (_local5.length > 0){
this.style.size = _local5[0];
};
if (_local5.length > 1){
this.style.colour = Utils.get_colour(_local5[1]);
};
};
}
}
}//package elements.axis
Section 89
//YTextField (elements.axis.YTextField)
package elements.axis {
import flash.text.*;
public class YTextField extends TextField {
public var y_val:Number;
public function YTextField(){
this.y_val = 0;
}
}
}//package elements.axis
Section 90
//BaseLabel (elements.labels.BaseLabel)
package elements.labels {
import flash.text.*;
import flash.display.*;
import string.*;
public class BaseLabel extends Sprite {
public var style:String;
protected var css:Css;
protected var _height:Number;
public var text:String;
public function die():void{
this.graphics.clear();
while (this.numChildren > 0) {
this.removeChildAt(0);
};
}
public function get_width():Number{
return (this.getChildAt(0).width);
}
protected function build(_arg1:String):void{
var _local2:TextField = new TextField();
_local2.x = 0;
_local2.y = 0;
this.text = _arg1;
_local2.htmlText = this.text;
var _local3:TextFormat = new TextFormat();
_local3.color = this.css.color;
_local3.font = (this.css.font_family) ? this.css.font_family : "Verdana";
_local3.bold = ((this.css.font_weight == "bold")) ? true : false;
_local3.size = this.css.font_size;
_local3.align = "center";
_local2.setTextFormat(_local3);
_local2.autoSize = "left";
_local2.y = (this.css.padding_top + this.css.margin_top);
_local2.x = (this.css.padding_left + this.css.margin_left);
if (this.css.background_colour_set){
this.graphics.beginFill(this.css.background_colour, 1);
this.graphics.drawRect(0, 0, ((this.css.padding_left + _local2.width) + this.css.padding_right), ((this.css.padding_top + _local2.height) + this.css.padding_bottom));
this.graphics.endFill();
};
this.addChild(_local2);
}
}
}//package elements.labels
Section 91
//Keys (elements.labels.Keys)
package elements.labels {
import charts.*;
import flash.text.*;
import flash.display.*;
public class Keys extends Sprite {
private var _height:Number;// = 0
public var colours:Array;
private var count:Number;// = 0
public function Keys(_arg1:ObjectCollection){
var _local3:Base;
var _local4:Object;
super();
this.colours = new Array();
var _local2:Number = 0;
for each (_local3 in _arg1.sets) {
for each (_local4 in _local3.get_keys()) {
this.make_key(_local4.text, _local4["font-size"], _local4.colour);
this.colours.push(_local4.colour);
_local2++;
};
};
this.count = _local2;
}
public function get_height():Number{
return (this._height);
}
private function draw_line(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg2 = (_arg2 + (_arg3 / 2));
this.graphics.beginFill(_arg4, 100);
this.graphics.drawRect(_arg1, (_arg2 - 1), 10, 2);
this.graphics.endFill();
return ((_arg1 + 12));
}
public function resize(_arg1:Number, _arg2:Number):void{
var _local5:Number;
if (this.count == 0){
return;
};
this.x = _arg1;
this.y = _arg2;
var _local3:Number = 0;
_arg1 = 0;
_arg2 = 0;
this.graphics.clear();
var _local4:Number = 0;
while (_local4 < this.numChildren) {
_local5 = this.getChildAt(_local4).width;
if ((((this.x + _arg1) + _local5) + 12) > this.stage.stageWidth){
_arg1 = 0;
_arg2 = (_arg2 + this.getChildAt(_local4).height);
_local3 = (_local3 + this.getChildAt(_local4).height);
};
this.draw_line(_arg1, _arg2, this.getChildAt(_local4).height, this.colours[_local4]);
_arg1 = (_arg1 + 12);
this.getChildAt(_local4).x = _arg1;
this.getChildAt(_local4).y = _arg2;
_arg1 = (_arg1 + (_local5 + 10));
_local4++;
};
_local3 = (_local3 + this.getChildAt(0).height);
this._height = _local3;
}
public function die():void{
this.colours = null;
this.graphics.clear();
while (this.numChildren > 0) {
this.removeChildAt(0);
};
}
private function make_key(_arg1:String, _arg2:Number, _arg3:Number):void{
var _local4:TextField = new TextField();
_local4.text = _arg1;
var _local5:TextFormat = new TextFormat();
_local5.color = _arg3;
_local5.font = "Verdana";
_local5.size = _arg2;
_local5.align = "left";
_local4.setTextFormat(_local5);
_local4.autoSize = "left";
this.addChild(_local4);
}
}
}//package elements.labels
Section 92
//Title (elements.labels.Title)
package elements.labels {
import string.*;
public class Title extends BaseLabel {
public var size:Number;
private var top_padding:Number;// = 0
public var colour:Number;
public function Title(_arg1:Object){
if (!_arg1){
return;
};
this.style = "font-size: 12px";
object_helper.merge_2(_arg1, this);
this.css = new Css(this.style);
this.build(this.text);
}
public function get_height():Number{
if (this.text == null){
return (0);
};
return (((((this.css.padding_top + this.css.margin_top) + this.getChildAt(0).height) + this.css.padding_bottom) + this.css.margin_bottom));
}
public function resize():void{
if (this.text == null){
return;
};
this.getChildAt(0).width = this.stage.stageWidth;
var _local1:String = this.css.text_align;
switch (_local1){
case "left":
this.x = this.css.margin_left;
break;
case "right":
this.x = (this.stage.stageWidth - (this.get_width() + this.css.margin_right));
break;
case "center":
default:
this.x = ((this.stage.stageWidth / 2) - (this.get_width() / 2));
break;
};
this.y = this.css.margin_top;
}
}
}//package elements.labels
Section 93
//XLegend (elements.labels.XLegend)
package elements.labels {
import string.*;
public class XLegend extends BaseLabel {
public function XLegend(_arg1:Object){
if (!_arg1){
return;
};
object_helper.merge_2(_arg1, this);
this.css = new Css(this.style);
this.build(this.text);
}
public function get_height():Number{
return (this.height);
}
public function resize(_arg1:ScreenCoords):void{
if (this.text == null){
return;
};
this.x = (_arg1.left + ((_arg1.width / 2) - (this.get_width() / 2)));
this.getChildAt(0).y = (this.stage.stageHeight - this.getChildAt(0).height);
}
}
}//package elements.labels
Section 94
//YLegendBase (elements.labels.YLegendBase)
package elements.labels {
import flash.text.*;
import flash.display.*;
import string.*;
public class YLegendBase extends Sprite {
private var css:Css;
public var text:String;
public var style:String;
public var tf:TextField;
public static var ArialFont:Class = YLegendBase_ArialFont;
public function YLegendBase(_arg1:Object, _arg2:String){
if (_arg1[(_arg2 + "_legend")] == undefined){
return;
};
if (_arg1[(_arg2 + "_legend")]){
object_helper.merge_2(_arg1[(_arg2 + "_legend")], this);
};
this.css = new Css(this.style);
this.build(this.text);
}
public function die():void{
while (this.numChildren > 0) {
this.removeChildAt(0);
};
}
private function build(_arg1:String):void{
var _local2:TextField = new TextField();
_local2.x = 0;
_local2.y = 0;
var _local3:TextFormat = new TextFormat();
_local3.color = this.css.color;
_local3.font = "spArial";
_local3.size = this.css.font_size;
_local3.align = "center";
_local2.htmlText = _arg1;
_local2.setTextFormat(_local3);
_local2.autoSize = "left";
_local2.embedFonts = true;
_local2.rotation = 270;
_local2.height = _local2.textHeight;
_local2.antiAliasType = AntiAliasType.ADVANCED;
_local2.autoSize = TextFieldAutoSize.LEFT;
this.addChild(_local2);
}
public function resize():void{
if (this.text == null){
return;
};
}
public function get_width():Number{
if (this.numChildren == 0){
return (0);
};
return (this.getChildAt(0).width);
}
}
}//package elements.labels
Section 95
//YLegendBase_ArialFont (elements.labels.YLegendBase_ArialFont)
package elements.labels {
import mx.core.*;
public class YLegendBase_ArialFont extends FontAsset {
}
}//package elements.labels
Section 96
//YLegendLeft (elements.labels.YLegendLeft)
package elements.labels {
public class YLegendLeft extends YLegendBase {
public function YLegendLeft(_arg1:Object){
super(_arg1, "y");
}
override public function resize():void{
if (this.numChildren == 0){
return;
};
this.y = ((this.stage.stageHeight / 2) + (this.getChildAt(0).height / 2));
this.x = 0;
}
}
}//package elements.labels
Section 97
//YLegendRight (elements.labels.YLegendRight)
package elements.labels {
public class YLegendRight extends YLegendBase {
public function YLegendRight(_arg1:Object){
super(_arg1, "y2");
}
override public function resize():void{
if (this.numChildren == 0){
return;
};
this.y = ((this.stage.stageHeight / 2) + (this.getChildAt(0).height / 2));
this.x = (this.stage.stageWidth - this.getChildAt(0).width);
}
}
}//package elements.labels
Section 98
//CameraIcon (elements.menu.CameraIcon)
package elements.menu {
import flash.display.*;
public class CameraIcon extends menuItem {
public function CameraIcon(_arg1:String, _arg2:Properties){
super(_arg1, _arg2);
}
private function draw_camera():void{
var _local1:Sprite = new Sprite();
_local1.graphics.beginFill(0x505050);
_local1.graphics.drawRoundRect(2, 4, 26, 14, 2, 2);
_local1.graphics.drawRect(20, 1, 5, 3);
_local1.graphics.endFill();
_local1.graphics.beginFill(0x202020);
_local1.graphics.drawCircle(9, 11, 4.5);
_local1.graphics.endFill();
this.addChild(_local1);
}
override protected function add_elements():Number{
this.draw_camera();
var _local1:Number = this.add_text(this.props.get("text"), 35);
return ((_local1 + 30));
}
}
}//package elements.menu
Section 99
//DefaultCameraIconProperties (elements.menu.DefaultCameraIconProperties)
package elements.menu {
public class DefaultCameraIconProperties extends Properties {
public function DefaultCameraIconProperties(_arg1:Object){
var _local2:Properties = new Properties({colour:"#0000E0", text:"Save chart", javascript-function:"save_image", background-colour:"#ffffff", glow-colour:"#148DCF", text-colour:"#0000ff"});
super(_arg1, _local2);
}
}
}//package elements.menu
Section 100
//DefaultMenuProperties (elements.menu.DefaultMenuProperties)
package elements.menu {
public class DefaultMenuProperties extends Properties {
public function DefaultMenuProperties(_arg1:Object){
var _local2:Properties = new Properties({colour:"#E0E0E0", outline-colour:"#707070", camera-text:"Save chart"});
super(_arg1, _local2);
}
}
}//package elements.menu
Section 101
//Menu (elements.menu.Menu)
package elements.menu {
import flash.events.*;
import flash.display.*;
import caurina.transitions.*;
import string.*;
public class Menu extends Sprite {
private var original_alpha:Number;
private var first_showing:Boolean;
private var props:Properties;
private var hidden_pos:Number;
public function Menu(_arg1:String, _arg2:Object){
var _local5:Object;
var _local6:Number;
var _local7:Number;
var _local8:DefaultCameraIconProperties;
var _local9:menuItem;
super();
this.props = new DefaultMenuProperties(_arg2);
this.original_alpha = 0.4;
this.alpha = 1;
var _local3:Number = 5;
var _local4:Number = 0;
this.first_showing = true;
for each (_local5 in _arg2.values) {
_local8 = new DefaultCameraIconProperties(_local5);
_local9 = menu_item_factory.make(_arg1, _local8);
_local9.x = 5;
_local9.y = _local3;
this.addChild(_local9);
_local4 = ((_local9.y + _local9.height) + 5);
_local3 = (_local3 + (_local9.height + 5));
};
_local6 = 0;
_local7 = 0;
while (_local7 < this.numChildren) {
_local6 = Math.max(_local6, this.getChildAt(_local7).width);
_local7++;
};
this.draw((_local6 + 10), _local4);
this.hidden_pos = _local4;
this.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
this.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
}
public function mouseOutHandler(_arg1:MouseEvent):void{
this.hide_menu();
}
private function draw(_arg1:Number, _arg2:Number):void{
this.graphics.clear();
var _local3:Number = Utils.get_colour(this.props.get("colour"));
var _local4:Number = Utils.get_colour(this.props.get("outline-colour"));
this.graphics.lineStyle(1, _local4);
this.graphics.beginFill(_local3, 1);
this.graphics.moveTo(0, -2);
this.graphics.lineTo(0, _arg2);
this.graphics.lineTo((_arg1 - 25), _arg2);
this.graphics.lineTo((_arg1 - 20), (_arg2 + 10));
this.graphics.lineTo(_arg1, (_arg2 + 10));
this.graphics.lineTo(_arg1, -2);
this.graphics.endFill();
this.graphics.lineStyle(1, _local4);
this.graphics.moveTo((_arg1 - 15), (_arg2 + 3));
this.graphics.lineTo((_arg1 - 10), (_arg2 + 8));
this.graphics.lineTo((_arg1 - 5), (_arg2 + 3));
this.graphics.moveTo((_arg1 - 15), _arg2);
this.graphics.lineTo((_arg1 - 10), (_arg2 + 5));
this.graphics.lineTo((_arg1 - 5), _arg2);
}
public function mouseOverHandler(_arg1:MouseEvent):void{
Tweener.removeTweens(this);
Tweener.addTween(this, {y:0, time:0.4, transition:Equations.easeOutBounce});
Tweener.addTween(this, {alpha:1, time:0.4, transition:Equations.easeOutBounce});
}
public function resize():void{
if (this.first_showing){
this.y = 0;
this.first_showing = false;
Tweener.removeTweens(this);
Tweener.addTween(this, {time:3, onComplete:this.hide_menu});
} else {
this.y = (-(this.height) + 10);
};
this.x = ((this.stage.stageWidth - this.width) - 5);
}
private function hide_menu():void{
Tweener.removeTweens(this);
Tweener.addTween(this, {y:-(this.hidden_pos), time:0.4, transition:Equations.easeOutBounce});
Tweener.addTween(this, {alpha:this.original_alpha, time:0.4, transition:Equations.easeOutBounce});
}
}
}//package elements.menu
Section 102
//menu_item_factory (elements.menu.menu_item_factory)
package elements.menu {
public class menu_item_factory {
public static function make(_arg1:String, _arg2:Properties):menuItem{
switch (_arg2.get("type")){
case "camera-icon":
return (new CameraIcon(_arg1, _arg2));
default:
return (new menuItem(_arg1, _arg2));
};
}
}
}//package elements.menu
Section 103
//menuItem (elements.menu.menuItem)
package elements.menu {
import flash.events.*;
import flash.text.*;
import flash.display.*;
import flash.filters.*;
import string.*;
import flash.external.*;
public class menuItem extends Sprite {
protected var props:Properties;
protected var chartId:String;
public function menuItem(_arg1:String, _arg2:Properties){
this.props = _arg2;
this.buttonMode = true;
this.useHandCursor = true;
this.chartId = _arg1;
this.alpha = 0.5;
var _local3:Number = this.add_elements();
this.draw_bg((_local3 + 10));
this.addEventListener(MouseEvent.CLICK, mouseClickHandler);
this.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
this.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
this.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
}
public function mouseOverHandler(_arg1:MouseEvent):void{
this.alpha = 1;
var _local2:GlowFilter = new GlowFilter();
_local2.color = Utils.get_colour(this.props.get("glow-colour"));
_local2.alpha = 0.8;
_local2.blurX = 4;
_local2.blurY = 4;
_local2.inner = false;
this.filters = new Array(_local2);
}
protected function add_elements():Number{
var _local1:Number = this.add_text(this.props.get("text"), 5);
return (_local1);
}
public function mouseOutHandler(_arg1:MouseEvent):void{
this.alpha = 0.5;
this.filters = new Array();
}
public function mouseDownHandler(_arg1:MouseEvent):void{
this.alpha = 1;
}
protected function add_text(_arg1:String, _arg2:Number):Number{
var _local3:TextField = new TextField();
_local3.x = _arg2;
_local3.y = 0;
_local3.htmlText = _arg1;
var _local4:TextFormat = new TextFormat();
_local4.color = Utils.get_colour(this.props.get("text-colour"));
_local4.font = "Verdana";
_local4.size = 10;
_local4.underline = true;
_local3.setTextFormat(_local4);
_local3.autoSize = "left";
_local3.mouseEnabled = false;
this.addChild(_local3);
return (_local3.width);
}
public function mouseClickHandler(_arg1:MouseEvent):void{
this.alpha = 0;
tr.aces("Menu item clicked:", (((this.props.get("javascript-function") + "(") + this.chartId) + ")"));
ExternalInterface.call(this.props.get("javascript-function"), this.chartId);
this.alpha = 1;
}
private function draw_bg(_arg1:Number):void{
this.graphics.beginFill(Utils.get_colour(this.props.get("background-colour")));
this.graphics.drawRoundRect(0, 0, _arg1, 20, 5, 5);
this.graphics.endFill();
}
}
}//package elements.menu
Section 104
//Background (elements.Background)
package elements {
import flash.display.*;
import string.*;
public class Background extends Sprite {
private var colour:Number;
private var img_x:Number;
private var img_y:Number;
public function Background(_arg1:Object){
if (_arg1.bg_colour != undefined){
this.colour = Utils.get_colour(_arg1.bg_colour);
} else {
this.colour = 16316632;
};
if (_arg1.bg_image != undefined){
this.load_img(_arg1.bg_image);
};
}
public function die():void{
this.graphics.clear();
}
private function load_img(_arg1:Object):void{
if (_arg1.bg_image_x != undefined){
this.img_x = _arg1.bg_image_x;
};
if (_arg1.bg_image_y != undefined){
this.img_y = _arg1.bg_image_y;
};
}
public function resize():void{
this.graphics.beginFill(this.colour);
this.graphics.drawRect(0, 0, this.stage.stageWidth, this.stage.stageHeight);
}
}
}//package elements
Section 105
//Global (global.Global)
package global {
import elements.labels.*;
import elements.axis.*;
public class Global {
private var tooltip:String;
public var x_legend:XLegend;
public var x_labels:XAxisLabels;
private static var allowInstantiation:Boolean = false;
private static var instance:Global = null;
public function set_tooltip_string(_arg1:String):void{
tr.ace("@@@@@@@");
tr.ace(_arg1);
this.tooltip = _arg1;
}
public function get_x_legend():String{
if (this.x_legend == null){
return (null);
};
return (this.x_legend.text);
}
public function get_x_label(_arg1:Number):String{
tr.ace("xxx");
tr.ace((this.x_labels == null));
tr.ace(_arg1);
if (this.x_labels == null){
return (null);
};
return (this.x_labels.get(_arg1));
}
public function get_tooltip_string():String{
return (this.tooltip);
}
public static function getInstance():Global{
if (Global.instance == null){
Global.allowInstantiation = true;
Global.instance = new (Global);
Global.allowInstantiation = false;
};
return (Global.instance);
}
}
}//package global
Section 106
//FontAsset (mx.core.FontAsset)
package mx.core {
import flash.text.*;
public class FontAsset extends Font implements IFlexAsset {
mx_internal static const VERSION:String = "3.0.0.0";
}
}//package mx.core
Section 107
//IFlexAsset (mx.core.IFlexAsset)
package mx.core {
public interface IFlexAsset {
}
}//package mx.core
Section 108
//mx_internal (mx.core.mx_internal)
package mx.core {
public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal";
}//package mx.core
Section 109
//Base64Encoder (mx.utils.Base64Encoder)
package mx.utils {
import flash.utils.*;
public class Base64Encoder {
private var _line:uint;
private var _count:uint;
private var _buffers:Array;
public var insertNewLines:Boolean;// = true
private var _work:Array;
private static const MAX_BUFFER_SIZE:uint = 0xFFFF;
private static const ALPHABET_CHAR_CODES:Array = [65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47];
public static const CHARSET_UTF_8:String = "UTF-8";
private static const ESCAPE_CHAR_CODE:Number = 61;
public static var newLine:int = 10;
public function Base64Encoder(){
_work = [0, 0, 0];
super();
reset();
}
public function flush():String{
if (_count > 0){
encodeBlock();
};
var _local1:String = drain();
reset();
return (_local1);
}
public function toString():String{
return (flush());
}
public function reset():void{
_buffers = [];
_buffers.push([]);
_count = 0;
_line = 0;
_work[0] = 0;
_work[1] = 0;
_work[2] = 0;
}
public function encodeBytes(_arg1:ByteArray, _arg2:uint=0, _arg3:uint=0):void{
if (_arg3 == 0){
_arg3 = _arg1.length;
};
var _local4:uint = _arg1.position;
_arg1.position = _arg2;
var _local5:uint = _arg2;
while (_local5 < _arg3) {
_work[_count] = _arg1[_local5];
_count++;
if ((((_count == _work.length)) || ((((_arg2 + _arg3) - _local5) == 1)))){
encodeBlock();
_count = 0;
_work[0] = 0;
_work[1] = 0;
_work[2] = 0;
};
_local5++;
};
_arg1.position = _local4;
}
public function encode(_arg1:String, _arg2:uint=0, _arg3:uint=0):void{
if (_arg3 == 0){
_arg3 = _arg1.length;
};
var _local4:uint = _arg2;
while (_local4 < (_arg2 + _arg3)) {
_work[_count] = _arg1.charCodeAt(_local4);
_count++;
if ((((_count == _work.length)) || ((((_arg2 + _arg3) - _local4) == 1)))){
encodeBlock();
_count = 0;
_work[0] = 0;
_work[1] = 0;
_work[2] = 0;
};
_local4++;
};
}
private function encodeBlock():void{
var _local1:Array = (_buffers[(_buffers.length - 1)] as Array);
if (_local1.length >= MAX_BUFFER_SIZE){
_local1 = [];
_buffers.push(_local1);
};
_local1.push(ALPHABET_CHAR_CODES[((_work[0] & 0xFF) >> 2)]);
_local1.push(ALPHABET_CHAR_CODES[(((_work[0] & 3) << 4) | ((_work[1] & 240) >> 4))]);
if (_count > 1){
_local1.push(ALPHABET_CHAR_CODES[(((_work[1] & 15) << 2) | ((_work[2] & 192) >> 6))]);
} else {
_local1.push(ESCAPE_CHAR_CODE);
};
if (_count > 2){
_local1.push(ALPHABET_CHAR_CODES[(_work[2] & 63)]);
} else {
_local1.push(ESCAPE_CHAR_CODE);
};
if (insertNewLines){
if ((_line = (_line + 4)) == 76){
_local1.push(newLine);
_line = 0;
};
};
}
public function encodeUTFBytes(_arg1:String):void{
var _local2:ByteArray = new ByteArray();
_local2.writeUTFBytes(_arg1);
_local2.position = 0;
encodeBytes(_local2);
}
public function drain():String{
var _local3:Array;
var _local1 = "";
var _local2:uint;
while (_local2 < _buffers.length) {
_local3 = (_buffers[_local2] as Array);
_local1 = (_local1 + String.fromCharCode.apply(null, _local3));
_local2++;
};
_buffers = [];
_buffers.push([]);
return (_local1);
}
}
}//package mx.utils
Section 110
//FlashConnect (org.flashdevelop.utils.FlashConnect)
package org.flashdevelop.utils {
import flash.events.*;
import flash.utils.*;
import flash.xml.*;
import flash.net.*;
public class FlashConnect {
public static var onReturnData:Function;
public static var port:Number = 1978;
private static var interval:Number;
private static var messages:Array;
public static var onConnection:Function;
public static var host:String = "localhost";
public static var status:Number = 0;
private static var socket:XMLSocket;
public static var limit:Number = 1000;
private static var counter:Number;
private static function onIOError(_arg1:IOErrorEvent):void{
FlashConnect.status = -1;
if (FlashConnect.onConnection != null){
FlashConnect.onConnection();
};
}
public static function atrace(... _args):void{
var _local2:String = _args.join(",");
var _local3:XMLNode = createMsgNode(_local2, TraceLevel.DEBUG);
FlashConnect.send(_local3);
}
private static function createMsgNode(_arg1:String, _arg2:Number):XMLNode{
if (isNaN(_arg2)){
_arg2 = TraceLevel.DEBUG;
};
var _local3:XMLNode = new XMLNode(1, null);
var _local4:XMLNode = new XMLNode(3, encodeURI(_arg1));
_local3.attributes.state = _arg2.toString();
_local3.attributes.cmd = "trace";
_local3.nodeName = "message";
_local3.appendChild(_local4);
return (_local3);
}
public static function send(_arg1:XMLNode):void{
if (messages == null){
initialize();
};
messages.push(_arg1);
}
private static function onSecurityError(_arg1:SecurityErrorEvent):void{
FlashConnect.status = -1;
if (FlashConnect.onConnection != null){
FlashConnect.onConnection();
};
}
private static function onConnect(_arg1:Event):void{
FlashConnect.status = 1;
if (FlashConnect.onConnection != null){
FlashConnect.onConnection();
};
}
public static function trace(_arg1:String, _arg2:Number=1):void{
var _local3:XMLNode = createMsgNode(_arg1, _arg2);
FlashConnect.send(_local3);
}
private static function initialize():void{
counter = 0;
messages = new Array();
socket = new XMLSocket();
socket.addEventListener(DataEvent.DATA, onData);
socket.addEventListener(Event.CONNECT, onConnect);
socket.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
interval = setInterval(sendStack, 50);
socket.connect(host, port);
}
private static function sendStack():void{
var _local1:XMLDocument;
var _local2:XMLNode;
var _local3:String;
var _local4:XMLNode;
var _local5:XMLNode;
if ((((messages.length > 0)) && ((status == 1)))){
_local1 = new XMLDocument();
_local2 = _local1.createElement("flashconnect");
while (messages.length != 0) {
counter++;
if (counter > limit){
clearInterval(interval);
_local3 = new String("FlashConnect aborted. You have reached the limit of maximum messages.");
_local4 = createMsgNode(_local3, TraceLevel.ERROR);
_local2.appendChild(_local4);
break;
} else {
_local5 = XMLNode(messages.shift());
_local2.appendChild(_local5);
};
};
_local1.appendChild(_local2);
socket.send(_local1);
};
}
private static function onData(_arg1:DataEvent):void{
FlashConnect.status = 1;
if (FlashConnect.onReturnData != null){
FlashConnect.onReturnData(_arg1.data);
};
}
public static function mtrace(_arg1:Object, _arg2:String, _arg3:String, _arg4:Number):void{
var _local5:String = _arg3.split("/").join("\\");
var _local6:String = ((((_local5 + ":") + _arg4) + ":") + _arg1);
FlashConnect.trace(_local6, TraceLevel.DEBUG);
}
}
}//package org.flashdevelop.utils
Section 111
//TraceLevel (org.flashdevelop.utils.TraceLevel)
package org.flashdevelop.utils {
public class TraceLevel {
public static const DEBUG:Number = 1;
public static const FATAL:Number = 4;
public static const WARNING:Number = 2;
public static const INFO:Number = 0;
public static const ERROR:Number = 3;
}
}//package org.flashdevelop.utils
Section 112
//Css (string.Css)
package string {
public class Css {
private var text_decoration:String;
private var padding:String;
public var padding_bottom:Number;// = 0
public var background_colour_set:Boolean;
public var padding_top:Number;// = 0
private var margin:String;
private var stop_process:Number;
public var font_style:String;
private var display:String;
public var margin_top:Number;
public var margin_right:Number;
public var font_family:String;
public var margin_bottom:Number;
public var font_weight:String;
public var padding_right:Number;// = 0
public var font_size:Number;
public var color:Number;
public var text_align:String;
public var padding_left:Number;// = 0
public var margin_left:Number;
public var background_colour:Number;
public function Css(_arg1:String){
_arg1.toLowerCase();
_arg1 = _arg1.replace("{", "");
_arg1 = _arg1.replace("}", "");
this.margin_top = 0;
this.margin_bottom = 0;
this.margin_left = 0;
this.margin_right = 0;
this.padding_top = 0;
this.padding_bottom = 0;
this.padding_left = 0;
this.padding_right = 0;
this.color = 0;
this.background_colour_set = false;
this.font_size = 9;
var _local2:Array = _arg1.split(";");
var _local3:Number = 0;
while (_local3 < _local2.length) {
getAttribute(_local2[_local3]);
_local3++;
};
}
private function removeDoubleSpaces(_arg1:String):String{
var _local2:String;
var _local3:String;
_local2 = _arg1;
do {
_local3 = _local2;
_local2.replace(" ", " ");
} while (_local3.length != _local2.length);
return (_local2);
}
private function trim(_arg1:String):String{
var _local2:Number = 0;
var _local3:Number = (_arg1.length - 1);
while ((((_arg1.charAt(_local2) == " ")) || ((_arg1.charAt(_local2) == "\t")))) {
_local2++;
};
while ((((_arg1.charAt(_local3) == " ")) || ((_arg1.charAt(_local3) == "\t")))) {
_local3--;
};
return (_arg1.substring(_local2, (_local3 + 1)));
}
private function setMargin(_arg1:String):void{
_arg1 = trim(_arg1);
var _local2:Array = _arg1.split(" ");
switch (_local2.length){
case 1:
this.margin_top = ToNumber(_local2[0]);
this.margin_right = ToNumber(_local2[0]);
this.margin_bottom = ToNumber(_local2[0]);
this.margin_left = ToNumber(_local2[0]);
break;
case 2:
this.margin_top = ToNumber(_local2[0]);
this.margin_right = ToNumber(_local2[1]);
this.margin_bottom = ToNumber(_local2[0]);
this.margin_left = ToNumber(_local2[1]);
break;
case 3:
this.margin_top = ToNumber(_local2[0]);
this.margin_right = ToNumber(_local2[1]);
this.margin_bottom = ToNumber(_local2[2]);
this.margin_left = ToNumber(_local2[1]);
break;
default:
this.margin_top = ToNumber(_local2[0]);
this.margin_right = ToNumber(_local2[1]);
this.margin_bottom = ToNumber(_local2[2]);
this.margin_left = ToNumber(_local2[3]);
};
}
private function ToNumber(_arg1:String):Number{
_arg1 = _arg1.replace("px", "");
if (isNaN(Number(_arg1))){
return (0);
};
return (Number(_arg1));
}
public function set_color(_arg1:String):void{
this.color = Utils.get_colour(_arg1);
}
private function setPadding(_arg1:String):void{
_arg1 = trim(_arg1);
var _local2:Array = _arg1.split(" ");
switch (_local2.length){
case 1:
this.padding_top = ToNumber(_local2[0]);
this.padding_right = ToNumber(_local2[0]);
this.padding_bottom = ToNumber(_local2[0]);
this.padding_left = ToNumber(_local2[0]);
break;
case 2:
this.padding_top = ToNumber(_local2[0]);
this.padding_right = ToNumber(_local2[1]);
this.padding_bottom = ToNumber(_local2[0]);
this.padding_left = ToNumber(_local2[1]);
break;
case 3:
this.padding_top = ToNumber(_local2[0]);
this.padding_right = ToNumber(_local2[1]);
this.padding_bottom = ToNumber(_local2[2]);
this.padding_left = ToNumber(_local2[1]);
break;
default:
this.padding_top = ToNumber(_local2[0]);
this.padding_right = ToNumber(_local2[1]);
this.padding_bottom = ToNumber(_local2[2]);
this.padding_left = ToNumber(_local2[3]);
};
}
public function set_font_size(_arg1:String):void{
this.font_size = ToNumber(_arg1);
}
public function set(_arg1:String, _arg2:String):void{
_arg1 = trim(_arg1);
switch (_arg1){
case "text-align":
this.text_align = _arg2;
break;
case "font-size":
this.set_font_size(_arg2);
break;
case "text-decoration":
this.text_decoration = _arg2;
break;
case "margin":
this.setMargin(_arg2);
break;
case "margin-top":
this.margin_top = ToNumber(_arg2);
break;
case "margin-bottom":
this.margin_bottom = ToNumber(_arg2);
break;
case "margin-left":
this.margin_left = ToNumber(_arg2);
break;
case "margin-right":
this.margin_right = ToNumber(_arg2);
break;
case "padding":
this.setPadding(_arg2);
break;
case "padding-top":
this.padding_top = ToNumber(_arg2);
break;
case "padding-bottom":
this.padding_bottom = ToNumber(_arg2);
break;
case "padding-left":
this.padding_left = ToNumber(_arg2);
break;
case "padding-right":
this.padding_right = ToNumber(_arg2);
break;
case "font-weight":
this.font_weight = _arg2;
break;
case "font-style":
this.font_style = _arg2;
break;
case "font-family":
this.font_family = _arg2;
break;
case "color":
this.set_color(_arg2);
break;
case "background-color":
this.background_colour = Utils.get_colour(_arg2);
this.background_colour_set = true;
break;
case "display":
this.display = _arg2;
break;
};
}
public function clear():void{
this.text_align = undefined;
this.font_size = undefined;
this.text_decoration = undefined;
this.margin_top = undefined;
this.margin_bottom = undefined;
this.margin_left = undefined;
this.margin_right = undefined;
this.font_weight = undefined;
this.font_style = undefined;
this.font_family = undefined;
this.color = undefined;
this.display = undefined;
}
private function getAttribute(_arg1:String):void{
var _local2:Array = _arg1.split(":");
if (_local2.length == 2){
this.stop_process = 1;
this.set(_local2[0], trim(_local2[1]));
};
}
}
}//package string
Section 113
//DateUtils (string.DateUtils)
package string {
public class DateUtils {
protected static var dateConsts:Object = {shortMonths:["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], longMonths:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], shortDays:["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], longDays:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]};
public static function formatUTCDate(_arg1:Date, _arg2:String):String{
var _local5:String;
var _local3 = "";
var _local4:int;
while (_local4 < _arg2.length) {
_local5 = _arg2.charAt(_local4);
switch (_local5){
case "d":
_local3 = (_local3 + (((_arg1.getUTCDate() < 10)) ? "0" : "" + _arg1.getUTCDate()));
break;
case "D":
_local3 = (_local3 + _slot1.dateConsts.shortDays[_arg1.getUTCDate()]);
break;
case "j":
_local3 = (_local3 + _arg1.getUTCDate());
break;
case "l":
_local3 = (_local3 + _slot1.dateConsts.longDays[_arg1.getUTCDay()]);
break;
case "N":
_local3 = (_local3 + (_arg1.getUTCDay() + 1));
break;
case "S":
_local3 = (_local3 + (((((_arg1.getUTCDate() % 10) == 1)) && (!((_arg1.getUTCDate() == 11))))) ? "st" : (((((_arg1.getUTCDate() % 10) == 2)) && (!((_arg1.getUTCDate() == 12))))) ? "nd" : (((((_arg1.getUTCDate() % 10) == 3)) && (!((_arg1.getUTCDate() == 13))))) ? "rd" : "th");
break;
case "w":
_local3 = (_local3 + _arg1.getUTCDay());
break;
case "F":
_local3 = (_local3 + _slot1.dateConsts.longMonths[_arg1.getUTCMonth()]);
break;
case "m":
_local3 = (_local3 + (((_arg1.getUTCMonth() < 9)) ? "0" : "" + (_arg1.getUTCMonth() + 1)));
break;
case "M":
_local3 = (_local3 + _slot1.dateConsts.shortMonths[_arg1.getUTCMonth()]);
break;
case "n":
_local3 = (_local3 + (_arg1.getUTCMonth() + 1));
break;
case "Y":
_local3 = (_local3 + _arg1.getUTCFullYear());
break;
case "y":
_local3 = (_local3 + ("" + _arg1.getUTCFullYear()).substr(2));
break;
case "a":
_local3 = (_local3 + ((_arg1.getUTCHours() < 12)) ? "am" : "pm");
break;
case "A":
_local3 = (_local3 + ((_arg1.getUTCHours() < 12)) ? "AM" : "PM");
break;
case "g":
_local3 = (_local3 + ((_arg1.getUTCHours() == 0)) ? 12 : ((_arg1.getUTCHours() > 12)) ? (_arg1.getUTCHours() - 12) : _arg1.getHours());
break;
case "G":
_local3 = (_local3 + _arg1.getUTCHours());
break;
case "h":
_local3 = (_local3 + (((((_arg1.getUTCHours() < 10)) || (((12 < _arg1.getUTCHours()) < 22)))) ? "0" : "" + ((_arg1.getUTCHours() < 10)) ? (_arg1.getUTCHours() + 1) : (_arg1.getUTCHours() - 12)));
break;
case "H":
_local3 = (_local3 + (((_arg1.getUTCHours() < 10)) ? "0" : "" + _arg1.getUTCHours()));
break;
case "i":
_local3 = (_local3 + (((_arg1.getUTCMinutes() < 10)) ? "0" : "" + _arg1.getUTCMinutes()));
break;
case "s":
_local3 = (_local3 + (((_arg1.getUTCSeconds() < 10)) ? "0" : "" + _arg1.getUTCSeconds()));
break;
case "O":
_local3 = (_local3 + "+0000");
break;
case "Z":
_local3 = (_local3 + 0);
break;
case "r":
_local3 = (_local3 + _arg1.toUTCString());
break;
case "U":
_local3 = (_local3 + (_arg1.getTime() / 1000));
break;
default:
_local3 = (_local3 + _local5);
};
_local4++;
};
return (_local3);
}
public static function formatDate(_arg1:Date, _arg2:String):String{
var _local5:String;
var _local3 = "";
var _local4:int;
while (_local4 < _arg2.length) {
_local5 = _arg2.charAt(_local4);
switch (_local5){
case "d":
_local3 = (_local3 + (((_arg1.getDate() < 10)) ? "0" : "" + _arg1.getDate()));
break;
case "D":
_local3 = (_local3 + _slot1.dateConsts.shortDays[_arg1.getDate()]);
break;
case "j":
_local3 = (_local3 + _arg1.getDate());
break;
case "l":
_local3 = (_local3 + _slot1.dateConsts.longDays[_arg1.getDay()]);
break;
case "N":
_local3 = (_local3 + (_arg1.getDay() + 1));
break;
case "S":
_local3 = (_local3 + (((((_arg1.getDate() % 10) == 1)) && (!((_arg1.getDate() == 11))))) ? "st" : (((((_arg1.getDate() % 10) == 2)) && (!((_arg1.getDate() == 12))))) ? "nd" : (((((_arg1.getDate() % 10) == 3)) && (!((_arg1.getDate() == 13))))) ? "rd" : "th");
break;
case "w":
_local3 = (_local3 + _arg1.getDay());
break;
case "F":
_local3 = (_local3 + _slot1.dateConsts.longMonths[_arg1.getMonth()]);
break;
case "m":
_local3 = (_local3 + (((_arg1.getMonth() < 9)) ? "0" : "" + (_arg1.getMonth() + 1)));
break;
case "M":
_local3 = (_local3 + _slot1.dateConsts.shortMonths[_arg1.getMonth()]);
break;
case "n":
_local3 = (_local3 + (_arg1.getMonth() + 1));
break;
case "Y":
_local3 = (_local3 + _arg1.getFullYear());
break;
case "y":
_local3 = (_local3 + ("" + _arg1.getFullYear()).substr(2));
break;
case "a":
_local3 = (_local3 + ((_arg1.getHours() < 12)) ? "am" : "pm");
break;
case "A":
_local3 = (_local3 + ((_arg1.getHours() < 12)) ? "AM" : "PM");
break;
case "g":
_local3 = (_local3 + ((_arg1.getHours() == 0)) ? 12 : ((_arg1.getHours() > 12)) ? (_arg1.getHours() - 12) : _arg1.getHours());
break;
case "G":
_local3 = (_local3 + _arg1.getHours());
break;
case "h":
_local3 = (_local3 + (((((_arg1.getHours() < 10)) || (((12 < _arg1.getHours()) < 22)))) ? "0" : "" + ((_arg1.getHours() < 10)) ? (_arg1.getHours() + 1) : (_arg1.getHours() - 12)));
break;
case "H":
_local3 = (_local3 + (((_arg1.getHours() < 10)) ? "0" : "" + _arg1.getHours()));
break;
case "i":
_local3 = (_local3 + (((_arg1.getMinutes() < 10)) ? "0" : "" + _arg1.getMinutes()));
break;
case "s":
_local3 = (_local3 + (((_arg1.getSeconds() < 10)) ? "0" : "" + _arg1.getSeconds()));
break;
case "O":
_local3 = (_local3 + (((((_arg1.getTimezoneOffset() < 0)) ? "-" : "+" + (((_arg1.getTimezoneOffset() / 60) < 10)) ? "0" : "") + (_arg1.getTimezoneOffset() / 60)) + "00"));
break;
case "Z":
_local3 = (_local3 + (_arg1.getTimezoneOffset() * 60));
break;
case "r":
_local3 = (_local3 + _arg1.toString());
break;
case "U":
_local3 = (_local3 + (_arg1.getTime() / 1000));
break;
default:
_local3 = (_local3 + _local5);
};
_local4++;
};
return (_local3);
}
public static function replace_magic_values(_arg1:String, _arg2:Number):String{
var _local5:int;
var _local6:String;
var _local7:String;
var _local8:String;
var _local3:Date = new Date((_arg2 * 1000));
_arg1 = _arg1.replace("#date#", _slot1.formatDate(_local3, "Y-m-d"));
var _local4:int = _arg1.indexOf("#date:");
while (_local4 >= 0) {
_local5 = (_arg1.indexOf("#", (_local4 + 1)) + 1);
_local6 = _arg1.substr(_local4, (_local5 - _local4));
_local7 = _local6.substr(6, (_local6.length - 7));
_local8 = _slot1.formatDate(_local3, _local7);
_arg1 = _arg1.replace(_local6, _local8);
_local4 = _arg1.indexOf("#date:");
};
_local4 = _arg1.indexOf("#gmdate:");
while (_local4 >= 0) {
_local5 = (_arg1.indexOf("#", (_local4 + 1)) + 1);
_local6 = _arg1.substr(_local4, (_local5 - _local4));
_local7 = _local6.substr(8, (_local6.length - 9));
_local8 = _slot1.formatUTCDate(_local3, _local7);
_arg1 = _arg1.replace(_local6, _local8);
_local4 = _arg1.indexOf("#gmdate:");
};
return (_arg1);
}
}
}//package string
Section 114
//Utils (string.Utils)
package string {
public class Utils {
public static function get_colour(_arg1:String):Number{
if (_arg1.substr(0, 2) == "0x"){
return (Number(_arg1));
};
if (_arg1.substr(0, 1) == "#"){
return (Number(("0x" + _arg1.substr(1, _arg1.length))));
};
if (_arg1.length == 6){
return (Number(("0x" + _arg1)));
};
return (Number(_arg1));
}
}
}//package string
Section 115
//ErrorMsg (ErrorMsg)
package {
import flash.text.*;
import flash.display.*;
public class ErrorMsg extends Sprite {
public function ErrorMsg(_arg1:String):void{
var _local2:TextField = new TextField();
_local2.text = _arg1;
var _local3:TextFormat = new TextFormat();
_local3.color = 0;
_local3.font = "Courier";
_local3.size = 10;
_local3.align = "left";
_local2.setTextFormat(_local3);
_local2.autoSize = "left";
_local2.border = true;
_local2.x = 5;
_local2.y = 5;
this.addChild(_local2);
}
public function add_html(_arg1:String):void{
var _local2:TextField = new TextField();
var _local3:StyleSheet = new StyleSheet();
var _local4:Object = new Object();
_local4.fontWeight = "bold";
_local4.color = "#0000FF";
var _local5:Object = new Object();
_local5.fontWeight = "bold";
_local5.textDecoration = "underline";
_local5.color = "#0000A0";
var _local6:Object = new Object();
_local6.fontWeight = "bold";
_local6.color = "#0000A0";
var _local7:Object = new Object();
_local7.fontWeight = "bold";
_local7.color = "#CC0099";
_local7.textDecoration = "underline";
_local3.setStyle("a:link", _local5);
_local3.setStyle("a:hover", _local4);
_local3.setStyle("a:active", _local6);
_local3.setStyle(".visited", _local7);
_local2.styleSheet = _local3;
_local2.htmlText = _arg1;
_local2.autoSize = "left";
_local2.border = true;
var _local8:TextField = (this.getChildAt(0) as TextField);
_local2.y = ((_local8.y + _local8.height) + 10);
_local2.x = 5;
this.addChild(_local2);
}
}
}//package
Section 116
//ExternalInterfaceManager (ExternalInterfaceManager)
package {
import flash.external.*;
public class ExternalInterfaceManager {
public var has_id:Boolean;
public var chart_id:String;
private static var _instance:ExternalInterfaceManager;
public function callJavascript(_arg1:String, ... _args){
if (ExternalInterface.available){
if (this.has_id){
tr.aces(_arg1, _args);
_args.unshift(this.chart_id);
tr.aces(_arg1, _args);
};
return (ExternalInterface.call(_arg1, _args));
};
}
public function setUp(_arg1:String):void{
this.has_id = true;
this.chart_id = _arg1;
}
public static function getInstance():ExternalInterfaceManager{
if (_instance == null){
_instance = new (ExternalInterfaceManager);
};
return (_instance);
}
}
}//package
Section 117
//JsonErrorMsg (JsonErrorMsg)
package {
public class JsonErrorMsg extends ErrorMsg {
public function JsonErrorMsg(_arg1:String, _arg2:Error):void{
var _local3 = "Open Flash Chart\n\n";
_local3 = (_local3 + (("JSON Parse Error [" + _arg2.message) + "]\n"));
var _local4:Number = _arg1.indexOf("\n", _arg2.errorID);
var _local5:String = _arg1.substr(0, _local4);
var _local6:Array = _local5.split("\n");
_local3 = (_local3 + (((("Error at character " + _arg2.errorID) + ", line ") + _local6.length) + ":\n\n"));
var _local7:Number = 3;
while (_local7 > 0) {
if ((_local6.length - _local7) > -1){
_local3 = (_local3 + (((_local6.length - _local7).toString() + ": ") + _local6[(_local6.length - _local7)]));
};
_local7--;
};
super(_local3);
}
}
}//package
Section 118
//JsonInspector (JsonInspector)
package {
public class JsonInspector {
public static function is_radar(_arg1:Object):Boolean{
if (_arg1["radar_axis"] != null){
return (true);
};
return (false);
}
public static function has_pie_chart(_arg1:Object):Boolean{
var _local2:Array = (_arg1["elements"] as Array);
var _local3:Number = 0;
while (_local3 < _local2.length) {
if (_local2[_local3]["type"] == "pie"){
return (true);
};
_local3++;
};
return (false);
}
}
}//package
Section 119
//Loading (Loading)
package {
import flash.events.*;
import flash.text.*;
import flash.display.*;
import flash.filters.*;
public class Loading extends Sprite {
private var tf:TextField;
public function Loading(_arg1:String){
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
super();
this.tf = new TextField();
this.tf.text = _arg1;
var _local2:TextFormat = new TextFormat();
_local2.color = 0;
_local2.font = "Verdana";
_local2.size = 12;
_local2.align = "center";
this.tf.setTextFormat(_local2);
this.tf.autoSize = "left";
this.tf.x = 5;
this.tf.y = 5;
this.addEventListener(Event.ENTER_FRAME, this.onEnter);
this.addChild(this.tf);
this.graphics.lineStyle(2, 0x808080, 1);
this.graphics.beginFill(0xF0F0F0);
this.graphics.drawRoundRect(0, 0, (this.tf.width + 10), (this.tf.height + 10), 5, 5);
var _local3:Sprite = new Sprite();
_local3.x = (this.tf.width + 40);
_local3.y = ((this.tf.height + 10) / 2);
var _local4:Number = 15;
var _local5:Number = 6;
var _local6:Array = [0xF0F0F0, 0xD0D0D0, 0xB0B0B0, 0x909090, 0x707070, 0x505050, 0x303030];
var _local7:Number = 0;
while (_local7 < _local5) {
_local9 = ((360 / _local5) * _local7);
_local10 = (_local9 * (Math.PI / 180));
_local11 = (_local4 * Math.cos(_local10));
_local12 = (_local4 * Math.sin(_local10));
_local3.graphics.lineStyle(0, 0, 0);
_local3.graphics.beginFill(_local6[_local7], 1);
_local3.graphics.drawCircle(_local11, _local12, 4);
_local7++;
};
this.addChild(_local3);
var _local8:DropShadowFilter = new DropShadowFilter();
_local8.blurX = 4;
_local8.blurY = 4;
_local8.distance = 4;
_local8.angle = 45;
_local8.quality = 2;
_local8.alpha = 0.5;
this.filters = [_local8];
}
private function onEnter(_arg1:Event):void{
if (this.stage){
this.x = ((this.stage.stageWidth / 2) - ((this.tf.width + 10) / 2));
this.y = ((this.stage.stageHeight / 2) - ((this.tf.height + 10) / 2));
};
this.getChildAt(1).rotation = (this.getChildAt(1).rotation + 5);
}
}
}//package
Section 120
//main (main)
package {
import flash.events.*;
import flash.utils.*;
import elements.labels.*;
import charts.*;
import elements.axis.*;
import charts.series.*;
import global.*;
import flash.display.*;
import elements.menu.*;
import elements.*;
import com.serialization.json.*;
import mx.utils.*;
import com.adobe.images.*;
import flash.net.*;
import flash.external.*;
import flash.ui.*;
public class main extends Sprite {
private var obs:ObjectCollection;
private var tooltip:Tooltip;
private var y_axis_right:YAxisBase;
private var y_legend_2:YLegendBase;
private var x_axis:XAxis;
private var y_legend:YLegendBase;
private var id:String;
private var y_axis:YAxisBase;
private var background:Background;
private var x_legend:XLegend;
public var VERSION:String;// = "2 Kvasir"
private var radar_axis:RadarAxis;
public var tool_tip_wrapper:String;
private var URL:String;
private var sc:ScreenCoords;
private var title:Title;// = null
private var menu:Menu;
private var ok:Boolean;
private var json:String;
private var chart_parameters:Object;
private var keys:Keys;
public function main(){
var file:String;
var ex:ExternalInterfaceManager;
super();
this.chart_parameters = LoaderInfo(this.loaderInfo).parameters;
if (this.chart_parameters["loading"] == null){
this.chart_parameters["loading"] = "Loading data...";
};
var l:Loading = new Loading(this.chart_parameters["loading"]);
this.addChild(l);
this.build_right_click_menu();
this.ok = false;
if (!this.find_data()){
try {
file = "../../data-files/candle.txt";
this.load_external_file(file);
} catch(e:Error) {
this.show_error(((("Loading test data\n" + file) + "\n") + e.message));
};
};
this.addCallback("reload", reload);
this.addCallback("load", load);
this.addCallback("post_image", post_image);
this.addCallback("get_img_binary", getImgBinary);
this.addCallback("get_version", getVersion);
if (this.chart_parameters["id"]){
ex = ExternalInterfaceManager.getInstance();
ex.setUp(this.chart_parameters["id"]);
};
if (this.chart_parameters["id"]){
this.callExternalCallback("ofc_ready", this.chart_parameters["id"]);
} else {
this.callExternalCallback("ofc_ready");
};
this.set_the_stage();
}
private function resize_pie():ScreenCoordsBase{
this.addEventListener(MouseEvent.MOUSE_MOVE, this.mouseMove);
this.background.resize();
this.title.resize();
this.sc = new ScreenCoords(this.title.get_height(), 0, this.stage.stageWidth, this.stage.stageHeight, null, null, null, 0, 0, false);
this.obs.resize(sc);
return (sc);
}
private function ioError(_arg1:IOErrorEvent):void{
this.removeChildAt(0);
var _local2:ErrorMsg = new ErrorMsg(("Open Flash Chart\nIO ERROR\nLoading test data\n" + _arg1.text));
_local2.add_html((((("This is the URL that I tried to open:<br><a href=\"" + this.URL) + "\">") + this.URL) + "</a>"));
this.addChild(_local2);
}
private function xmlLoaded(_arg1:Event):void{
var _local2:URLLoader = URLLoader(_arg1.target);
this.parse_json(_local2.data);
}
private function addCallback(_arg1:String, _arg2:Function):void{
if (ExternalInterface.available){
ExternalInterface.addCallback(_arg1, _arg2);
};
}
private function die():void{
this.obs.die();
this.obs = null;
if (this.tooltip != null){
this.tooltip.die();
};
if (this.x_legend != null){
this.x_legend.die();
};
if (this.y_legend != null){
this.y_legend.die();
};
if (this.y_legend_2 != null){
this.y_legend_2.die();
};
if (this.y_axis != null){
this.y_axis.die();
};
if (this.y_axis_right != null){
this.y_axis_right.die();
};
if (this.x_axis != null){
this.x_axis.die();
};
if (this.keys != null){
this.keys.die();
};
if (this.title != null){
this.title.die();
};
if (this.radar_axis != null){
this.radar_axis.die();
};
if (this.background != null){
this.background.die();
};
this.tooltip = null;
this.x_legend = null;
this.y_legend = null;
this.y_legend_2 = null;
this.y_axis = null;
this.y_axis_right = null;
this.x_axis = null;
this.keys = null;
this.title = null;
this.radar_axis = null;
this.background = null;
while (this.numChildren > 0) {
this.removeChildAt(0);
};
if (this.hasEventListener(MouseEvent.MOUSE_MOVE)){
this.removeEventListener(MouseEvent.MOUSE_MOVE, this.mouseMove);
};
}
public function reload(_arg1:String):void{
var _local2:Loading = new Loading(this.chart_parameters["loading"]);
this.addChild(_local2);
this.load_external_file(_arg1);
}
private function set_the_stage():void{
this.stage.align = StageAlign.TOP_LEFT;
this.stage.scaleMode = StageScaleMode.NO_SCALE;
this.stage.addEventListener(Event.ACTIVATE, this.activateHandler);
this.stage.addEventListener(Event.RESIZE, this.resizeHandler);
this.stage.addEventListener(Event.MOUSE_LEAVE, this.mouseOut);
this.addEventListener(MouseEvent.MOUSE_OVER, this.mouseMove);
}
private function mouseMove(_arg1:Event):void{
if (!this.tooltip){
return;
};
switch (this.tooltip.get_tip_style()){
case Tooltip.CLOSEST:
this.mouse_move_closest(_arg1);
break;
case Tooltip.PROXIMITY:
this.mouse_move_proximity((_arg1 as MouseEvent));
break;
case Tooltip.NORMAL:
this.mouse_move_follow((_arg1 as MouseEvent));
break;
};
}
private function parse_json(_arg1:String):void{
var json:Object;
var json_string = _arg1;
var ok:Boolean;
try {
json = JSON.deserialize(json_string);
ok = true;
} catch(e:Error) {
this.removeChildAt(0);
this.addChild(new JsonErrorMsg((json_string as String), e));
};
if (ok){
this.removeChildAt(0);
this.build_chart(json);
json = null;
};
json_string = "";
}
public function getVersion():String{
return (VERSION);
}
public function format_y_axis_label(_arg1:Number):String{
return (NumberUtils.format(_arg1, 2, true, true, false));
}
private function resize_chart():ScreenCoordsBase{
this.addEventListener(MouseEvent.MOUSE_MOVE, this.mouseMove);
this.background.resize();
this.title.resize();
var _local1:Number = (this.y_legend.get_width() + this.y_axis.get_width());
this.keys.resize(_local1, this.title.get_height());
var _local2:Number = (this.title.get_height() + this.keys.get_height());
var _local3:Number = this.stage.stageHeight;
_local3 = (_local3 - (this.x_legend.get_height() + this.x_axis.get_height()));
var _local4:Number = this.stage.stageWidth;
_local4 = (_local4 - this.y_legend_2.get_width());
_local4 = (_local4 - this.y_axis_right.get_width());
this.sc = new ScreenCoords(_local2, _local1, _local4, _local3, this.y_axis.get_range(), this.y_axis_right.get_range(), this.x_axis.get_range(), this.x_axis.first_label_width(), this.x_axis.last_label_width(), false);
this.sc.set_bar_groups(this.obs.groups);
this.x_axis.resize(sc, (this.stage.stageHeight - (this.x_legend.get_height() + this.x_axis.labels.get_height())));
this.y_axis.resize(this.y_legend.get_width(), sc);
this.y_axis_right.resize(0, sc);
this.x_legend.resize(sc);
this.y_legend.resize();
this.y_legend_2.resize();
this.obs.resize(sc);
this.dispatchEvent(new Event("on-show"));
return (sc);
}
private function callExternalCallback(_arg1:String, ... _args){
if (ExternalInterface.available){
return (ExternalInterface.call(_arg1, _args));
};
}
private function resize_radar():ScreenCoordsBase{
this.addEventListener(MouseEvent.MOUSE_MOVE, this.mouseMove);
this.background.resize();
this.title.resize();
this.keys.resize(0, this.title.get_height());
var _local1:Number = (this.title.get_height() + this.keys.get_height());
var _local2:ScreenCoordsRadar = new ScreenCoordsRadar(_local1, 0, this.stage.stageWidth, this.stage.stageHeight);
_local2.set_range(this.radar_axis.get_range());
_local2.set_angles(((this.obs.get_max_x() - this.obs.get_min_x()) + 1));
this.radar_axis.resize(_local2);
this.obs.resize(_local2);
return (_local2);
}
private function resize():void{
var _local1:ScreenCoordsBase;
if (!this.ok){
return;
};
if (this.radar_axis != null){
_local1 = this.resize_radar();
} else {
if (this.obs.has_pie()){
_local1 = this.resize_pie();
} else {
_local1 = this.resize_chart();
};
};
if (this.menu){
this.menu.resize();
};
if (this.chart_parameters["id"]){
this.callExternalCallback("ofc_resize", _local1.left, _local1.width, _local1.top, _local1.height, this.chart_parameters["id"]);
} else {
this.callExternalCallback("ofc_resize", _local1.left, _local1.width, _local1.top, _local1.height);
};
_local1 = null;
}
private function mouse_move_follow(_arg1:MouseEvent):void{
if ((_arg1.target is has_tooltip)){
this.tooltip.draw((_arg1.target as has_tooltip));
} else {
this.tooltip.hide();
};
}
private function show_error(_arg1:String):void{
this.removeChildAt(0);
var _local2:ErrorMsg = new ErrorMsg(_arg1);
this.addChild(_local2);
}
private function mouse_move_closest(_arg1:Event):void{
var _local2:Array = this.obs.closest_2(this.mouseX, this.mouseY);
this.tooltip.closest(_local2);
}
private function build_chart(_arg1:Object):void{
var _local3:Sprite;
tr.ace("----");
tr.ace(JSON.serialize(_arg1));
tr.ace("----");
if (this.obs != null){
this.die();
};
NumberFormat.getInstance(_arg1);
NumberFormat.getInstanceY2(_arg1);
this.tooltip = new Tooltip(_arg1.tooltip);
var _local2:Global = Global.getInstance();
_local2.set_tooltip_string(this.tooltip.tip_text);
this.background = new Background(_arg1);
this.title = new Title(_arg1.title);
this.addChild(this.background);
if (JsonInspector.is_radar(_arg1)){
this.obs = Factory.MakeChart(_arg1);
this.radar_axis = new RadarAxis(_arg1.radar_axis);
this.keys = new Keys(this.obs);
this.addChild(this.radar_axis);
this.addChild(this.keys);
} else {
if (!JsonInspector.has_pie_chart(_arg1)){
this.build_chart_background(_arg1);
} else {
this.obs = Factory.MakeChart(_arg1);
this.tooltip.set_tip_style(Tooltip.NORMAL);
};
};
this.addChild(this.title);
for each (_local3 in this.obs.sets) {
this.addChild(_local3);
};
this.addChild(this.tooltip);
if (_arg1["menu"] != null){
this.menu = new Menu("99", _arg1["menu"]);
this.addChild(this.menu);
};
this.ok = true;
this.resize();
}
public function saveImage(_arg1:ContextMenuEvent):void{
this.callExternalCallback("save_image", this.chart_parameters["id"]);
}
private function build_chart_background(_arg1:Object):void{
this.obs = Factory.MakeChart(_arg1);
this.x_legend = new XLegend(_arg1.x_legend);
this.y_legend = new YLegendLeft(_arg1);
this.y_legend_2 = new YLegendRight(_arg1);
this.x_axis = new XAxis(_arg1, this.obs.get_min_x(), this.obs.get_max_x());
this.y_axis = new YAxisLeft();
this.y_axis_right = new YAxisRight();
var _local2:Global = Global.getInstance();
_local2.x_labels = this.x_axis.labels;
_local2.x_legend = this.x_legend;
this.obs.tooltip_replace_labels(this.x_axis.labels);
this.keys = new Keys(this.obs);
this.addChild(this.x_legend);
this.addChild(this.y_legend);
this.addChild(this.y_legend_2);
this.addChild(this.y_axis);
this.addChild(this.y_axis_right);
this.addChild(this.x_axis);
this.addChild(this.keys);
this.y_axis.init(_arg1);
this.y_axis_right.init(_arg1);
}
private function image_binary():ByteArray{
tr.ace("Saving image :: image_binary()");
var _local1:BitmapData = new BitmapData(this.width, this.height);
_local1.draw(this);
return (PNGEncoder.encode(_local1));
}
private function load_external_file(_arg1:String):void{
this.URL = _arg1;
var _local2:URLLoader = new URLLoader();
_local2.addEventListener(IOErrorEvent.IO_ERROR, this.ioError);
_local2.addEventListener(Event.COMPLETE, xmlLoaded);
var _local3:URLRequest = new URLRequest(_arg1);
_local2.load(_local3);
}
private function mouseOut(_arg1:Event):void{
if (this.tooltip != null){
this.tooltip.hide();
};
if (this.obs != null){
this.obs.mouse_out();
};
}
private function build_right_click_menu():void{
var cm:ContextMenu = new ContextMenu();
cm.addEventListener(ContextMenuEvent.MENU_SELECT, onContextMenuHandler);
cm.hideBuiltInItems();
var fs:ContextMenuItem = new ContextMenuItem((("Charts by Open Flash Chart [Version " + VERSION) + "]"));
with ({}) {
with ({}) {
!ERROR!.doSomething = function (_arg1:ContextMenuEvent):void{
var _local2 = "http://teethgrinder.co.uk/open-flash-chart-2/";
var _local3:URLRequest = new URLRequest(_local2);
navigateToURL(_local3, "_blank");
};
};
fs.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, function (_arg1:ContextMenuEvent):void{
var _local2 = "http://teethgrinder.co.uk/open-flash-chart-2/";
var _local3:URLRequest = new URLRequest(_local2);
navigateToURL(_local3, "_blank");
});
cm.customItems.push(fs);
var save_image_message:String = (this.chart_parameters["save_image_message"]) ? this.chart_parameters["save_image_message"] : "Save Image Locally";
var dl:ContextMenuItem = new ContextMenuItem(save_image_message);
dl.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, this.saveImage);
cm.customItems.push(dl);
this.contextMenu = cm;
}
public function load(_arg1:String):void{
this.parse_json(_arg1);
}
public function getImgBinary():String{
tr.ace("Saving image :: image_binary()");
var _local1:BitmapData = new BitmapData(this.stage.stageWidth, this.stage.stageHeight);
_local1.draw(this);
var _local2:Base64Encoder = new Base64Encoder();
var _local3:ByteArray = PNGEncoder.encode(_local1);
_local2.encodeBytes(_local3);
return (_local2.toString());
}
private function mouse_move_proximity(_arg1:MouseEvent):void{
var _local2:Array = this.obs.mouse_move_proximity(this.mouseX, this.mouseY);
this.tooltip.closest(_local2);
}
private function resizeHandler(_arg1:Event):void{
this.resize();
}
private function activateHandler(_arg1:Event):void{
tr.aces("activateHandler:", _arg1);
tr.aces("stage", this.stage);
}
private function onContextMenuHandler(_arg1:ContextMenuEvent):void{
}
public function post_image(_arg1:String, _arg2:String, _arg3:Boolean):void{
var id:String;
var url = _arg1;
var callback = _arg2;
var debug = _arg3;
var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");
var request:URLRequest = new URLRequest(url);
request.requestHeaders.push(header);
request.method = URLRequestMethod.POST;
request.data = image_binary();
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
id = "";
if (this.chart_parameters["id"]){
id = this.chart_parameters["id"];
};
if (debug){
navigateToURL(request, "_blank");
} else {
loader.addEventListener(ProgressEvent.PROGRESS, function (_arg1:ProgressEvent):void{
tr.ace(((("progress:" + _arg1.bytesLoaded) + ", total: ") + _arg1.bytesTotal));
if ((((_arg1.bytesLoaded == _arg1.bytesTotal)) && (!((callback == null))))){
tr.aces("Calling: ", (((callback + "(") + id) + ")"));
this.call(callback, id);
};
});
try {
loader.load(request);
} catch(error:Error) {
tr.ace(("unable to load:" + error));
};
};
}
public function get_x_legend():XLegend{
return (this.x_legend);
}
public function find_data():Boolean{
var _local3:*;
var _local4:Array;
var _local5:String;
var _local6:Array;
var _local1:String = this.callExternalCallback("window.location.search.substring", 1);
tr.aces(1, _local1);
if (_local1 != null){
_local4 = _local1.split("&");
for each (_local5 in _local4) {
if (_local5.indexOf("ofc=") > -1){
_local6 = _local5.split("=");
tr.ace(("Found external file:" + _local6[1]));
this.load_external_file(_local6[1]);
return (true);
};
};
};
if (this.chart_parameters["data-file"]){
this.load_external_file(this.chart_parameters["data-file"]);
return (true);
};
var _local2 = "open_flash_chart_data";
if (this.chart_parameters["get-data"]){
_local2 = this.chart_parameters["get-data"];
};
if (this.chart_parameters["id"]){
_local3 = this.callExternalCallback(_local2, this.chart_parameters["id"]);
} else {
_local3 = this.callExternalCallback(_local2);
};
if (_local3 != null){
if ((_local3 is String)){
this.parse_json(_local3);
this.ok = true;
return (true);
};
};
return (false);
}
}
}//package
Section 121
//NumberFormat (NumberFormat)
package {
public class NumberFormat {
public var isFixedNumDecimalsForced:Boolean;// = false
public var isDecimalSeparatorComma:Boolean;// = false
public var numDecimals:Number;
public var isThousandSeparatorDisabled:Boolean;// = false
private static var _instance:NumberFormat = null;
public static var DEFAULT_NUM_DECIMALS:Number = 2;
private static var _instanceY2:NumberFormat = null;
public function NumberFormat(_arg1:Number, _arg2:Boolean, _arg3:Boolean, _arg4:Boolean){
numDecimals = DEFAULT_NUM_DECIMALS;
super();
this.numDecimals = Parser.getNumberValue(_arg1, DEFAULT_NUM_DECIMALS, true, false);
this.isFixedNumDecimalsForced = Parser.getBooleanValue(_arg2, false);
this.isDecimalSeparatorComma = Parser.getBooleanValue(_arg3, false);
this.isThousandSeparatorDisabled = Parser.getBooleanValue(_arg4, false);
}
public static function getInstanceY2(_arg1:Object):NumberFormat{
var _local2:Object;
if (_instanceY2 == null){
_local2 = {num_decimals:2, is_fixed_num_decimals_forced:0, is_decimal_separator_comma:0, is_thousand_separator_disabled:0};
object_helper.merge_2(_arg1, _local2);
_instanceY2 = new NumberFormat(_local2.num_decimals, (_local2.is_fixed_num_decimals_forced == 1), (_local2.is_decimal_separator_comma == 1), (_local2.is_thousand_separator_disabled == 1));
};
return (_instanceY2);
}
public static function getInstance(_arg1:Object):NumberFormat{
var _local2:Object;
if (_instance == null){
_local2 = {num_decimals:2, is_fixed_num_decimals_forced:0, is_decimal_separator_comma:0, is_thousand_separator_disabled:0};
object_helper.merge_2(_arg1, _local2);
_instance = new NumberFormat(_local2.num_decimals, (_local2.is_fixed_num_decimals_forced == 1), (_local2.is_decimal_separator_comma == 1), (_local2.is_thousand_separator_disabled == 1));
};
return (_instance);
}
}
}//package
Section 122
//NumberUtils (NumberUtils)
package {
public class NumberUtils {
public static function formatNumber(_arg1:Number):String{
var _local2:NumberFormat = NumberFormat.getInstance(null);
return (NumberUtils.format(_arg1, _local2.numDecimals, _local2.isFixedNumDecimalsForced, _local2.isDecimalSeparatorComma, _local2.isThousandSeparatorDisabled));
}
public static function formatNumberY2(_arg1:Number):String{
var _local2:NumberFormat = NumberFormat.getInstanceY2(null);
return (NumberUtils.format(_arg1, _local2.numDecimals, _local2.isFixedNumDecimalsForced, _local2.isDecimalSeparatorComma, _local2.isThousandSeparatorDisabled));
}
public static function toDecimalSeperatorComma(_arg1:String):String{
return (_arg1.replace(".", "|").replace(",", ".").replace("|", ","));
}
public static function format(_arg1:Number, _arg2:Number, _arg3:Boolean, _arg4:Boolean, _arg5:Boolean):String{
var _local7:Array;
if (isNaN(_arg2)){
_arg2 = 4;
};
_arg1 = (Math.round((_arg1 * Math.pow(10, _arg2))) / Math.pow(10, _arg2));
var _local6 = "";
if (_arg1 < 0){
_local7 = String(-(_arg1)).split(".");
} else {
_local7 = String(_arg1).split(".");
};
var _local8:String = _local7[0];
var _local9:Number = 0;
var _local10:Number = 0;
_local10 = (_local8.length - 1);
while (_local10 > -1) {
if (((((_local9 % 3) == 0)) && ((_local6.length > 0)))){
_local6 = ("," + _local6);
_local9 = 0;
};
_local9++;
_local6 = (_local8.substr(_local10, 1) + _local6);
_local10--;
};
if (_local7[1] != undefined){
if (_arg3){
_local7[1] = (_local7[1] + "0000000000000000");
};
_local6 = (_local6 + ("." + _local7[1].substr(0, _arg2)));
} else {
if (((_arg3) && ((_arg2 > 0)))){
_local7[1] = "0000000000000000";
_local6 = (_local6 + ("." + _local7[1].substr(0, _arg2)));
};
};
if (_arg1 < 0){
_local6 = ("-" + _local6);
};
if (_arg5){
_local6 = _local6.replace(",", "");
};
if (_arg4){
_local6 = toDecimalSeperatorComma(_local6);
};
return (_local6);
}
}
}//package
Section 123
//object_helper (object_helper)
package {
public class object_helper {
public static function merge(_arg1:Object, _arg2:Object):Object{
var _local3:String;
for (_local3 in _arg2) {
if (_arg1[_local3] == undefined){
_arg1[_local3] = _arg2[_local3];
};
};
return (_arg1);
}
public static function merge_2(_arg1:Object, _arg2:Object):void{
var _local3:String;
for (_local3 in _arg1) {
_arg2[_local3] = _arg1[_local3];
};
}
}
}//package
Section 124
//Parser (Parser)
package {
public class Parser {
public static function getStringValue(_arg1:Object, _arg2:String, _arg3:Boolean):String{
if (Parser.isEmptyValue(_arg2)){
_arg2 = "";
};
if (Parser.isEmptyValue(_arg1)){
return (_arg2);
};
if (((!(_arg3)) && ((_arg1.length == 0)))){
return (_arg2);
};
return (String(_arg1));
}
public static function getNumberValue(_arg1:Object, _arg2:Number, _arg3:Boolean, _arg4:Boolean):Number{
if (((Parser.isEmptyValue(_arg2)) || (isNaN(_arg2)))){
_arg2 = 0;
};
if (Parser.isEmptyValue(_arg1)){
return (_arg2);
};
var _local5:Number = Number(_arg1);
if (isNaN(_local5)){
return (_arg2);
};
if (((!(_arg3)) && ((_local5 == 0)))){
return (_arg2);
};
if (((!(_arg4)) && ((_local5 < 0)))){
return (_arg2);
};
return (_local5);
}
public static function runTests():void{
var _local1:Number;
trace("testing Parser.getStringValue...");
trace((("1) stringOK '" + Parser.getStringValue("stringOK", "myDefault", true)) + "'"));
trace((("2) '' '" + Parser.getStringValue("", "myDefault", true)) + "'"));
trace((("3) myDefault '" + Parser.getStringValue("", "myDefault", false)) + "'"));
trace("testing Parser.getNumberValue...");
trace((("01) 999 '" + Parser.getNumberValue(999, 22222222, true, true)) + "'"));
trace((("02) 999 '" + Parser.getNumberValue("999", 22222222, true, true)) + "'"));
trace((("06) -1 '" + Parser.getNumberValue("abc", -1, false, false)) + "'"));
trace((("07) -1 '" + Parser.getNumberValue(null, -1, false, false)) + "'"));
trace((("11) 22222222 '" + Parser.getNumberValue(0, 22222222, false, false)) + "'"));
trace((("12) 22222222 '" + Parser.getNumberValue(-0.1, 22222222, false, false)) + "'"));
trace((("13) -0.1 '" + Parser.getNumberValue(-0.1, 22222222, false, true)) + "'"));
trace((("13) 22222222 '" + Parser.getNumberValue("-0.1x", 22222222, false, true)) + "'"));
trace("testing Parser.getBooleanValue...");
trace((("true '" + Parser.getBooleanValue("1", false)) + "'"));
trace((("true '" + Parser.getBooleanValue("-1", false)) + "'"));
trace((("false '" + Parser.getBooleanValue("0.000", false)) + "'"));
trace((("false '" + Parser.getBooleanValue("", false)) + "'"));
trace((("true '" + Parser.getBooleanValue("", true)) + "'"));
trace((("false '" + Parser.getBooleanValue("false", false)) + "'"));
trace((("false '" + Parser.getBooleanValue("xxx", false)) + "'"));
trace((("true '" + Parser.getBooleanValue("true", true)) + "'"));
trace((("true '" + Parser.getBooleanValue("TRUE", true)) + "'"));
trace((("true '" + Parser.getBooleanValue(" TRUE ", true)) + "'"));
}
public static function isEmptyValue(_arg1:Object):Boolean{
return (false);
}
public static function getBooleanValue(_arg1:Object, _arg2:Boolean):Boolean{
if (Parser.isEmptyValue(_arg1)){
return (_arg2);
};
var _local3:Number = Number(_arg1);
if (!isNaN(_local3)){
if (_local3 == 0){
return (false);
};
return (true);
};
var _local4:String = Parser.getStringValue(_arg1, "false", false);
_local4 = _local4.toLowerCase();
if (_local4.indexOf("true") != -1){
return (true);
};
return (false);
}
}
}//package
Section 125
//PointHLC (PointHLC)
package {
public class PointHLC {
public var high:Number;
public var width:Number;
public var low:Number;
public var bar_bottom:Number;
public var close:Number;
public function PointHLC(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):void{
this.width = _arg6;
this.high = _arg2;
this.close = _arg3;
this.low = _arg4;
}
public function get_tip_pos():Object{
return (null);
}
public function make_tooltip(_arg1:String, _arg2:String, _arg3:Number, _arg4:String, _arg5:String, _arg6:String):void{
super.make_tooltip(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6);
}
}
}//package
Section 126
//Properties (Properties)
package {
import flash.utils.*;
import string.*;
public class Properties {
private var _props:Dictionary;
private var _parent:Properties;
public function Properties(_arg1:Object, _arg2:Properties=null){
var _local3:String;
super();
this._props = new Dictionary();
this._parent = _arg2;
for (_local3 in _arg1) {
this._props[_local3] = _arg1[_local3];
};
}
public function die():void{
var _local1:Object;
if (this._parent){
this._parent.die();
};
for (_local1 in this._props) {
this._props[_local1] = null;
};
this._parent = null;
}
public function set(_arg1:String, _arg2:Object):void{
this._props[_arg1] = _arg2;
}
public function get_colour(_arg1:String):Number{
return (Utils.get_colour(this.get(_arg1)));
}
public function get(_arg1:String){
if (this._props[_arg1] != null){
return (this._props[_arg1]);
};
if (this._parent != null){
return (this._parent.get(_arg1));
};
var _local2:Error = new Error();
var _local3:String = _local2.getStackTrace();
tr.aces("ERROR: property not found", _arg1, _local3);
return (Number.NEGATIVE_INFINITY);
}
public function set_parent(_arg1:Properties):void{
if (this._parent != null){
_arg1.set_parent(this._parent);
};
this._parent = _arg1;
}
public function has(_arg1:String):Boolean{
if (this._props[_arg1] == null){
if (this._parent != null){
return (this._parent.has(_arg1));
};
return (false);
//unresolved jump
};
return (true);
}
}
}//package
Section 127
//Range (Range)
package {
public class Range {
public var min:Number;
public var offset:Boolean;
public var max:Number;
public var step:Number;
public function Range(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Boolean){
this.min = _arg1;
this.max = _arg2;
this.step = _arg3;
this.offset = _arg4;
}
public function toString():String{
return (((("Range : " + this.min) + ", ") + this.max));
}
public function count():Number{
if (this.offset){
return (((this.max - this.min) + 1));
};
return ((this.max - this.min));
}
}
}//package
Section 128
//ScreenCoords (ScreenCoords)
package {
import flash.geom.*;
public class ScreenCoords extends ScreenCoordsBase {
private var bar_groups:Number;
private var x_offset:Boolean;
private var y_right_range:Range;
private var y_offset:Boolean;
public var tick_offset:Number;
private var x_range:Range;
private var y_range:Range;
public function ScreenCoords(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Range, _arg6:Range, _arg7:Range, _arg8:Number, _arg9:Number, _arg10:Boolean){
super(_arg1, _arg2, _arg3, _arg4);
var _local11:Number = _arg2;
this.x_range = _arg7;
this.y_range = _arg5;
this.y_right_range = _arg6;
if (x_range){
_arg3 = this.jiggle(_arg2, _arg3, _arg9, _arg7.count());
_local11 = this.shrink_left(_arg2, _arg3, _arg8, _arg7.count());
};
this.top = _arg1;
this.left = Math.max(_arg2, _local11);
this.right = Math.floor(_arg3);
this.bottom = _arg4;
this.width = (this.right - this.left);
this.height = (_arg4 - _arg1);
if (_arg10){
this.tick_offset = 12;
} else {
this.tick_offset = 0;
};
if (_arg7){
this.x_offset = _arg7.offset;
};
if (_arg5){
this.y_offset = _arg5.offset;
};
this.bar_groups = 1;
}
public function set_bar_groups(_arg1:Number):void{
this.bar_groups = _arg1;
}
public function get_horiz_bar_coords(_arg1:Number, _arg2:Number):Object{
var _local3:Number = (this.height / this.y_range.count());
var _local4:Number = (_local3 * 0.8);
var _local5:Number = (_local4 / this.bar_groups);
var _local6:Number = (this.top + ((_local3 - _local4) / 2));
var _local7:Number = (_local6 + (_arg1 * _local3));
_local7 = (_local7 + (_local5 * _arg2));
return ({y:_local7, width:_local5});
}
public function makePointHLC(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Boolean, _arg6:Number, _arg7:Number):PointHLC{
var _local8:Number = (this.width_() / this.x_range.count());
var _local9:Number = (_local8 * 1);
var _local10:Number = (this.left_() + ((_local8 - _local9) / 2));
var _local11:Number = (_local9 / _arg7);
var _local12:Number = (_local10 + (_arg1 * _local8));
_local12 = (_local12 + (_local11 * _arg6));
return (new PointHLC(_local12, this.get_y_from_val(_arg2, _arg5), this.get_y_from_val(_arg3, _arg5), this.get_y_from_val(_arg4, _arg5), _arg2, _local11));
}
public function get_bar_coords(_arg1:Number, _arg2:Number):Object{
var _local3:Number = (this.width_() / this.x_range.count());
var _local4:Number = (_local3 * 0.8);
var _local5:Number = 0;
if (this.x_offset){
_local5 = _local3;
};
var _local6:Number = (_local4 / this.bar_groups);
var _local7:Number = (this.left_() + ((_local5 - _local4) / 2));
var _local8:Number = (_local7 + (_arg1 * _local3));
_local8 = (_local8 + (_local6 * _arg2));
return ({x:_local8, width:_local6});
}
public function jiggle_original(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
var _local6:Number;
var _local7:Number;
var _local5:Number = 0;
if (_arg3 != 0){
_local6 = ((_arg2 - _arg1) / _arg4);
_local5 = (_arg2 - (_local6 / 2));
_local7 = _arg2;
while ((_local5 + (_arg3 / 2)) > _arg2) {
--_local7;
_local6 = ((_local7 - _arg1) / _arg4);
_local5 = (_local7 - (_local6 / 2));
};
_arg2 = _local7;
};
return (_arg2);
}
public function width_():Number{
return ((this.right - this.left_()));
}
override public function get_y_from_val(_arg1:Number, _arg2:Boolean=false):Number{
var _local3:Range = (_arg2) ? this.y_right_range : this.y_range;
var _local4:Number = (this.height / _local3.count());
var _local5:Number = 0;
if (this.y_offset){
_local5 = (_local4 / 2);
};
return (((this.bottom - _local5) - (((_local3.min - _arg1) * _local4) * -1)));
}
public function jiggle(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((_arg2 - (_arg3 / 2)));
}
override public function get_get_x_from_pos_and_y_from_val(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Point{
return (new Point(this.get_x_from_pos(_arg1), this.get_y_from_val(_arg2, _arg3)));
}
public function get_x_tick_pos(_arg1:Number):Number{
return ((this.get_x_from_pos(_arg1) - this.tick_offset));
}
public function getY_old(_arg1:Number, _arg2:Boolean):Number{
var _local3:Range = (_arg2) ? this.y_right_range : this.y_range;
var _local4:Number = (this.height / _local3.count());
var _local5:Number = (this.bottom - (_local4 * (_local3.min * -1)));
_local5 = (_local5 - (_arg1 * _local4));
return (_local5);
}
override public function get_x_from_pos(_arg1:Number):Number{
var _local2 = (this.x_range.min > this.x_range.max);
var _local3:Number = this.x_range.count();
_local3 = (_local3 + (((_local2) && (this.x_range.offset))) ? -2 : 0);
var _local4:Number = Math.abs((this.width_() / _local3));
var _local5:Number = 0;
if (this.x_offset){
_local5 = (_local4 / 2);
};
return (((this.left_() + _local5) + (_arg1 * _local4)));
}
private function left_():Number{
var _local1:Number = this.tick_offset;
return ((this.left + _local1));
}
override public function get_y_bottom(_arg1:Boolean=false):Number{
var _local2:Range = (_arg1) ? this.y_right_range : this.y_range;
var _local3:Number = _local2.min;
var _local4:Number = _local2.max;
_local3 = Math.min(_local3, _local4);
return (this.get_y_from_val(Math.max(0, _local3), _arg1));
}
override public function get_x_from_val(_arg1:Number):Number{
var _local2 = (this.x_range.min > this.x_range.max);
var _local3:Number = this.x_range.count();
_local3 = (_local3 + (((_local2) && (this.x_range.offset))) ? -2 : 0);
var _local4:Number = (this.width_() / _local3);
var _local5:Number = (_arg1 - this.x_range.min);
var _local6:Number = 0;
if (this.x_offset){
_local6 = Math.abs((_local4 / 2));
};
return (((this.left_() + _local6) + (_local5 * _local4)));
}
public function shrink_left(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
var _local6:Number;
var _local7:Number;
var _local5:Number = 0;
if (_arg3 != 0){
_local6 = ((_arg2 - _arg1) / _arg4);
_local5 = (_arg1 + (_local6 / 2));
_local7 = _arg1;
while ((_local5 - (_arg3 / 2)) < 0) {
_local7 = (_local7 + 1);
_local6 = ((_arg2 - _local7) / _arg4);
_local5 = (_local7 + (_local6 / 2));
};
_arg1 = _local7;
};
return (_arg1);
}
}
}//package
Section 129
//ScreenCoordsBase (ScreenCoordsBase)
package {
import flash.geom.*;
public class ScreenCoordsBase {
public var width:Number;
public var left:Number;
public var bottom:Number;
public var top:Number;
public var right:Number;
public var height:Number;
public function ScreenCoordsBase(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){
this.top = _arg1;
this.left = _arg2;
this.right = _arg3;
this.bottom = _arg4;
this.width = (this.right - this.left);
this.height = (_arg4 - _arg1);
}
public function get_get_x_from_pos_and_y_from_val(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Point{
return (null);
}
public function get_x_from_val(_arg1:Number):Number{
return (-1);
}
public function get_x_from_pos(_arg1:Number):Number{
return (-1);
}
public function get_center_y():Number{
return (((this.height / 2) + this.top));
}
public function get_center_x():Number{
return (((this.width / 2) + this.left));
}
public function get_y_bottom(_arg1:Boolean=false):Number{
return (-1);
}
public function get_y_from_val(_arg1:Number, _arg2:Boolean=false):Number{
return (-1);
}
}
}//package
Section 130
//ScreenCoordsRadar (ScreenCoordsRadar)
package {
import flash.geom.*;
public class ScreenCoordsRadar extends ScreenCoordsBase {
private var angles:Number;
private var TO_RADIANS:Number;// = 0.0174532925199433
private var radius:Number;
private var angle:Number;
private var range:Range;
public function ScreenCoordsRadar(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){
super(_arg1, _arg2, _arg3, _arg4);
this.radius = (Math.min(this.width, this.height) / 2);
}
override public function get_get_x_from_pos_and_y_from_val(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Point{
var _local4:Point = this.get_pos((this.angle * _arg1), (_arg2 / this.range.count()));
this.get_pos((this.angle * _arg1), (_arg2 / this.range.count())).x = (_local4.x + this.get_center_x());
_local4.y = (_local4.y + this.get_center_y());
return (_local4);
}
public function get_pos(_arg1:Number, _arg2:Number):Point{
var _local3:Number = ((_arg1 - 90) * TO_RADIANS);
var _local4:Number = (this.get_radius() * _arg2);
var _local5:Point = new Point((_local4 * Math.cos(_local3)), (_local4 * Math.sin(_local3)));
return (_local5);
}
override public function get_y_from_val(_arg1:Number, _arg2:Boolean=false):Number{
var _local3:Point = this.get_pos(0, (_arg1 / this.range.count()));
_local3.y = (_local3.y + this.get_center_y());
return (_local3.y);
}
public function get_angles():Number{
return (this.angles);
}
public function get_radius():Number{
return (this.radius);
}
public function reduce_radius():void{
this.radius--;
}
public function set_angles(_arg1:Number):void{
this.angles = _arg1;
this.angle = (360 / _arg1);
}
public function set_range(_arg1:Range):void{
this.range = _arg1;
}
public function get_max():Number{
return (this.range.max);
}
}
}//package
Section 131
//Tooltip (Tooltip)
package {
import flash.geom.*;
import charts.series.*;
import flash.text.*;
import flash.display.*;
import caurina.transitions.*;
import flash.filters.*;
import string.*;
public class Tooltip extends Sprite {
private var tip_style:Number;
public var tip_text:String;
private var tip_showing:Boolean;
private var cached_elements:Array;
private var style:Object;
public static const NORMAL:Number = 2;
public static const CLOSEST:Number = 0;
public static const PROXIMITY:Number = 1;
public function Tooltip(_arg1:Object){
var _local2:DropShadowFilter;
super();
this.mouseEnabled = false;
this.tip_showing = false;
this.style = {shadow:true, rounded:6, stroke:2, colour:"#808080", background:"#f0f0f0", title:"color: #0000F0; font-weight: bold; font-size: 12;", body:"color: #000000; font-weight: normal; font-size: 12;", mouse:Tooltip.CLOSEST, text:"_default"};
if (_arg1){
this.style = object_helper.merge(_arg1, this.style);
};
this.style.colour = Utils.get_colour(this.style.colour);
this.style.background = Utils.get_colour(this.style.background);
this.style.title = new Css(this.style.title);
this.style.body = new Css(this.style.body);
this.tip_style = this.style.mouse;
this.tip_text = this.style.text;
this.cached_elements = [];
if (this.style.shadow == 1){
_local2 = new DropShadowFilter();
_local2.blurX = 4;
_local2.blurY = 4;
_local2.distance = 4;
_local2.angle = 45;
_local2.quality = 2;
_local2.alpha = 0.5;
this.filters = [_local2];
};
}
public function die():void{
this.filters = [];
this.graphics.clear();
while (this.numChildren > 0) {
this.removeChildAt(0);
};
this.style = null;
this.cached_elements = null;
}
public function draw(_arg1:has_tooltip):void{
if (this.cached_elements[0] == _arg1){
if (!this.tip_showing){
this.show_tip(_arg1);
};
} else {
this.untip();
this.cached_elements = [_arg1];
this.make_tip([_arg1]);
this.show_tip(_arg1);
};
}
private function make_title(_arg1:String):TextField{
var _local2:TextField = new TextField();
_local2.mouseEnabled = false;
_local2.htmlText = _arg1;
var _local3:TextFormat = new TextFormat();
_local3.color = this.style.title.color;
_local3.font = "Verdana";
_local3.bold = (this.style.title.font_weight == "bold");
_local3.size = this.style.title.font_size;
_local3.align = "right";
_local2.setTextFormat(_local3);
_local2.autoSize = "left";
return (_local2);
}
public function hide():void{
this.tip_showing = false;
tr.ace("hide tooltip");
Tweener.addTween(this, {alpha:0, time:0.6, transition:Equations.easeOutExpo, onComplete:hideAway});
}
public function make_tip(_arg1:Array):void{
var _local4:has_tooltip;
var _local5:Object;
this.graphics.clear();
while (this.numChildren > 0) {
this.removeChildAt(0);
};
var _local2:Number = 0;
var _local3:Number = 5;
for each (_local4 in _arg1) {
_local5 = this.make_one_tip(_local4, _local3);
_local2 = Math.max(_local2, _local5.height);
_local3 = (_local3 + (_local5.width + 2));
};
this.graphics.lineStyle(this.style.stroke, this.style.colour, 1);
this.graphics.beginFill(this.style.background, 1);
this.graphics.drawRoundRect(0, 0, (width + 10), (_local2 + 5), this.style.rounded, this.style.rounded);
}
private function hideAway():void{
this.visible = false;
this.untip();
this.cached_elements = new Array();
this.alpha = 1;
}
private function make_body(_arg1:String):TextField{
var _local2:TextField = new TextField();
_local2.mouseEnabled = false;
_local2.htmlText = _arg1;
var _local3:TextFormat = new TextFormat();
_local3.color = this.style.body.color;
_local3.font = "Verdana";
_local3.bold = (this.style.body.font_weight == "bold");
_local3.size = this.style.body.font_size;
_local3.align = "left";
_local2.setTextFormat(_local3);
_local2.autoSize = "left";
return (_local2);
}
private function is_cached(_arg1:Array):Boolean{
var _local2:has_tooltip;
if (this.cached_elements.length == 0){
return (false);
};
for each (_local2 in _arg1) {
if (this.cached_elements.indexOf(_local2) == -1){
return (false);
};
};
return (true);
}
private function show_tip(_arg1:has_tooltip):void{
Tweener.removeTweens(this);
var _local2:Point = this.get_pos(_arg1);
if (this.style.mouse == Tooltip.CLOSEST){
this.visible = true;
this.alpha = 1;
this.x = _local2.x;
this.y = _local2.y;
} else {
this.tip_showing = true;
tr.ace("show");
this.alpha = 0;
this.visible = true;
this.x = _local2.x;
this.y = _local2.y;
Tweener.addTween(this, {alpha:1, time:0.4, transition:Equations.easeOutExpo});
};
}
private function tip():void{
var _local1:has_tooltip;
for each (_local1 in this.cached_elements) {
_local1.set_tip(true);
};
}
public function closest(_arg1:Array):void{
if (_arg1.length == 0){
return;
};
if (this.is_cached(_arg1)){
return;
};
this.untip();
this.cached_elements = _arg1;
this.tip();
this.make_tip(_arg1);
var _local2:Point = this.get_pos(_arg1[0]);
this.visible = true;
Tweener.addTween(this, {x:_local2.x, time:0.3, transition:Equations.easeOutExpo});
Tweener.addTween(this, {y:_local2.y, time:0.3, transition:Equations.easeOutExpo});
}
public function get_tip_style():Number{
return (this.tip_style);
}
private function get_pos(_arg1:has_tooltip):Point{
var _local2:Object = _arg1.get_tip_pos();
var _local3:Number = ((((_local2.x + this.width) + 16) > this.stage.stageWidth)) ? ((this.stage.stageWidth - this.width) - 16) : _local2.x;
var _local4:Number = _local2.y;
_local4 = (_local4 - 4);
_local4 = (_local4 - (this.height + 10));
if (_local4 < 0){
_local4 = 0;
};
return (new Point(_local3, _local4));
}
public function set_tip_style(_arg1:Number):void{
this.tip_style = _arg1;
}
private function make_one_tip(_arg1:has_tooltip, _arg2:Number):Object{
var _local8:TextField;
var _local3:String = _arg1.get_tooltip();
var _local4:Array = _local3.split("<br>");
var _local5:Number = 5;
var _local6:Number = 0;
if (_local4.length > 1){
_local8 = this.make_title(_local4.shift());
_local8.mouseEnabled = false;
_local8.x = _arg2;
_local8.y = _local5;
_local5 = (_local5 + _local8.height);
_local6 = _local8.width;
this.addChild(_local8);
};
var _local7:TextField = this.make_body(_local4.join("\n"));
_local7.mouseEnabled = false;
_local7.x = _arg2;
_local7.y = _local5;
_local6 = Math.max(_local6, _local7.width);
this.addChild(_local7);
_local5 = (_local5 + _local7.height);
return ({width:_local6, height:_local5});
}
private function untip():void{
var _local1:has_tooltip;
for each (_local1 in this.cached_elements) {
_local1.set_tip(false);
};
}
}
}//package
Section 132
//tr (tr)
package {
import com.serialization.json.*;
import org.flashdevelop.utils.*;
public class tr {
public static function aces(... _args):void{
var _local3:Object;
var _local2:Array = [];
for each (_local3 in _args) {
if (_local3 == null){
_local2.push("null");
} else {
_local2.push(_local3.toString());
};
};
FlashConnect.trace(_local2.join(", "));
}
public static function ace(_arg1:Object):void{
if (_arg1 == null){
FlashConnect.trace("null");
} else {
FlashConnect.trace(_arg1.toString());
};
}
public static function ace_json(_arg1:Object):void{
tr.ace(JSON.serialize(_arg1));
}
public static function ace_full(_arg1:uint=3):void{
var _local4:Array;
var _local5:String;
var _local2:Error = new Error();
var _local3:String = _local2.getStackTrace();
if (_local3 == null){
FlashConnect.trace("(!debug) ");
} else {
_local4 = _local3.split("\n");
_local5 = tr.gimme_caller(_local4[_arg1]);
FlashConnect.trace(_local5);
};
}
private static function gimme_caller(_arg1:String):String{
var _local3:String;
var _local5:String;
var _local2:int = _arg1.indexOf("::");
if (_local2 == -1){
_local3 = _arg1.substr(4);
} else {
_local3 = _arg1.substr((_local2 + 2));
};
var _local4:int = _local3.indexOf("[");
if (_local4 == -1){
return ((("[" + _local3) + "]"));
};
_local5 = _local3.substr(_local3.lastIndexOf(":"));
_local3 = _local3.substr(0, _local4);
return ((("[" + _local3) + _local5));
}
}
}//package