Section 1
//Drawing (as3.Drawing)
package as3 {
import flash.display.*;
import flash.geom.*;
import fl.motion.*;
public class Drawing {
public static function drawHeart(_arg1:Graphics, _arg2:Number, _arg3:Number){
var _local4:Number;
var _local5:Number;
var _local6:Object;
var _local7:Object;
var _local8:Object;
var _local9:Object;
var _local10:Object;
var _local11:Object;
var _local12:Object;
var _local13:Object;
var _local14:Object;
var _local15:Object;
_local4 = (_arg3 / 1.5);
_local5 = (_arg2 / 1.5);
_local6 = {x:0, y:1};
_local7 = {x:1, y:0};
_local8 = {x:0, y:-1};
_local9 = {x:1.2, y:-0.5};
_local10 = {x:1, y:-1};
_local11 = {x:0.5, y:-1.2};
_local12 = Geometry.intersectLines(_local7.x, _local7.y, (_local7.x + 1), (_local7.y - 1), _local9.x, _local9.y, _local9.x, (_local9.y + 1));
_local13 = Geometry.intersectLines(_local10.x, _local10.y, (_local10.x + 1), (_local10.y + 1), _local9.x, _local9.y, _local9.x, (_local9.y + 1));
_local14 = Geometry.intersectLines(_local10.x, _local10.y, (_local10.x + 1), (_local10.y + 1), _local11.x, _local11.y, (_local11.x + 1), _local11.y);
_local15 = Geometry.intersectLines(_local8.x, _local8.y, (_local8.x + 1), (_local8.y - 1), _local11.x, _local11.y, (_local11.x + 1), _local11.y);
_arg1.moveTo((_local5 * _local6.x), (_local4 * _local6.y));
_arg1.lineTo((_local5 * _local7.x), (_local4 * _local7.y));
_arg1.curveTo((_local5 * _local12.x), (_local4 * _local12.y), (_local5 * _local9.x), (_local4 * _local9.y));
_arg1.curveTo((_local5 * _local13.x), (_local4 * _local13.y), (_local5 * _local10.x), (_local4 * _local10.y));
_arg1.curveTo((_local5 * _local14.x), (_local4 * _local14.y), (_local5 * _local11.x), (_local4 * _local11.y));
_arg1.curveTo((_local5 * _local15.x), (_local4 * _local15.y), (_local5 * _local8.x), (_local4 * _local8.y));
_arg1.curveTo((-(_local5) * _local15.x), (_local4 * _local15.y), (-(_local5) * _local11.x), (_local4 * _local11.y));
_arg1.curveTo((-(_local5) * _local14.x), (_local4 * _local14.y), (-(_local5) * _local10.x), (_local4 * _local10.y));
_arg1.curveTo((-(_local5) * _local13.x), (_local4 * _local13.y), (-(_local5) * _local9.x), (_local4 * _local9.y));
_arg1.curveTo((-(_local5) * _local12.x), (_local4 * _local12.y), (-(_local5) * _local7.x), (_local4 * _local7.y));
_arg1.lineTo((-(_local5) * _local6.x), (_local4 * _local6.y));
}
public static function getLinePoint(_arg1:Object, _arg2:Object, _arg3:Object):Object{
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
_local4 = (_arg2.x - _arg1.x);
_local5 = (_arg2.y - _arg1.y);
_local6 = Math.atan2(_local5, _local4);
_local7 = (_arg3.x - _arg2.x);
_local8 = (_arg3.y - _arg2.y);
_local9 = Math.atan2(_local8, _local7);
_local10 = Geometry.interpolateAngle(_local6, _local9, 0.5);
return ({x:(_arg2.x + (Math.cos(_local10) * 2)), y:(_arg2.y + (Math.sin(_local10) * 2))});
}
public static function drawPoints(_arg1:Array, _arg2:Graphics){
var _local3:int;
_local3 = 0;
while (_local3 < _arg1.length) {
_arg2.moveTo(_arg1[_local3].x, (_arg1[_local3].y - 0.5));
_arg2.lineTo(_arg1[_local3].x, (_arg1[_local3].y + 0.5));
_local3++;
};
}
public static function drawConnection(_arg1:Graphics, _arg2:Object, _arg3:Object, _arg4:Object, _arg5:Object, _arg6:Number){
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
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:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
var _local26:Number;
var _local27:Number;
var _local28:Number;
var _local29:Number;
var _local30:Number;
var _local31:Number;
var _local32:Number;
var _local33:Number;
var _local34:Number;
var _local35:Number;
var _local36:Number;
var _local37:Number;
var _local38:Number;
var _local39:Number;
var _local40:Number;
var _local41:Number;
var _local42:Number;
var _local43:Number;
var _local44:Number;
var _local45:Number;
var _local46:Object;
var _local47:Object;
_local7 = _arg2.x;
_local8 = _arg3.x;
_local9 = _arg2.y;
_local10 = _arg3.y;
_local14 = (_arg4.x - _local7);
_local15 = (_arg4.y - _local9);
_local16 = (_arg5.x - _local8);
_local17 = (_arg5.y - _local10);
_local18 = (((_local14) || (_local15))) ? (1 / Math.sqrt(((_local14 * _local14) + (_local15 * _local15)))) : 0;
_local19 = (_local14 * _local18);
_local20 = (_local15 * _local18);
_local18 = (((_local16) || (_local17))) ? (1 / Math.sqrt(((_local16 * _local16) + (_local17 * _local17)))) : 0;
_local21 = (_local16 * _local18);
_local22 = (_local17 * _local18);
_local11 = (_local8 - _local7);
_local12 = (_local10 - _local9);
_local13 = Math.sqrt(((_local11 * _local11) + (_local12 * _local12)));
_local23 = (_arg6 * _local13);
_local24 = (_local19 * _local23);
_local25 = (_local21 * _local23);
_local26 = (_local20 * _local23);
_local27 = (_local22 * _local23);
_local28 = (_local7 + _local24);
_local29 = (_local9 + _local26);
_local30 = (_local7 - _local24);
_local31 = (_local9 - _local26);
_local32 = (_local8 + _local25);
_local33 = (_local10 + _local27);
_local34 = (_local8 - _local25);
_local35 = (_local10 - _local27);
_local36 = (0.5 * (_local7 + _local8));
_local37 = (0.5 * (_local9 + _local10));
_local11 = (_local28 - _local36);
_local12 = (_local29 - _local37);
_local38 = ((_local11 * _local11) + (_local12 * _local12));
_local11 = (_local30 - _local36);
_local12 = (_local31 - _local37);
_local39 = ((_local11 * _local11) + (_local12 * _local12));
_local11 = (_local32 - _local36);
_local12 = (_local33 - _local37);
_local40 = ((_local11 * _local11) + (_local12 * _local12));
_local11 = (_local34 - _local36);
_local12 = (_local35 - _local37);
_local41 = ((_local11 * _local11) + (_local12 * _local12));
if (_local38 < _local39){
_local42 = _local28;
_local43 = _local29;
} else {
_local42 = _local30;
_local43 = _local31;
};
if (_local40 < _local41){
_local44 = _local32;
_local45 = _local33;
} else {
_local44 = _local34;
_local45 = _local35;
};
_arg1.curveTo(_local42, _local43, ((_local42 + _local44) * 0.5), ((_local43 + _local45) * 0.5));
_arg1.curveTo(_local44, _local45, _local8, _local10);
}
public static function drawKick(_arg1:Graphics, _arg2:Graphics, _arg3:Graphics, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number, _arg13:uint=0xFFFFFF, _arg14:uint=0xFFFFFF, _arg15:Number=1, _arg16=1){
var _local17:Number;
var _local18:Point;
var _local19:Number;
var _local20:Point;
var _local21:Point;
var _local22:Point;
var _local23:Point;
var _local24:Point;
var _local25:Point;
var _local26:Point;
var _local27:Point;
var _local28:Matrix;
var _local29:Number;
var _local30:Number;
var _local31:Number;
var _local32:Number;
var _local33:Number;
var _local34:Number;
var _local35:Number;
var _local36:Point;
var _local37:Number;
var _local38:Number;
var _local39:Number;
var _local40:Number;
var _local41:Number;
_local17 = 0.85;
_local18 = Geometry.rotatePoint(-(_arg8), new Point((_arg9 - _arg4), (_arg10 - _arg5)), null);
Geometry.rotatePoint(-(_arg8), new Point((_arg9 - _arg4), (_arg10 - _arg5)), null).x = (_local18.x / _arg6);
_local18.y = (_local18.y / _arg7);
_local19 = _local18.length;
_arg14 = Color.interpolateColor(_arg13, _arg14, _arg12);
_local29 = (_arg5 / _arg4);
if (_local19 < _local17){
_local30 = 0.5;
_local31 = (1 / _local17);
_local32 = ((1 - (_local30 * Math.abs(_local18.x))) * _arg11);
_local33 = ((1 - (_local30 * Math.abs(_local18.y))) * _arg11);
_local34 = (((Math.PI * 0.125) * (_local18.y * _local31)) * (-(_local18.x) * _local31));
_local35 = (((Math.PI * 0.125) * (_local18.x * _local31)) * (-(_local18.y) * _local31));
_local28 = new Matrix((_local32 * Math.cos(_local34)), (_local32 * Math.sin(_local34)), (_local33 * Math.sin(_local35)), (_local33 * Math.cos(_local35)));
_local28.tx = _arg9;
_local28.ty = _arg10;
_local36 = new Point(-1, 0);
_local24 = _local28.transformPoint(_local36);
_local36.x = 1;
_local25 = _local28.transformPoint(_local36);
_local36.x = 0;
_local36.y = -2;
_local22 = _local28.transformPoint(_local36);
_local36.y = 1;
_local23 = _local28.transformPoint(_local36);
_local37 = ((2 * Math.SQRT1_2) - 0.5);
_local36.x = -(_local37);
_local36.y = _local37;
_local26 = _local28.transformPoint(_local36);
_local36.x = _local37;
_local27 = _local28.transformPoint(_local36);
_local36.x = ((_local18.x * _arg12) * 0.75);
_local36.y = ((_local18.y * _arg12) * 0.75);
_local21 = _local28.transformPoint(_local36);
_local36.x = (((_local18.x * 0.75) * 2) * _arg12);
_local36.y = ((1 + ((Math.abs((_local18.y * 0.75)) - 1) * _arg12)) * 2);
_local20 = _local28.transformPoint(_local36);
_local28.createGradientBox(_arg11, _arg11, 0, (_local21.x - (_arg11 * 0.5)), (_local21.y - (_arg11 * 0.5)));
_arg1.beginGradientFill(GradientType.RADIAL, [_arg14, _arg13], [_arg16, _arg15], [0, 0xFF], _local28);
_arg1.moveTo(_local24.x, _local24.y);
_arg1.curveTo(_local22.x, _local22.y, _local25.x, _local25.y);
_arg1.curveTo(_local27.x, _local27.y, _local23.x, _local23.y);
_arg1.curveTo(_local26.x, _local26.y, _local24.x, _local24.y);
_arg1.endFill();
_arg2.moveTo(_local24.x, _local24.y);
_arg2.curveTo(_local20.x, _local20.y, _local25.x, _local25.y);
_arg2.curveTo(_local27.x, _local27.y, _local23.x, _local23.y);
_arg2.curveTo(_local26.x, _local26.y, _local24.x, _local24.y);
} else {
_local38 = _local18.x;
_local39 = _local18.y;
_local40 = (_arg8 + Math.atan2(_local39, _local38));
_local41 = ((_local38)<0) ? -1 : 1;
_local38 = Math.cos(_local40);
_local39 = Math.sin(_local40);
_local28 = new Matrix((_arg11 * _local38), (_arg11 * _local39), (_arg11 * -(_local39)), (_arg11 * _local38), _arg9, _arg10);
_local36 = new Point();
_local36.x = 0;
_local36.y = (-1 * _local41);
_local22 = _local28.transformPoint(_local36);
_local36.y = (1 * _local41);
_local23 = _local28.transformPoint(_local36);
_local36.x = 0.5;
_local36.y = (0 * _local41);
_local25 = _local28.transformPoint(_local36);
_local36.x = -0.5;
_local24 = _local28.transformPoint(_local36);
_local36.x = 0.5;
_local36.y = (-0.5 * _local41);
_local26 = _local28.transformPoint(_local36);
_local36.y = (0.5 * _local41);
_local27 = _local28.transformPoint(_local36);
_local36.x = 0.5;
_local36.y = 0;
_local20 = _local28.transformPoint(_local36);
_local36.x = (0.5 * ((_local18.y * 0.5) + 0.5));
_local36.y = ((2 + ((-0.5 - 2) * ((_local18.y * 0.5) + 0.5))) * _local41);
_local21 = _local28.transformPoint(_local36);
_arg3.moveTo(_local22.x, _local22.y);
_arg3.curveTo(_local26.x, _local26.y, _local25.x, _local25.y);
_arg3.curveTo(_local27.x, _local27.y, _local23.x, _local23.y);
_local28.createGradientBox(_arg11, _arg11, 0, (_local20.x - (_arg11 * 0.5)), (_local20.y - (_arg11 * 0.5)));
_arg1.beginGradientFill(GradientType.RADIAL, [_arg14, _arg13], [_arg16, _arg15], [0, 0xFF], _local28);
_arg1.moveTo(_local22.x, _local22.y);
_arg1.curveTo(_local26.x, _local26.y, _local25.x, _local25.y);
_arg1.curveTo(_local27.x, _local27.y, _local23.x, _local23.y);
_arg1.curveTo(_local24.x, _local24.y, _local22.x, _local22.y);
_arg1.endFill();
_arg2.moveTo(_local22.x, _local22.y);
_arg2.curveTo(_local21.x, _local21.y, _local25.x, _local25.y);
_arg2.curveTo(_local27.x, _local27.y, _local23.x, _local23.y);
_arg2.curveTo(_local24.x, _local24.y, _local22.x, _local22.y);
};
}
public static function getLinePoint2(_arg1:Object, _arg2:Object, _arg3:Object, _arg4:Object):void{
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
_local5 = _arg3.x;
_local6 = _arg3.y;
_local9 = (_local5 - _arg2.x);
_local10 = (_local6 - _arg2.y);
_local8 = (((_local9) || (_local10))) ? (1 / Math.sqrt(((_local9 * _local9) + (_local10 * _local10)))) : 0;
_local9 = (_local9 * _local8);
_local10 = (_local10 * _local8);
_local11 = (_arg4.x - _local5);
_local12 = (_arg4.y - _local6);
_local8 = (((_local11) || (_local12))) ? (1 / Math.sqrt(((_local11 * _local11) + (_local12 * _local12)))) : 0;
_local11 = (_local11 * _local8);
_local12 = (_local12 * _local8);
_arg1.x = ((_local5 + _local9) + _local11);
_arg1.y = ((_local6 + _local10) + _local12);
}
public static function drawSparkle(_arg1:Graphics, _arg2:Number, _arg3:int, _arg4:Number, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0){
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
if (_arg3 < 1){
return;
};
_local14 = ((Math.PI * 2) / _arg3);
_arg1.moveTo(((Math.cos(_arg5) * _arg2) + _arg6), (_arg7 + (Math.sin(_arg5) * _arg2)));
_local15 = 0;
while (_local15 < _arg3) {
_local8 = (Math.cos(((Number((_local15 + 1)) * _local14) + _arg5)) * _arg2);
_local9 = (Math.sin(((Number((_local15 + 1)) * _local14) + _arg5)) * _arg2);
_local10 = ((Math.cos(((Number((_local15 + 0.5)) * _local14) + _arg5)) * _arg2) * _arg4);
_local11 = ((Math.sin(((Number((_local15 + 0.5)) * _local14) + _arg5)) * _arg2) * _arg4);
_local12 = ((Math.cos(((Number((_local15 + 0.25)) * _local14) + _arg5)) * _arg2) * _arg4);
_local13 = ((Math.sin(((Number((_local15 + 0.25)) * _local14) + _arg5)) * _arg2) * _arg4);
_arg1.curveTo((_arg6 + _local12), (_arg7 + _local13), (_arg6 + _local10), (_arg7 + _local11));
_local12 = ((Math.cos(((Number((_local15 + 0.75)) * _local14) + _arg5)) * _arg2) * _arg4);
_local13 = ((Math.sin(((Number((_local15 + 0.75)) * _local14) + _arg5)) * _arg2) * _arg4);
_arg1.curveTo((_arg6 + _local12), (_arg7 + _local13), (_arg6 + _local8), (_arg7 + _local9));
_local15++;
};
}
public static function drawCurvyLine(_arg1:Graphics, _arg2:Object, _arg3:Array, _arg4:Object, _arg5:Number=0.25){
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:Object;
var _local10:Object;
var _local11:Object;
var _local12:Object;
var _local13:Object;
var _local14:Object;
var _local15:Object;
_local7 = _arg3.length;
_local8 = (_local7 - 1);
if (_arg2 == null){
_arg2 = _arg3[0];
};
if (_arg4 == null){
_arg4 = _arg3[_local8];
};
_local11 = new Object();
_local12 = new Object();
_local6 = 1;
while (_local6 < _local7) {
_local13 = _arg3[(_local6 - 1)];
_local14 = _arg3[_local6];
if (_local6 < _local8){
getLinePoint2(_local11, _local13, _local14, _arg3[(_local6 + 1)]);
_local9 = _local11;
} else {
_local9 = _arg4;
};
if (_local6 > 1){
getLinePoint2(_local12, _arg3[(_local6 - 2)], _local13, _local14);
_local10 = _local12;
} else {
_local10 = _arg2;
};
drawConnection(_arg1, _local13, _local14, _local10, _local9, _arg5);
_local6++;
};
}
public static function drawStar(_arg1:Graphics, _arg2:Number, _arg3:uint, _arg4:Number, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0){
var _local8:int;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
_local8 = 0;
if (!_arg3){
return;
};
_local9 = (_arg2 * _arg4);
_local10 = (Math.PI / _arg3);
_local11 = ((-(Math.PI) * 0.5) + _arg5);
_arg3 = (_arg3 << 1);
_local8 = 0;
while (_local8 <= _arg3) {
if ((_local8 % 2)){
_local12 = (_arg6 + (Math.cos(_local11) * _local9));
_local13 = (_arg7 + (Math.sin(_local11) * _local9));
} else {
_local12 = (_arg6 + (Math.cos(_local11) * _arg2));
_local13 = (_arg7 + (Math.sin(_local11) * _arg2));
};
if (!_local8){
_arg1.moveTo(_local12, _local13);
} else {
_arg1.lineTo(_local12, _local13);
};
_local11 = (_local11 + _local10);
_local8++;
};
}
public static function controlPointIntersect(_arg1:Object, _arg2:Object, _arg3:Object, _arg4:Object):Object{
var _local5:Object;
var _local6:Object;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
_local5 = Geometry.intersectLines(_arg1.x, _arg1.y, _arg2.x, _arg2.y, _arg3.x, _arg3.y, _arg4.x, _arg4.y);
if (!_local5){
return (null);
};
_local6 = {x:((_arg2.x + _arg3.x) * 0.5), y:((_arg2.y + _arg3.y) * 0.5)};
_local7 = (_arg3.x - _arg2.x);
_local8 = (_arg3.y - _arg2.y);
_local9 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8)));
_local10 = (_local5.x - _local6.x);
_local11 = (_local5.y - _local6.y);
_local12 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11)));
if (_local12 > _local9){
return (null);
};
return ({x:(_local6.x + ((_local5.x - _local6.x) * 0.5)), y:(_local6.y + ((_local5.y - _local6.y) * 0.5))});
}
public static function drawPolygon(_arg1:Array, _arg2:Graphics){
var _local3:int;
_arg2.moveTo(_arg1[0].x, _arg1[0].y);
_local3 = 1;
while (_local3 < _arg1.length) {
_arg2.lineTo(_arg1[_local3].x, _arg1[_local3].y);
_local3++;
};
}
public static function drawClosedCurve(_arg1:Array, _arg2:Graphics):Array{
var _local3:Point;
var _local4:Point;
var _local5:Point;
var _local6:Point;
var _local7:Array;
var _local8:int;
var _local9:Object;
if (_arg1.length < 3){
return ([]);
};
_local7 = new Array();
_arg2.moveTo(_arg1[0].x, _arg1[0].y);
_local8 = 0;
while (_local8 < _arg1.length) {
_local3 = _arg1[_local8];
_local4 = _arg1[(int(((_arg1.length + _local8) - 1)) % _arg1.length)];
_local5 = _arg1[(int((_local8 + 1)) % _arg1.length)];
_local6 = _arg1[(int((_local8 + 2)) % _arg1.length)];
_local9 = controlPointIntersect(_local4, _local3, _local5, _local6);
if (_local9 == null){
_arg2.lineTo(_local5.x, _local5.y);
} else {
_local7.push(_local9);
_arg2.curveTo(_local9.x, _local9.y, _local5.x, _local5.y);
};
_local8++;
};
return (_local7);
}
}
}//package as3
Section 2
//Geometry (as3.Geometry)
package as3 {
import flash.display.*;
import flash.geom.*;
public class Geometry {
public static const DEG_TO_RAD:Number = 0.0174532925199433;
public static const RAD_TO_DEG:Number = 57.2957795130823;
public static const TOLERANCE:Number = 1E-5;
function regularPolygonArea(_arg1:Number, _arg2:int){
var _local3:Number;
var _local4:Number;
if (_arg2 < 3){
return (0);
};
_local3 = ((Math.PI * 2) / _arg2);
_local4 = (Math.sin(_local3) * _arg1);
return ((((_local4 * _arg1) * 0.5) * _arg2));
}
public static function intersectLines(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Boolean=false):Object{
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Object;
var _local19:Boolean;
var _local20:Boolean;
_local10 = (_arg1 - _arg3);
_local11 = (_arg5 - _arg7);
_local12 = (_arg2 - _arg4);
_local13 = (_arg6 - _arg8);
_local14 = ((_arg1 * _arg4) - (_arg2 * _arg3));
_local15 = ((_arg5 * _arg8) - (_arg6 * _arg7));
_local16 = ((_local10 * _local13) - (_local12 * _local11));
if (!_local16){
return (null);
};
_local17 = (1 / _local16);
_local18 = {x:(((_local14 * _local11) - (_local10 * _local15)) * _local17), y:(((_local14 * _local13) - (_local12 * _local15)) * _local17)};
if (_arg9){
_local19 = pointInsideRect(_local18.x, _local18.y, _arg1, _arg2, _arg3, _arg4);
_local20 = pointInsideRect(_local18.x, _local18.y, _arg5, _arg6, _arg7, _arg8);
if (((!(_local19)) || (!(_local20)))){
return (null);
};
};
return (_local18);
}
public static function pointFromEllipse(_arg1:Object, _arg2:Object):Object{
var _local3:Point;
var _local4:Object;
_local3 = new Point();
_local3.x = (_arg1.x + ((_arg1.radius * Math.cos(_arg2.angle)) * _arg2.distance));
_local3.y = (_arg1.y + (((_arg1.radius * _arg1.excentricity) * Math.sin(_arg2.angle)) * _arg2.distance));
_local4 = rotate(_arg1.rotation, _local3.x, _local3.y, _arg1.x, _arg1.y);
return (new Point(_local4.x, _local4.y));
}
public static function polygonArea(_arg1:Array):Number{
var _local2:Point;
var _local3:Point;
var _local4:Number;
if (_arg1.length < 3){
return (0);
};
_local4 = 0;
return (_local4);
}
public static function getEllipse(_arg1:DisplayObject):Object{
var obj:Object;
var rect:Rectangle;
var clip = _arg1;
obj = {};
rect = clip.getRect(clip);
obj.x = clip.x;
obj.y = clip.y;
obj.radius = (-(rect.x) * clip.scaleX);
obj.rotation = ((clip.rotation * Math.PI) / 180);
obj.excentricity = (clip.scaleY / clip.scaleX);
obj.toString = function (){
return ((((((((((("[ x=" + this.x) + ", y=") + this.y) + ", radius=") + this.radius) + ", rotation=") + this.rotation) + ", excentricity=") + this.excentricity) + " ]"));
};
return (obj);
}
public static function pointToEllipse(_arg1:Object, _arg2:Object):Object{
var obj:Object;
var untranslated:Point;
var unrotated:Object;
var unexcentered:Point;
var unscaled:Point;
var point = _arg1;
var ellipse = _arg2;
obj = {};
untranslated = new Point((point.x - ellipse.x), (point.y - ellipse.y));
unrotated = rotate(-(ellipse.rotation), untranslated.x, untranslated.y);
unexcentered = new Point(unrotated.x, (unrotated.y / ellipse.excentricity));
unscaled = new Point((unexcentered.x / ellipse.radius), (unexcentered.y / ellipse.radius));
obj.distance = Math.sqrt(((unscaled.x * unscaled.x) + (unscaled.y * unscaled.y)));
obj.hDist = unscaled.x;
obj.vDist = unscaled.y;
obj.normal = (Math.atan2(unscaled.y, unscaled.x) + ellipse.rotation);
obj.angle = Math.atan2(unscaled.y, unscaled.x);
obj.rotation = ellipse.rotation;
obj.toString = function (){
return ((((((((((((("[ distance=" + obj.distance) + ", normal=") + obj.normal) + ", angle=") + obj.angle) + ", hDist=") + obj.hDist) + ", vDist=") + obj.vDist) + ", rotation=") + obj.rotation) + " ]"));
};
return (obj);
}
public static function getOuterPoints(_arg1:Array):Array{
var _local2:Array;
var _local3:Point;
var _local4:int;
var _local5:Array;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Point;
var _local11:int;
var _local12:Number;
var _local13:Point;
var _local14:int;
var _local15:Number;
var _local16:Number;
_local2 = _arg1.concat();
_local3 = _local2[0];
_local4 = 1;
while (_local4 < _local2.length) {
if (_local2[_local4].y < _local3.y){
_local3 = _local2[_local4];
};
_local4++;
};
_local5 = [_local3];
_local6 = Infinity;
_local8 = 0;
_local9 = 0;
_local10 = _local5[0];
_local11 = _local2.length;
while (1) {
_local12 = (Math.PI * 2);
_local13 = null;
_local4 = 0;
while (_local4 < _local2.length) {
_local7 = Math.atan2((_local2[_local4].y - _local5[(_local5.length - 1)].y), (_local2[_local4].x - _local5[(_local5.length - 1)].x));
_local16 = getLowestPositiveAngle((_local7 - _local8));
if ((((_local16 <= _local12)) && (!((_local2[_local4] == _local5[(_local5.length - 1)]))))){
_local13 = _local2[_local4];
_local12 = _local16;
};
_local4++;
};
if ((((_local13 == null)) || ((((_local13 == _local5[0])) && ((_local5.length > 1)))))){
break;
};
_local15 = _local8;
_local8 = getLowestPositiveAngle(Math.atan2((_local13.y - _local5[(_local5.length - 1)].y), (_local13.x - _local5[(_local5.length - 1)].x)));
_local9 = (_local9 + getLowestPositiveAngle((_local8 - _local15)));
if (_local9 >= (Math.PI * 2)){
break;
};
_local5.push(_local13);
--_local11;
if (!_local11){
trace(("FAILURE: " + (_local9 - (Math.PI * 2))), "\n");
break;
};
};
if ((((_local5.length > 2)) && ((_local5[(_local5.length - 1)] == _local5[1])))){
_local5.pop();
};
return (_local5);
}
public static function getSidePoints(_arg1:Array, _arg2:Number):Array{
var _local3:int;
var _local4:Number;
var _local5:Number;
var _local6:Array;
var _local7:Point;
var _local8:Point;
var _local9:Number;
var _local10:Number;
var _local11:Array;
var _local12:Number;
var _local13:Number;
_local4 = Infinity;
_local5 = -(Infinity);
_local3 = 0;
while (_local3 < _arg1.length) {
if (_arg1[_local3].y < _local4){
_local4 = _arg1[_local3].y;
};
if (_arg1[_local3].y > _local5){
_local5 = _arg1[_local3].y;
};
_local3++;
};
if (_arg2 < _local4){
_arg2 = _local4;
} else {
if (_arg2 > _local5){
_arg2 = _local5;
};
};
_local6 = [];
_local3 = 0;
while (_local3 < _arg1.length) {
_local7 = _arg1[_local3];
_local8 = _arg1[((_local3 + 1) % _arg1.length)];
if ((((((_arg2 <= _local7.y)) && ((_arg2 >= _local8.y)))) || ((((_arg2 >= _local7.y)) && ((_arg2 <= _local8.y)))))){
if (_local8.y == _local7.y){
_local6.push(new Point(_local7.x, _local7.y));
_local6.push(new Point(_local8.x, _local8.y));
} else {
_local12 = ((_arg2 - _local7.y) / (_local8.y - _local7.y));
_local13 = (_local7.x + ((_local8.x - _local7.x) * _local12));
_local6.push(new Point(_local13, _arg2));
};
};
_local3++;
};
_local9 = Infinity;
_local10 = -(Infinity);
_local3 = 0;
while (_local3 < _local6.length) {
_local7 = _local6[_local3];
if (_local7.x < _local9){
_local9 = _local7.x;
};
if (_local7.x > _local10){
_local10 = _local7.x;
};
_local3++;
};
_local11 = [];
_local3 = 0;
while (_local3 < _local6.length) {
if (_local6[_local3].x <= (_local9 + TOLERANCE)){
_local11[0] = _local6[_local3];
};
if (_local6[_local3].x >= (_local10 - TOLERANCE)){
_local11[1] = _local6[_local3];
};
_local3++;
};
return (_local11);
}
public static function projectPointOnLine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Object{
var _local7:Object;
var _local8:Object;
_local7 = getNormal(_arg3, _arg4, _arg5, _arg6);
_local8 = intersectLines(_arg1, _arg2, (_arg1 + _local7.x), (_arg2 + _local7.y), _arg3, _arg4, _arg5, _arg6, false);
if (_local8 == null){
throw ("Unexpected error in Geometry::closestPointToLine. Perpendicular lines aren't intersecting!\n");
};
return (_local8);
}
private static function getLowestPositiveAngle(_arg1:Number):Number{
var _local2:Number;
_local2 = _arg1;
while (_local2 < 0) {
_local2 = (_local2 + (Math.PI * 2));
};
while (_local2 >= (Math.PI * 2)) {
_local2 = (_local2 - (Math.PI * 2));
};
return (_local2);
}
public static function generateRegularPolygon(_arg1:Number, _arg2:Number):Array{
var _local3:Array;
var _local4:Number;
var _local5:int;
_local3 = new Array(_arg1);
_local4 = ((Math.PI * 2) / _arg1);
_local5 = 0;
while (_local5 < _arg1) {
_local3[_local5] = new Point();
_local3[_local5].x = (_arg2 * Math.cos((_local5 * _local4)));
_local3[_local5].y = (_arg2 * Math.sin((_local5 * _local4)));
_local5++;
};
return (_local3);
}
public static function triangleArea(_arg1:Point, _arg2:Point, _arg3:Point):Number{
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
_local4 = (_arg2.x - _arg1.x);
_local5 = (_arg3.x - _arg1.x);
_local6 = (_arg2.y - _arg1.y);
_local7 = (_arg3.y - _arg1.y);
return ((0.5 * Math.abs(((_local4 * _local7) - (_local5 * _local6)))));
}
public static function pointInsideRect(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number){
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
if (_arg3 < _arg5){
_local7 = _arg3;
_local9 = _arg5;
} else {
_local7 = _arg5;
_local9 = _arg3;
};
if (_arg4 < _arg6){
_local8 = _arg4;
_local10 = _arg6;
} else {
_local8 = _arg6;
_local10 = _arg4;
};
_local11 = 0.0001;
return (!((((((((_arg1 < (_local7 - _local11))) || ((_arg1 > (_local9 + _local11))))) || ((_arg2 < (_local8 - _local11))))) || ((_arg2 > (_local10 + _local11))))));
}
public static function interpolateAngle(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number;
var _local5:Number;
while (_arg1 < 0) {
_arg1 = (_arg1 + (Math.PI * 2));
};
while (_arg2 < 0) {
_arg2 = (_arg2 + (Math.PI * 2));
};
while (_arg1 >= (Math.PI * 2)) {
_arg1 = (_arg1 - (Math.PI * 2));
};
while (_arg2 >= (Math.PI * 2)) {
_arg2 = (_arg2 - (Math.PI * 2));
};
if (_arg1 > _arg2){
if ((_arg1 - _arg2) > Math.PI){
_arg1 = (_arg1 - (Math.PI * 2));
};
} else {
if ((_arg2 - _arg1) > Math.PI){
_arg2 = (_arg2 - (Math.PI * 2));
};
};
_local5 = (_arg1 + (_arg3 * (_arg2 - _arg1)));
while (_local5 > Math.PI) {
_local5 = (_local5 - (Math.PI * 2));
};
while (_local5 < -(Math.PI)) {
_local5 = (_local5 + (Math.PI * 2));
};
return (_local5);
}
public static function rotate(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0, _arg5:Number=0):Object{
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
_local6 = (_arg2 - _arg4);
_local7 = (_arg3 - _arg5);
_local8 = Math.cos(_arg1);
_local9 = Math.sin(_arg1);
return ({x:((_arg4 + (_local6 * _local8)) - (_local7 * _local9)), y:((_arg5 + (_local6 * _local9)) + (_local7 * _local8))});
}
public static function rotatePoint(_arg1:Number, _arg2:Point, _arg3:Point=null):Point{
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
if (_arg3 == null){
_local5 = 0;
_local4 = _local5;
} else {
_local4 = _arg3.x;
_local5 = _arg3.y;
};
_local6 = (_arg2.x - _local4);
_local7 = (_arg2.y - _local5);
_local8 = Math.cos(_arg1);
_local9 = Math.sin(_arg1);
return (new Point(((_local4 + (_local6 * _local8)) - (_local7 * _local9)), ((_local5 + (_local6 * _local9)) + (_local7 * _local8))));
}
public static function getNormal(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Object{
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Object;
_local5 = (_arg1 - _arg3);
_local6 = (_arg2 - _arg4);
_local7 = Math.sqrt(((_local5 * _local5) + (_local6 * _local6)));
if (!_local7){
return ({x:0, y:0});
};
_local8 = {x:(_local6 / _local7), y:(-(_local5) / _local7)};
return (_local8);
}
public static function intersectPolygons(_arg1:Array, _arg2:Array){
var _local3:int;
var _local4:int;
var _local5:Array;
var _local6:Point;
var _local7:Point;
var _local8:Point;
var _local9:Point;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Object;
var _local15:int;
var _local16:int;
_local3 = (_arg1.length - 1);
_local4 = (_arg2.length - 1);
_local5 = [];
if ((((_local3 < 2)) || ((_local4 < 2)))){
return;
};
_local15 = 0;
while (_local15 < _local3) {
_local6 = _arg1[_local15];
_local7 = _arg1[(_local15 + 1)];
_local10 = _local6.x;
_local11 = _local6.y;
_local12 = _local7.x;
_local13 = _local7.y;
_local16 = 0;
while (_local16 < _local4) {
_local8 = _arg2[_local16];
_local9 = _arg2[(_local16 + 1)];
_local14 = intersectLines(_local10, _local11, _local12, _local13, _local8.x, _local8.y, _local9.x, _local9.y, true);
if (_local14){
_local5[_local5.length] = new Point(_local14.x, _local14.y);
};
_local16++;
};
_local8 = _arg2[_local16];
_local9 = _arg2[0];
_local14 = intersectLines(_local10, _local11, _local12, _local13, _local8.x, _local8.y, _local9.x, _local9.y, true);
if (_local14){
_local5[_local5.length] = new Point(_local14.x, _local14.y);
};
_local15++;
};
_local6 = _arg1[_local15];
_local7 = _arg1[0];
_local10 = _local6.x;
_local11 = _local6.y;
_local12 = _local7.x;
_local13 = _local7.y;
_local16 = 0;
while (_local16 < _local4) {
_local8 = _arg2[_local16];
_local9 = _arg2[(_local16 + 1)];
_local14 = intersectLines(_local10, _local11, _local12, _local13, _local8.x, _local8.y, _local9.x, _local9.y, true);
if (_local14){
_local5[_local5.length] = new Point(_local14.x, _local14.y);
};
_local16++;
};
_local8 = _arg2[_local16];
_local9 = _arg2[0];
_local14 = intersectLines(_local10, _local11, _local12, _local13, _local8.x, _local8.y, _local9.x, _local9.y, true);
if (_local14){
_local5[_local5.length] = new Point(_local14.x, _local14.y);
};
return (_local5);
}
}
}//package as3
Section 3
//Color (fl.motion.Color)
package fl.motion {
import flash.display.*;
import flash.geom.*;
public class Color extends ColorTransform {
private var _tintMultiplier:Number;// = 0
private var _tintColor:Number;// = 0
public function Color(_arg1:Number=1, _arg2:Number=1, _arg3:Number=1, _arg4:Number=1, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0, _arg8:Number=0){
_tintColor = 0;
_tintMultiplier = 0;
super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8);
}
public function setTint(_arg1:uint, _arg2:Number):void{
var _local3:uint;
var _local4:uint;
var _local5:uint;
this._tintColor = _arg1;
this._tintMultiplier = _arg2;
this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = (1 - _arg2)));
_local3 = ((_arg1 >> 16) & 0xFF);
_local4 = ((_arg1 >> 8) & 0xFF);
_local5 = (_arg1 & 0xFF);
this.redOffset = Math.round((_local3 * _arg2));
this.greenOffset = Math.round((_local4 * _arg2));
this.blueOffset = Math.round((_local5 * _arg2));
}
public function set tintColor(_arg1:uint):void{
this.setTint(_arg1, this.tintMultiplier);
}
public function get brightness():Number{
return ((this.redOffset) ? (1 - this.redMultiplier) : (this.redMultiplier - 1));
}
private function deriveTintColor():uint{
var _local1:Number;
var _local2:uint;
var _local3:uint;
var _local4:uint;
var _local5:uint;
_local1 = (1 / this.tintMultiplier);
_local2 = Math.round((this.redOffset * _local1));
_local3 = Math.round((this.greenOffset * _local1));
_local4 = Math.round((this.blueOffset * _local1));
_local5 = (((_local2 << 16) | (_local3 << 8)) | _local4);
return (_local5);
}
public function get tintMultiplier():Number{
return (this._tintMultiplier);
}
public function get tintColor():uint{
return (this._tintColor);
}
public function set brightness(_arg1:Number):void{
var _local2:Number;
var _local3:Number;
if (_arg1 > 1){
_arg1 = 1;
} else {
if (_arg1 < -1){
_arg1 = -1;
};
};
_local2 = (1 - Math.abs(_arg1));
_local3 = 0;
if (_arg1 > 0){
_local3 = (_arg1 * 0xFF);
};
this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = _local2));
this.redOffset = (this.greenOffset = (this.blueOffset = _local3));
}
public function set tintMultiplier(_arg1:Number):void{
this.setTint(this.tintColor, _arg1);
}
private function parseXML(_arg1:XML=null):Color{
var _local2:XML;
var _local3:XML;
var _local4:String;
var _local5:uint;
if (!_arg1){
return (this);
};
_local2 = _arg1.elements()[0];
if (!_local2){
return (this);
};
for each (_local3 in _local2.attributes()) {
_local4 = _local3.localName();
if (_local4 == "tintColor"){
_local5 = (Number(_local3.toString()) as uint);
this.tintColor = _local5;
} else {
this[_local4] = Number(_local3.toString());
};
};
return (this);
}
public static function interpolateColor(_arg1:uint, _arg2:uint, _arg3:Number):uint{
var _local4:Number;
var _local5:uint;
var _local6:uint;
var _local7:uint;
var _local8:uint;
var _local9:uint;
var _local10:uint;
var _local11:uint;
var _local12:uint;
var _local13:uint;
var _local14:uint;
var _local15:uint;
var _local16:uint;
var _local17:uint;
_local4 = (1 - _arg3);
_local5 = ((_arg1 >> 24) & 0xFF);
_local6 = ((_arg1 >> 16) & 0xFF);
_local7 = ((_arg1 >> 8) & 0xFF);
_local8 = (_arg1 & 0xFF);
_local9 = ((_arg2 >> 24) & 0xFF);
_local10 = ((_arg2 >> 16) & 0xFF);
_local11 = ((_arg2 >> 8) & 0xFF);
_local12 = (_arg2 & 0xFF);
_local13 = ((_local5 * _local4) + (_local9 * _arg3));
_local14 = ((_local6 * _local4) + (_local10 * _arg3));
_local15 = ((_local7 * _local4) + (_local11 * _arg3));
_local16 = ((_local8 * _local4) + (_local12 * _arg3));
_local17 = ((((_local13 << 24) | (_local14 << 16)) | (_local15 << 8)) | _local16);
return (_local17);
}
public static function interpolateTransform(_arg1:ColorTransform, _arg2:ColorTransform, _arg3:Number):ColorTransform{
var _local4:Number;
var _local5:ColorTransform;
_local4 = (1 - _arg3);
_local5 = new ColorTransform(((_arg1.redMultiplier * _local4) + (_arg2.redMultiplier * _arg3)), ((_arg1.greenMultiplier * _local4) + (_arg2.greenMultiplier * _arg3)), ((_arg1.blueMultiplier * _local4) + (_arg2.blueMultiplier * _arg3)), ((_arg1.alphaMultiplier * _local4) + (_arg2.alphaMultiplier * _arg3)), ((_arg1.redOffset * _local4) + (_arg2.redOffset * _arg3)), ((_arg1.greenOffset * _local4) + (_arg2.greenOffset * _arg3)), ((_arg1.blueOffset * _local4) + (_arg2.blueOffset * _arg3)), ((_arg1.alphaOffset * _local4) + (_arg2.alphaOffset * _arg3)));
return (_local5);
}
public static function fromXML(_arg1:XML):Color{
return (Color(new (Color).parseXML(_arg1)));
}
}
}//package fl.motion
Section 4
//eye1_3 (sapphireStuffing_fla.eye1_3)
package sapphireStuffing_fla {
import flash.display.*;
public dynamic class eye1_3 extends MovieClip {
public var pupil:MovieClip;
}
}//package sapphireStuffing_fla
Section 5
//MainTimeline (sapphireStuffing_fla.MainTimeline)
package sapphireStuffing_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import as3.*;
import flash.text.*;
import flash.ui.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.media.*;
import flash.net.*;
import flash.printing.*;
import flash.system.*;
import flash.utils.*;
import flash.xml.*;
public dynamic class MainTimeline extends MovieClip {
public var size:int;
public var foodItems:Array;
public var eye1:MovieClip;
public var eye2:MovieClip;
public var pressed:int;
public var apple_food:MovieClip;
public var itemsEaten:int;
public var cake8_food:MovieClip;
public var _reset:MovieClip;
public var chicken2_food:MovieClip;
public var cake5_food:MovieClip;
public var choco2_food:MovieClip;
public var lcd_stolen_bg:MovieClip;
public var cake2_food:MovieClip;
public var bounds:Rectangle;
public var mouth:MovieClip;
public var sapphire:MovieClip;
public var cake9_food:MovieClip;
public var chicken3_food:MovieClip;
public var mouthFrame:int;
public var cake6_food:MovieClip;
public var choco3_food:MovieClip;
public var _revert:MovieClip;
public var sizeProp:Number;
public var expanding:int;
public var cake3_food:MovieClip;
public var plate:MovieClip;
public var hand_mc:MovieClip;
public var maxSize:int;
public var cake7_food:MovieClip;
public var chicken1_food:MovieClip;
public var _txt:TextField;
public var pickedItem:DisplayObject;
public var _expand:MovieClip;
public var eyeFrame:int;
public var lcd_stolen_item:MovieClip;
public var cake4_food:MovieClip;
public var choco1_food:MovieClip;
public var pickedPosition:Point;
public var rubCount:int;
public var lcd_stolen:String;
public var plate2:MovieClip;
public var numItems:int;
public var cake1_food:MovieClip;
public function MainTimeline(){
addFrameScript(0, frame1);
}
public function eFrame(_arg1:Event){
mouthFrame = ((size)<(sapphire.totalFrames * 0.75)) ? 1 : 2;
eyeFrame = ((size)<(sapphire.totalFrames * 0.75)) ? 1 : 2;
if (rubCount > 0){
rubCount--;
mouthFrame = (eyeFrame = 3);
};
if (expanding > 0){
if (size < sapphire.totalFrames){
size++;
} else {
expanding = 0;
};
} else {
if (expanding < 0){
if (size > 1){
size--;
} else {
expanding = 0;
};
};
};
if (mouth.currentFrame == mouthFrame){
if (sapphire.currentFrame < size){
sapphire.gotoAndStop((sapphire.currentFrame + 1));
} else {
if ((((sapphire.currentFrame > (size + 1))) && ((sapphire.currentFrame > 1)))){
sapphire.gotoAndStop((sapphire.currentFrame - 1));
};
};
} else {
if ((((mouth.currentLabel == "endeat")) || ((mouth.currentFrame < 5)))){
mouth.gotoAndStop(mouthFrame);
};
};
if ((((Math.random() > 0.99)) && (!((mouthFrame == 3))))){
eye1.gotoAndPlay("blink");
eye2.gotoAndPlay("blink");
} else {
if (eye1.currentFrame > 4){
eye1.play();
eye2.play();
if (eye1.currentLabel == "endblink"){
eye1.gotoAndStop(eyeFrame);
eye2.gotoAndStop(eyeFrame);
};
} else {
eye1.gotoAndStop(eyeFrame);
eye2.gotoAndStop(eyeFrame);
};
};
}
public function dragItem(_arg1:Event){
pickedItem.x = mouseX;
pickedItem.y = mouseY;
}
function frame1(){
lcd_stolen = new LocalConnection().domain;
if (lcd_stolen.indexOf("swfchan") != -1){
stop();
lcd_stolen_bg = new MovieClip();
while (numChildren) {
removeChildAt(0);
};
lcd_stolen_bg.graphics.beginFill(0xFFFFFF);
lcd_stolen_bg.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
lcd_stolen_bg.graphics.endFill();
lcd_stolen_item = new MovieClip();
lcd_stolen_item.tF = new TextFormat();
lcd_stolen_item.tF.bold = true;
lcd_stolen_item.tF.size = 64;
lcd_stolen_item.tF.color = 0xFF2200;
lcd_stolen_item.tF.font = "Trebuchet MS";
lcd_stolen_item.txt = new TextField();
lcd_stolen_item.txt.defaultTextFormat = lcd_stolen_item.tF;
lcd_stolen_item.txt.text = "swfchan.com";
lcd_stolen_item.txt.width = (lcd_stolen_item.txt.textWidth + 5);
lcd_stolen_item.txt.height = (lcd_stolen_item.txt.textHeight + 5);
lcd_stolen_item.bmp = new Bitmap(new BitmapData((lcd_stolen_item.txt.textWidth + 5), (lcd_stolen_item.txt.textHeight + 5), true, 0));
lcd_stolen_item.bmp.bitmapData.draw(lcd_stolen_item.txt);
lcd_stolen_item.bmp.x = (lcd_stolen_item.bmp.x - (lcd_stolen_item.bmp.width * 0.5));
lcd_stolen_item.bmp.y = (lcd_stolen_item.bmp.y - (lcd_stolen_item.bmp.height * 0.5));
lcd_stolen_item.addChild(lcd_stolen_item.bmp);
delete lcd_stolen_item.txt;
delete lcd_stolen_item.tF;
lcd_stolen_item.x = (Math.random() * stage.stageWidth);
lcd_stolen_item.y = (Math.random() * stage.stageWidth);
lcd_stolen_item.vX = (5 + (Math.random() * 10));
lcd_stolen_item.vY = (5 + (Math.random() * 10));
lcd_stolen_item.vR = (1 + ((Math.random() * 5) * ((Math.random())<0.5) ? -1 : 1));
stage.addChild(lcd_stolen_bg);
stage.addChild(lcd_stolen_item);
stage.addEventListener(Event.RESIZE, function (_arg1:Event){
lcd_stolen_bg.graphics.clear();
lcd_stolen_bg.graphics.beginFill(0xFFFFFF);
lcd_stolen_bg.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
lcd_stolen_bg.graphics.endFill();
});
stage.addEventListener(Event.ENTER_FRAME, function (_arg1:Event){
lcd_stolen_item.x = (lcd_stolen_item.x + lcd_stolen_item.vX);
lcd_stolen_item.y = (lcd_stolen_item.y + lcd_stolen_item.vY);
lcd_stolen_item.rotation = (lcd_stolen_item.rotation + lcd_stolen_item.vR);
bounds = lcd_stolen_item.getBounds(stage);
if ((((((bounds.left < 0)) && ((lcd_stolen_item.vX < 0)))) || ((((bounds.right > stage.stageWidth)) && ((lcd_stolen_item.vX > 0)))))){
lcd_stolen_item.vX = -(lcd_stolen_item.vX);
};
if ((((((bounds.top < 0)) && ((lcd_stolen_item.vY < 0)))) || ((((bounds.bottom > stage.stageHeight)) && ((lcd_stolen_item.vY > 0)))))){
lcd_stolen_item.vY = -(lcd_stolen_item.vY);
};
});
return;
};
stage.scaleMode = StageScaleMode.SHOW_ALL;
mouthFrame = 1;
eyeFrame = 1;
sapphire.gotoAndStop(1);
eye1.gotoAndStop(eyeFrame);
eye2.gotoAndStop(eyeFrame);
mouth.gotoAndStop(1);
numItems = 0;
itemsEaten = 0;
pickedItem = null;
pickedPosition = new Point();
sizeProp = 0;
maxSize = sapphire.totalFrames;
size = 0;
expanding = 0;
foodItems = [];
rubCount = 0;
setup();
resetAllItems();
_reset.addEventListener(MouseEvent.MOUSE_DOWN, resetAllItems);
_expand.addEventListener(MouseEvent.MOUSE_DOWN, expand);
_revert.addEventListener(MouseEvent.MOUSE_DOWN, revert);
pressed = 0;
stage.addEventListener("keyDown", kDown, false, 0, true);
sapphire.breast1.addEventListener(MouseEvent.MOUSE_DOWN, startRub);
sapphire.breast2.addEventListener(MouseEvent.MOUSE_DOWN, startRub);
sapphire.belly.addEventListener(MouseEvent.MOUSE_DOWN, startRub);
hand_mc.visible = false;
_txt = new TextField();
stage.addChild(_txt);
_txt.text = "Interactive Sapphire Weight Gain\nProgrammed and Animated by Doom the wolf\nhttp://doom-the-wolf.deviantart.com";
_txt.width = (_txt.textWidth + 5);
_txt.height = (_txt.textHeight + 5);
_txt.x = (800 - _txt.width);
_txt.y = (550 - _txt.height);
_txt.selectable = false;
stage.addEventListener(Event.ENTER_FRAME, eFrame);
}
public function setup(_arg1:Event=null){
var _local2:Sprite;
var _local3:int;
sapphire.gotoAndStop(1);
numItems = 0;
itemsEaten = 0;
foodItems.length = 0;
_local3 = 0;
while (_local3 < numChildren) {
_local2 = (getChildAt(_local3) as Sprite);
if (((!((_local2 == null))) && ((_local2.name.indexOf("_food") > -1)))){
_local2.addEventListener(MouseEvent.MOUSE_DOWN, pickItem, false, 0, true);
numItems++;
};
_local3++;
};
}
public function expand(_arg1:Event){
if (expanding != 1){
expanding = 1;
} else {
expanding = 0;
};
}
public function dropItem(_arg1:Event){
pickedItem.visible = !(mouth.hitTestPoint(stage.mouseX, stage.mouseY, true));
pickedItem.x = pickedPosition.x;
pickedItem.y = pickedPosition.y;
if (!pickedItem.visible){
itemsEaten++;
sizeProp = (Number(itemsEaten) / numItems);
size = (sizeProp * maxSize);
mouth.gotoAndPlay("eat");
_reset.visible = Boolean((itemsEaten == numItems));
_revert.visible = (_expand.visible = _reset.visible);
};
stage.removeEventListener(MouseEvent.MOUSE_MOVE, dragItem, false);
stage.removeEventListener(MouseEvent.MOUSE_UP, dropItem, false);
}
public function startRub(_arg1:Event){
Mouse.hide();
stage.addEventListener(MouseEvent.MOUSE_MOVE, rubbing, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_UP, endRub, false, 0, true);
}
public function pickItem(_arg1:Event){
if (mouth.currentFrame != mouthFrame){
return;
};
pickedItem = (_arg1.currentTarget as DisplayObject);
pickedPosition.x = pickedItem.x;
pickedPosition.y = pickedItem.y;
pickedItem.x = mouseX;
pickedItem.y = mouseY;
stage.addEventListener(MouseEvent.MOUSE_MOVE, dragItem, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_UP, dropItem, false, 0, true);
}
public function resetAllItems(_arg1:Event=null){
var _local2:Sprite;
var _local3:int;
itemsEaten = 0;
pressed = 0;
size = 0;
sizeProp = 0;
_revert.visible = (_expand.visible = (_reset.visible = false));
_local3 = 0;
while (_local3 < numChildren) {
_local2 = (getChildAt(_local3) as Sprite);
if (((!((_local2 == null))) && ((_local2.name.indexOf("_food") > -1)))){
_local2.visible = true;
};
_local3++;
};
}
public function heartMove(_arg1:Event){
var _local2:MovieClip;
var _local3:int;
_local2 = (_arg1.currentTarget as MovieClip);
if (isNaN(_local2.vX)){
_local2.vX = ((Math.random() * 8) - 4);
_local2.fX = ((Math.random() * 0.2) - 0.1);
_local2.timer = 40;
_local2.x = (_local2.x + ((Math.random() * 16) - 8));
_local2.y = (_local2.y + ((Math.random() * 16) - 8));
_local2.oldX = _local2.x;
_local2.oldY = _local2.y;
} else {
if (_local2.timer > 0){
_local2.timer--;
_local2.alpha = ((_local2.timer * _local2.timer) / (40 * 40));
_local2.vX = (_local2.vX + _local2.fX);
_local3 = 8;
if (_local2.vX < -(_local3)){
_local2.vX = -(_local3);
};
if (_local2.vX > _local3){
_local2.vX = _local3;
};
_local2.fX = (_local2.fX + ((((_local2.oldX - _local2.x) * 0.02) - (Math.random() * 0.02)) - 0.01));
} else {
_local2.removeEventListener("enterFrame", heartMove);
_local2.parent.removeChild(_local2);
};
};
_local2.x = (_local2.x + _local2.vX);
_local2.y = (_local2.y - 3);
}
public function rubbing(_arg1:Event){
var _local2:MovieClip;
hand_mc.x = stage.mouseX;
hand_mc.y = stage.mouseY;
if (((((sapphire.breast1.hitTestPoint(stage.mouseX, stage.mouseY, true)) || (sapphire.breast2.hitTestPoint(stage.mouseX, stage.mouseY, true)))) || (sapphire.belly.hitTestPoint(stage.mouseX, stage.mouseY, true)))){
rubCount = 10;
hand_mc.visible = true;
if (Math.random() < 0.1){
_local2 = new MovieClip();
_local2.graphics.lineStyle(2, 0xFFFFFF, 0.75);
_local2.graphics.beginFill(16764142, 1);
_local2.x = stage.mouseX;
_local2.y = stage.mouseY;
Drawing.drawHeart(_local2.graphics, 10, 10);
_local2.graphics.endFill();
_local2.addEventListener("enterFrame", heartMove, false, 0, true);
stage.addChild(_local2);
};
} else {
hand_mc.visible = false;
};
}
public function endRub(_arg1:Event){
Mouse.show();
hand_mc.visible = false;
stage.removeEventListener(MouseEvent.MOUSE_MOVE, rubbing);
stage.removeEventListener(MouseEvent.MOUSE_UP, endRub);
}
public function kDown(_arg1:Event){
pressed++;
if (pressed == 10){
_expand.visible = (_revert.visible = (_reset.visible = true));
};
}
public function revert(_arg1:Event){
if (expanding != -1){
expanding = -1;
} else {
expanding = 0;
};
}
}
}//package sapphireStuffing_fla
Section 6
//sapphire_1 (sapphireStuffing_fla.sapphire_1)
package sapphireStuffing_fla {
import flash.display.*;
public dynamic class sapphire_1 extends MovieClip {
public var breast1:MovieClip;
public var breast2:MovieClip;
public var belly:MovieClip;
}
}//package sapphireStuffing_fla