Section 1
//Algorithms (as3.Algorithms)
package as3 {
import flash.display.*;
import flash.geom.*;
public class Algorithms {
public static function insertIntoArray(_arg1, _arg2:Array):Boolean{
var _local3:int;
_local3 = 0;
while (_local3 < _arg2.length) {
if (_arg2[_local3] == _arg1){
return (false);
};
_local3++;
};
_arg2.push(_arg1);
return (true);
}
public static function orderPointsClockwise(_arg1:Array):Array{
var _local2:int;
var _local3:Object;
var _local4:Array;
var _local5:Array;
var _local6:Number;
var _local7:int;
var _local8:int;
_local3 = new Object();
_local3.x = (_local3.y = 0);
_local2 = 0;
while (_local2 < _arg1.length) {
_local3.x = (_local3.x + _arg1[_local2].x);
_local3.y = (_local3.y + _arg1[_local2].y);
_local2++;
};
_local3.x = (_local3.x / _arg1.length);
_local3.y = (_local3.y / _arg1.length);
_local4 = new Array(_arg1.length);
_local2 = 0;
while (_local2 < _arg1.length) {
_local4[_local2] = Math.atan2((_arg1[_local2].y - _local3.y), (_arg1[_local2].x - _local3.x));
_local2++;
};
_local5 = new Array();
_local2 = 0;
while (_local2 < _arg1.length) {
_local6 = Infinity;
_local7 = -1;
_local8 = 0;
while (_local8 < _arg1.length) {
if (((!(isNaN(_local4[_local8]))) && ((_local4[_local8] < _local6)))){
_local7 = _local8;
_local6 = _local4[_local8];
};
_local8++;
};
_local5.push(_arg1[_local7]);
_local4[_local7] = NaN;
_local2++;
};
return (_local5);
}
public static function pointsToShape(_arg1:Array):Array{
var _local2:Array;
var _local3:Object;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:*;
_local2 = new Array();
_local6 = 0;
_local7 = 0;
while (_local7 < (_arg1.length - 1)) {
_local3 = new Object();
_local4 = (_arg1[(_local7 + 1)].x - _arg1[_local7].x);
_local5 = (_arg1[(_local7 + 1)].y - _arg1[_local7].y);
_local3.length = Math.floor(_pointShapeDistance(_arg1[_local7], _arg1[(_local7 + 1)]));
if (Math.abs(_local4) > (Math.abs(_local5) * 3)){
_local3.dir = ((_local4 > 0)) ? "r" : "l";
} else {
if (Math.abs(_local5) > (Math.abs(_local4) * 3)){
_local3.dir = ((_local5 > 0)) ? "d" : "u";
} else {
_local3.dir = ((_local5 > 0)) ? "d" : "u";
_local3.dir = (_local3.dir + ((_local4 > 0)) ? "r" : "l");
};
};
_local2.push(_local3);
_local6 = Math.max(_local6, _local3.length);
_local7++;
};
_local7 = 0;
while (_local7 < _local2.length) {
if (_local2[_local7].length < (_local6 / 5)){
_local2.splice(_local7, 1);
_local7--;
};
if ((((_local7 > 0)) && ((_local2[_local7].dir == _local2[(_local7 - 1)].dir)))){
_local2[(_local7 - 1)].length = (_local2[(_local7 - 1)].length + _local2[_local7].length);
_local2.splice(_local7, 1);
_local7--;
};
_local7++;
};
_local7 = 0;
while (_local7 < _local2.length) {
switch (_local2[_local7].dir){
case "ur":
_local2[_local7] = "e";
break;
case "dr":
_local2[_local7] = "f";
break;
case "dl":
_local2[_local7] = "g";
break;
case "ul":
_local2[_local7] = "h";
break;
default:
_local2[_local7] = _local2[_local7].dir;
};
_local7++;
};
return (_local2);
}
public static function deform(_arg1:MovieClip, _arg2:Number, _arg3:Number){
var _local4:Matrix;
var _local5:Matrix;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Matrix;
var _local10:Number;
var _local11:Number;
var _local12:Number;
_local4 = new Matrix();
_local4.a = 1;
_local4.b = 0;
_local4.c = 0;
_local4.d = 1;
_local5 = new Matrix();
_local5.a = ((1 + (Math.abs(_arg2) * _arg1.deformDist)) - (Math.abs(_arg3) * _arg1.deformDist));
_local5.b = 0;
_local5.c = 0;
_local5.d = ((1 + (Math.abs(_arg3) * _arg1.deformDist)) - (Math.abs(_arg2) * _arg1.deformDist));
_local6 = Math.sqrt(((_arg2 * _arg2) + (_arg3 * _arg3)));
_local7 = 0;
_local8 = (Boolean(((_arg2 * _arg3) < 0))) ? -1 : 1;
if (_local6){
_local10 = Math.atan2(_arg3, _arg2);
_local11 = Math.floor(((_local10 * 8) / Number((Math.PI * 2))));
_local12 = (_local10 - (((_local11 * Math.PI) * 2) / 8));
_local7 = (_local12 / Number((Math.PI * 0.25)));
if ((_local11 % 2)){
_local7 = (1 - _local7);
};
};
_local9 = new Matrix();
_local9.a = 1;
_local9.b = ((((_local8 * _local7) * _arg1.maxAngle) * _arg1.deformDist) * _local6);
_local9.c = ((((_local8 * _local7) * _arg1.maxAngle) * _arg1.deformDist) * _local6);
_local9.d = 1;
_local4.concat(_local5);
_local4.concat(_local9);
_local4.tx = _arg1.transform.matrix.tx;
_local4.ty = _arg1.transform.matrix.ty;
_arg1.transform.matrix = _local4;
}
public static function deformMatrix(_arg1:Matrix, _arg2:Number, _arg3:Number, _arg4:Number=1){
var _local5:Matrix;
var _local6:Number;
var _local7:Matrix;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Matrix;
var _local16:Number;
var _local17:Number;
var _local18:Number;
_local5 = new Matrix();
_local5.a = 1;
_local5.b = 0;
_local5.c = 0;
_local5.d = 1;
_local6 = ((Math.abs(_arg2) - Math.abs(_arg3)) * _arg4);
_local7 = new Matrix();
_local7.a = (1 + _local6);
_local7.b = 0;
_local7.c = 0;
_local7.d = (1 - _local6);
_local8 = (Math.PI * 0.25);
_local9 = ((Math.PI * 2) / 8);
_local10 = (1 / _local9);
_local11 = (Math.sqrt(((_arg2 * _arg2) + (_arg3 * _arg3))) * _arg4);
_local12 = 0;
_local13 = (Boolean(!(((_arg2 <= 0) == (_arg3 <= 0))))) ? -1 : 1;
if (_local11){
_local16 = Math.atan2(_arg3, _arg2);
_local17 = Math.floor((_local16 * _local10));
_local18 = (_local16 - (_local17 * _local9));
_local12 = (_local18 / Number(_local8));
if ((_local17 % 2)){
_local12 = (1 - _local12);
};
};
_local14 = ((_local13)<0) ? ((-(_local12) * _local8) * _local11) : ((_local12 * _local8) * _local11);
_local15 = new Matrix();
_local15.a = 1;
_local15.b = _local14;
_local15.c = _local14;
_local15.d = 1;
_local5.concat(_local7);
_local5.concat(_local15);
_arg1.a = _local5.a;
_arg1.b = _local5.b;
_arg1.c = _local5.c;
_arg1.d = _local5.d;
}
public static function isInArray(_arg1, _arg2:Array):Boolean{
var _local3:int;
_local3 = 0;
while (_local3 < _arg2.length) {
if (_arg2[_local3] == _arg1){
return (true);
};
_local3++;
};
return (false);
}
public static function removeFromArray(_arg1, _arg2:Array):Boolean{
var _local3:int;
_local3 = 0;
while (_local3 < _arg2.length) {
if (_arg2[_local3] == _arg1){
_arg2.splice(_local3, 1);
return (true);
};
_local3++;
};
return (false);
}
private static function _pointShapeDistance(_arg1:Object, _arg2:Object):Number{
return (Math.sqrt((Math.pow((_arg2.x - _arg1.x), 2) + Math.pow((_arg2.y - _arg1.y), 2))));
}
public static function simplifyPointsList(_arg1:Array):Array{
var _local2:Array;
var _local3:Number;
var _local4:*;
_local2 = new Array();
_local3 = 0;
_local2.push(_arg1[0]);
_local4 = 1;
while (_local4 < (_arg1.length - 1)) {
if ((((Math.abs((_pointShapeAngle(_arg1[(_local4 + 1)], _arg1[_local4]) - _pointShapeAngle(_arg1[_local4], _arg1[(_local4 - 1)]))) >= (Math.PI / 2.5))) || ((Math.abs(_local3) >= (Math.PI / 3))))){
_local2.push(_arg1[_local4]);
_local3 = 0;
} else {
_local3 = (_local3 + (_pointShapeAngle(_arg1[(_local4 + 1)], _arg1[_local4]) - _pointShapeAngle(_arg1[_local4], _arg1[(_local4 - 1)])));
};
_local4++;
};
_local2.push(_arg1[(_arg1.length - 1)]);
return (_local2);
}
private static function _pointShapeAngle(_arg1:Object, _arg2:Object):Number{
return (Math.atan2((_arg2.y - _arg1.y), (_arg2.x - _arg1.x)));
}
public static function balancePoint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:int=1):Array{
var _local8:Array;
var _local9:int;
_local8 = [_arg1, _arg2, _arg3];
_local9 = 0;
while (_local9 < _arg7) {
_local8 = [(_local8[0] + (_arg2 * _arg4)), ((_local8[1] * _arg4) + _local8[2]), ((_arg5 - _local8[0]) * _arg6)];
_local9++;
};
return (_local8);
}
public static function myGetShape(_arg1:Array):String{
var _local2:Array;
var _local3:Number;
var _local4:String;
var _local5:String;
_local2 = simplifyPointsList(_arg1);
_local5 = pointsToShape(_local2).join("");
switch (_local5){
case "d":
return ("|v");
case "u":
return ("|^");
case "ef":
case "hg":
return ("^");
case "dr":
case "lu":
return ("L");
case "ur":
case "ld":
return ("Γ");
case "ldr":
case "lur":
return ("[");
case "ufu":
case "dhd":
return ("N");
default:
return ("");
};
}
public static function updateHand(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Array, _arg5:Array, _arg6:Object){
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
_local7 = (Math.PI * 0.5);
_arg1.x = _arg2;
_arg1.y = _arg3;
_arg4[0] = Geometry.interpolateAngle(_arg4[0], _arg5[0], 0.2);
_arg4[1] = Geometry.interpolateAngle(_arg4[1], _arg5[1], 0.2);
if (_arg5.length >= 3){
_arg4[2] = Geometry.interpolateAngle(_arg4[2], _arg5[2], 0.2);
} else {
_arg4[2] = Geometry.interpolateAngle(_arg4[2], 0, 0.2);
};
if (_arg4[0] > _local7){
_arg4[0] = _local7;
} else {
if (_arg4[0] < -(_local7)){
_arg4[0] = -(_local7);
};
};
if (_arg4[1] > _local7){
_arg4[1] = _local7;
} else {
if (_arg4[1] < -(_local7)){
_arg4[1] = -(_local7);
};
};
_local8 = Math.abs((_arg4[2] / _local7));
if (_arg4[0] < 0){
_arg1.addChildAt(_arg1.thumb_mc, 0);
} else {
_arg1.addChildAt(_arg1.thumb_mc, (_arg1.numChildren - 1));
};
if (_arg4[1] > 0){
_arg1.addChildAt(_arg1.wrist_mc, 0);
} else {
_arg1.addChildAt(_arg1.wrist_mc, (_arg1.numChildren - 1));
};
_local9 = (_arg4[0] / _local7);
_local10 = (_arg4[1] / _local7);
_local11 = Math.abs(_local9);
_local12 = Math.abs(_local10);
_local13 = ((((_local9 * _local10) * _local7) * (1 - _local8)) + (_local8 * _arg4[2]));
_arg1.glove_mc.scaleX = (_arg6.glove.max.x - (((_arg6.glove.max.x - _arg6.glove.min.x) * _local11) * (1 - _local12)));
_arg1.wrist_mc.scaleX = (_arg6.wrist.max.x - (((_arg6.wrist.max.x - _arg6.wrist.min.x) * _local11) * (1 - _local12)));
_arg1.thumb_mc.x = (_arg6.orig.thumbX + (((_arg6.end.thumbX - _arg6.orig.thumbX) * _local11) * (1 - _local12)));
_arg1.glove_mc.scaleY = (_arg6.glove.max.y - (((_arg6.glove.max.y - _arg6.glove.min.y) * _local12) * (1 - _local11)));
_arg1.thumb_mc.scaleY = _arg1.glove_mc.scaleY;
_arg1.wrist_mc.scaleY = (_arg6.wrist.min.y + (((_arg6.wrist.max.y - _arg6.wrist.min.y) * _local12) * (1 - _local11)));
_arg1.wrist_mc.y = (_arg6.orig.wristY + (((_arg6.end.wristY - _arg6.orig.wristY) * _local12) * (1 - _local11)));
_arg1.rotation = (_arg4[2] * Geometry.RAD_TO_DEG);
}
public static function liquidInPolygon(_arg1:Number, _arg2:Array, _arg3:Number, _arg4:Number):Array{
var _local5:Number;
var _local6:Number;
var _local7:Object;
var _local8:int;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Array;
var _local13:Array;
var _local14:Array;
var _local15:Point;
var _local16:Number;
var _local17:Number;
var _local18:int;
_local5 = -(Infinity);
_local6 = Infinity;
_local8 = 0;
while (_local8 < _arg2.length) {
_local7 = Geometry.rotate(_arg1, _arg2[_local8].x, _arg2[_local8].y);
_arg2[_local8].x = _local7.x;
_arg2[_local8].y = _local7.y;
_local5 = Math.max(_arg2[_local8].y, _local5);
_local6 = Math.min(_arg2[_local8].y, _local6);
_local8++;
};
_local9 = (_arg4 * _arg3);
_local10 = 0;
_local11 = 0;
_local13 = [];
_local14 = [];
_local15 = new Point();
_local16 = Math.abs((_local5 - _local6));
_local17 = ((_local6 + _local5) * 0.5);
_local18 = 50;
do {
_local13 = Geometry.getSidePoints(_arg2, _local17);
_local14 = [];
_local8 = 0;
while (_local8 < _arg2.length) {
if (_arg2[_local8].y >= _local17){
_local14.push(_arg2[_local8]);
};
_local8++;
};
_local12 = _local13.concat(_local14);
_local12 = orderPointsClockwise(_local12);
trace("Algorithm::liquidInPolygon\nYou'll have to fix this later. Try to connect the 'sides' and 'lower' arrays coherently.\nAvoid having to use the orderPointsClockwise() function.");
_local10 = Geometry.polygonArea(_local12);
_local17 = (_local17 - ((_local16 * (_local9 - _local10)) / _arg4));
_local18--;
} while ((((Math.abs((_local10 - _local9)) > Geometry.TOLERANCE)) && ((_local18 > 0))));
_local8 = 0;
while (_local8 < _local12.length) {
_local7 = Geometry.rotate(-(_arg1), _local12[_local8].x, _local12[_local8].y);
_local12[_local8].x = _local7.x;
_local12[_local8].y = _local7.y;
_local8++;
};
return (_local12);
}
public static function hasLabel(_arg1:MovieClip, _arg2:String):Boolean{
var _local3:Array;
var _local4:FrameLabel;
var _local5:int;
_local3 = _arg1.currentLabels;
_local5 = 0;
while (_local5 < _local3.length) {
_local4 = _local3[_local5];
if (_local4.name == _arg2){
return (true);
};
_local5++;
};
return (false);
}
public static function adjustScreen(_arg1:DisplayObject, _arg2:DisplayObject){
var _local3:Stage;
var _local4:Rectangle;
if (!_arg1.stage){
return;
};
_local3 = _arg1.stage;
_local4 = _arg2.getRect(_local3);
if (_local4.width < _local3.stageWidth){
_arg1.scaleX = (_arg1.scaleX * (_local3.stageWidth / _local4.width));
_arg1.scaleY = _arg1.scaleX;
_local4 = _arg2.getRect(_local3);
};
if (_local4.height < _local3.stageHeight){
_arg1.scaleY = (_arg1.scaleY * (_local3.stageHeight / _local4.height));
_arg1.scaleX = _arg1.scaleY;
_local4 = _arg2.getRect(_local3);
};
if (_local4.x > 0){
_arg1.x = (_arg1.x - _local4.x);
_local4 = _arg2.getRect(_local3);
};
if (_local4.y > 0){
_arg1.y = (_arg1.y - _local4.y);
_local4 = _arg2.getRect(_local3);
};
if ((_local4.x + _local4.width) < _local3.stageWidth){
_arg1.x = (_arg1.x + (_local3.stageWidth - (_local4.x + _local4.width)));
_local4 = _arg2.getRect(_local3);
};
if ((_local4.y + _local4.height) < _local3.stageHeight){
_arg1.y = (_arg1.y + (_local3.stageHeight - (_local4.y + _local4.height)));
_local4 = _arg2.getRect(_local3);
};
}
public static function approximatePoint(_arg1:Number, _arg2:Number, _arg3:Number):Number{
return ((_arg1 + ((_arg2 - _arg1) * _arg3)));
}
}
}//package as3
Section 2
//Drawing (as3.Drawing)
package as3 {
import flash.display.*;
import flash.geom.*;
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 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;
_local7 = _arg3.length;
_local8 = (_local7 - 1);
if (_arg2 == null){
_arg2 = _arg3[0];
};
if (_arg4 == null){
_arg4 = _arg3[_local8];
};
_local6 = 1;
while (_local6 < _local7) {
if (_local6 < _local8){
_local9 = getLinePoint(_arg3[(_local6 - 1)], _arg3[_local6], _arg3[(_local6 + 1)]);
} else {
_local9 = _arg4;
};
if (_local6 > 1){
_local10 = getLinePoint(_arg3[(_local6 - 2)], _arg3[(_local6 - 1)], _arg3[_local6]);
} else {
_local10 = _arg2;
};
drawConnection(_arg1, _arg3[(_local6 - 1)], _arg3[_local6], _local10, _local9, _arg5);
_local6++;
};
}
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 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:Object;
var _local22:Object;
var _local23:Object;
var _local24:Object;
var _local25:Object;
var _local26:Number;
var _local27:Number;
var _local28:Number;
var _local29:Number;
var _local30:Object;
var _local31:Object;
_local10 = (_arg4.x - _arg2.x);
_local11 = (_arg4.y - _arg2.y);
_local12 = (_arg5.x - _arg3.x);
_local13 = (_arg5.y - _arg3.y);
_local14 = Math.atan2(_local11, _local10);
_local15 = Math.atan2(_local13, _local12);
_local16 = Math.cos(_local14);
_local17 = Math.sin(_local14);
_local18 = Math.cos(_local15);
_local19 = Math.sin(_local15);
_local7 = (_arg3.x - _arg2.x);
_local8 = (_arg3.y - _arg2.y);
_local9 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8)));
_local20 = (_arg6 * _local9);
_local21 = {x:(_arg2.x + (_local16 * _local20)), y:(_arg2.y + (_local17 * _local20))};
_local22 = {x:(_arg2.x - (_local16 * _local20)), y:(_arg2.y - (_local17 * _local20))};
_local23 = {x:(_arg3.x + (_local18 * _local20)), y:(_arg3.y + (_local19 * _local20))};
_local24 = {x:(_arg3.x - (_local18 * _local20)), y:(_arg3.y - (_local19 * _local20))};
_local25 = {x:(0.5 * (_arg2.x + _arg3.x)), y:(0.5 * (_arg2.y + _arg3.y))};
_local7 = (_local21.x - _local25.x);
_local8 = (_local21.y - _local25.y);
_local26 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8)));
_local7 = (_local22.x - _local25.x);
_local8 = (_local22.y - _local25.y);
_local27 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8)));
_local7 = (_local23.x - _local25.x);
_local8 = (_local23.y - _local25.y);
_local28 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8)));
_local7 = (_local24.x - _local25.x);
_local8 = (_local24.y - _local25.y);
_local29 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8)));
_local30 = ((_local26)<_local27) ? _local21 : _local22;
_local31 = ((_local28)<_local29) ? _local23 : _local24;
_local25.x = ((_local30.x + _local31.x) * 0.5);
_local25.y = ((_local30.y + _local31.y) * 0.5);
_arg1.curveTo(_local30.x, _local30.y, _local25.x, _local25.y);
_arg1.curveTo(_local31.x, _local31.y, _arg3.x, _arg3.y);
}
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 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 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 3
//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 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, _arg5, _arg4, _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);
}
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 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 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 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);
}
}
}//package as3
Section 4
//_btn_27 (cristina_fla._btn_27)
package cristina_fla {
import flash.display.*;
import flash.text.*;
public dynamic class _btn_27 extends MovieClip {
public var txt:TextField;
}
}//package cristina_fla
Section 5
//_btn2_28 (cristina_fla._btn2_28)
package cristina_fla {
import flash.display.*;
import flash.text.*;
public dynamic class _btn2_28 extends MovieClip {
public var txt:TextField;
}
}//package cristina_fla
Section 6
//belly_11 (cristina_fla.belly_11)
package cristina_fla {
import flash.display.*;
public dynamic class belly_11 extends MovieClip {
public var c1:MovieClip;
public var c3:MovieClip;
public var bgc1:MovieClip;
public var c2:MovieClip;
public var m1:MovieClip;
public var m3:MovieClip;
public var m4:MovieClip;
public var m2:MovieClip;
public var bg1:MovieClip;
public var lc3:MovieClip;
}
}//package cristina_fla
Section 7
//cristina_1 (cristina_fla.cristina_1)
package cristina_fla {
import flash.display.*;
public dynamic class cristina_1 extends MovieClip {
public var leg1:MovieClip;
public var leg2:MovieClip;
public var front:MovieClip;
public var bg:MovieClip;
public var tail:MovieClip;
public var arm2:MovieClip;
public var arm1:MovieClip;
public var breast1:MovieClip;
public var hair3:MovieClip;
public var breast2:MovieClip;
public var body:MovieClip;
public var belly:MovieClip;
public var head:MovieClip;
}
}//package cristina_fla
Section 8
//eye1_17 (cristina_fla.eye1_17)
package cristina_fla {
import flash.display.*;
public dynamic class eye1_17 extends MovieClip {
public var pupil:MovieClip;
public function eye1_17(){
addFrameScript(1, frame2);
}
function frame2(){
this.gotoAndPlay(this.currentLabel);
}
}
}//package cristina_fla
Section 9
//eye2_19 (cristina_fla.eye2_19)
package cristina_fla {
import flash.display.*;
public dynamic class eye2_19 extends MovieClip {
public var pupil:MovieClip;
public function eye2_19(){
addFrameScript(1, frame2, 7, frame8);
}
function frame8(){
this.gotoAndStop(this.currentLabel);
}
function frame2(){
this.gotoAndStop(this.currentLabel);
}
}
}//package cristina_fla
Section 10
//head_15 (cristina_fla.head_15)
package cristina_fla {
import flash.display.*;
public dynamic class head_15 extends MovieClip {
public var blush:MovieClip;
public var eye2:MovieClip;
public var eye1:MovieClip;
public var hair2:MovieClip;
public var hair1:MovieClip;
public var ear1:MovieClip;
public var ear2:MovieClip;
public var mouth:MovieClip;
}
}//package cristina_fla
Section 11
//leg1_12 (cristina_fla.leg1_12)
package cristina_fla {
import flash.display.*;
public dynamic class leg1_12 extends MovieClip {
public var c1:MovieClip;
public var c2:MovieClip;
public var m3:MovieClip;
public var m1:MovieClip;
public var m2:MovieClip;
}
}//package cristina_fla
Section 12
//leg2_6 (cristina_fla.leg2_6)
package cristina_fla {
import flash.display.*;
public dynamic class leg2_6 extends MovieClip {
public var m1:MovieClip;
}
}//package cristina_fla
Section 13
//MainTimeline (cristina_fla.MainTimeline)
package cristina_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import as3.*;
import flash.text.*;
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.ui.*;
import flash.utils.*;
import flash.xml.*;
public dynamic class MainTimeline extends MovieClip {
public const FINAL_SIZE:int = 875;
public const NORMAL_SIZE:int = 600;
public const BELLY_PHASE_2:int = 184;
public const BELLY_PHASE_3:int = 875;
public const BELLY_PHASE_1:int = 69;
public var blush:Number;
public var size:int;
public var CLOTHES2_MC:MovieClip;
public var _revert:MovieClip;
public var oldMY:int;
public var MAX_SIZE:int;
public var sparkle:MovieClip;
public var oldX:int;
public var oldMX:int;
public var cristina:MovieClip;
public var oldY:int;
public var _minus:MovieClip;
public var CLOTHES3_MC:MovieClip;
public var _zero:MovieClip;
public var _plus:MovieClip;
public var _expand:MovieClip;
public var growth:int;
public var oldCristinaX;
public var oldCristinaY;
public var zoom:Number;
public var CLOTHES1_MC:MovieClip;
public function MainTimeline(){
addFrameScript(0, frame1);
}
public function eFrame(_arg1:Event){
if (growth > 0){
if (size < MAX_SIZE){
size++;
} else {
growth = 0;
_expand.gotoAndStop(1);
};
cristina.belly.gotoAndStop(size);
cristina.breast1.gotoAndStop(cristina.belly.currentFrame);
cristina.breast2.gotoAndStop(cristina.belly.currentFrame);
} else {
if (growth < 0){
if (size > 1){
size--;
} else {
growth = 0;
_revert.gotoAndStop(1);
};
cristina.belly.gotoAndStop(size);
cristina.breast1.gotoAndStop(cristina.belly.currentFrame);
cristina.breast2.gotoAndStop(cristina.belly.currentFrame);
};
};
if (zoom){
cristina.scaleX = (cristina.scaleX + zoom);
cristina.scaleY = cristina.scaleX;
Algorithms.adjustScreen(cristina, cristina.bg);
};
drawCompleteClothes();
if (cristina.belly.currentFrame < BELLY_PHASE_1){
setBellyDepth(0);
} else {
if (cristina.belly.currentFrame < BELLY_PHASE_2){
setBellyDepth(1);
} else {
if (cristina.belly.currentFrame < BELLY_PHASE_3){
setBellyDepth(2);
} else {
setBellyDepth(3);
};
};
};
switch (true){
case (growth < 0):
blush = 0;
cristina.head.mouth.gotoAndStop("mad");
cristina.head.eye1.gotoAndStop("lookdown");
cristina.head.eye2.gotoAndStop("lookdown");
break;
case (size < 20):
blush = 0;
cristina.head.mouth.gotoAndStop("smile");
cristina.head.eye1.gotoAndStop("open");
cristina.head.eye2.gotoAndStop("open");
break;
case (size < 100):
blush = 0;
cristina.head.mouth.gotoAndStop("mad");
cristina.head.eye1.gotoAndStop("sad");
cristina.head.eye2.gotoAndStop("sad");
break;
case (size < 400):
blush = 1;
cristina.head.mouth.gotoAndStop("happy");
cristina.head.eye1.gotoAndStop("sad");
cristina.head.eye2.gotoAndStop("sad");
break;
case (size <= NORMAL_SIZE):
blush = 0;
cristina.head.mouth.gotoAndStop("smile");
cristina.head.eye1.gotoAndStop("small");
cristina.head.eye2.gotoAndStop("small");
break;
case (size < 750):
blush = 1;
cristina.head.mouth.gotoAndStop("confused2");
cristina.head.eye1.gotoAndStop("lookdown");
cristina.head.eye2.gotoAndStop("lookdown");
break;
case (size < FINAL_SIZE):
blush = 1;
cristina.head.mouth.gotoAndStop("confused");
cristina.head.eye1.gotoAndStop("sad");
cristina.head.eye2.gotoAndStop("sad");
break;
case (size == FINAL_SIZE):
blush = 1;
cristina.head.mouth.gotoAndStop("happy");
cristina.head.eye1.gotoAndStop("small");
cristina.head.eye2.gotoAndStop("small");
break;
};
if (cristina.head.blush.alpha < (blush - 0.1)){
cristina.head.blush.alpha = (cristina.head.blush.alpha + 0.1);
} else {
if (cristina.head.blush.alpha > (blush + 0.1)){
cristina.head.blush.alpha = (cristina.head.blush.alpha - 0.1);
} else {
cristina.head.blush.alpha = blush;
};
};
}
public function dropCristina(_arg1:Event){
stage.removeEventListener(MouseEvent.MOUSE_MOVE, dragCristina);
stage.removeEventListener(MouseEvent.MOUSE_UP, dropCristina);
}
public function resizeCristina(_arg1:Event){
Algorithms.adjustScreen(cristina, cristina.bg);
}
public function endZoom(_arg1:Event){
zoom = 0;
stage.removeEventListener(MouseEvent.MOUSE_UP, endZoom);
}
public function zoomIn(_arg1:Event){
stage.addEventListener(MouseEvent.MOUSE_UP, endZoom);
if (_arg1.currentTarget == _plus){
zoom = 0.01;
} else {
zoom = -0.01;
};
}
public function drawClothes(_arg1:Sprite, _arg2:Sprite, _arg3:Sprite){
var _local4:Graphics;
var _local5:Point;
var _local6:Point;
var _local7:Point;
var _local8:Point;
var _local9:Point;
var _local10:Point;
var _local11:Point;
var _local12:Point;
var _local13:Point;
var _local14:Point;
var _local15:Point;
var _local16:Point;
var _local17:Point;
var _local18:Point;
var _local19:Point;
var _local20:Point;
var _local21:Point;
var _local22:Point;
_local5 = _arg1.globalToLocal(cristina.leg1.m1.localToGlobal(new Point()));
_local6 = _arg1.globalToLocal(cristina.leg1.m2.localToGlobal(new Point()));
_local7 = _arg1.globalToLocal(cristina.leg1.m3.localToGlobal(new Point()));
_local14 = _arg1.globalToLocal(cristina.leg1.c1.localToGlobal(new Point()));
_local15 = _arg1.globalToLocal(cristina.leg1.c2.localToGlobal(new Point()));
_local8 = _arg1.globalToLocal(cristina.belly.m1.localToGlobal(new Point()));
_local9 = _arg1.globalToLocal(cristina.belly.m2.localToGlobal(new Point()));
_local10 = _arg1.globalToLocal(cristina.belly.m3.localToGlobal(new Point()));
_local11 = _arg1.globalToLocal(cristina.belly.m4.localToGlobal(new Point()));
_local16 = _arg1.globalToLocal(cristina.belly.lc3.localToGlobal(new Point()));
_local17 = _arg1.globalToLocal(cristina.belly.c1.localToGlobal(new Point()));
_local18 = _arg1.globalToLocal(cristina.belly.c2.localToGlobal(new Point()));
_local19 = _arg1.globalToLocal(cristina.belly.c3.localToGlobal(new Point()));
_local12 = _arg1.globalToLocal(cristina.leg2.m1.localToGlobal(new Point()));
_local13 = _arg1.globalToLocal(cristina.belly.bg1.localToGlobal(new Point()));
_local20 = _arg1.globalToLocal(cristina.belly.bgc1.localToGlobal(new Point()));
_local21 = _local18;
_local4 = _arg1.graphics;
_local4.moveTo(_local5.x, _local5.y);
_local4.curveTo(_local14.x, _local14.y, _local6.x, _local6.y);
_local4.curveTo(_local15.x, _local15.y, _local7.x, _local7.y);
_local4.curveTo(_local16.x, _local16.y, _local8.x, _local8.y);
_local4 = _arg2.graphics;
_local4.moveTo(_local9.x, _local9.y);
_local4.curveTo(_local17.x, _local17.y, _local8.x, _local8.y);
_local4.curveTo((((_local8.x + _local5.x) * 0.5) - 10), ((_local8.y + _local5.y) * 0.5), _local5.x, _local5.y);
_local4.curveTo(_local19.x, _local19.y, _local11.x, _local11.y);
_local4.curveTo(_local19.x, _local19.y, _local10.x, _local10.y);
_local4 = _arg3.graphics;
_local4.moveTo(_local9.x, _local9.y);
_local4.curveTo(_local13.x, _local13.y, _local13.x, _local13.y);
_local4.curveTo(_local20.x, _local20.y, _local12.x, _local12.y);
_local4.curveTo(_local21.x, _local21.y, _local10.x, _local10.y);
}
function frame1(){
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
MAX_SIZE = 600;
growth = 0;
size = 1;
zoom = 0;
blush = 0;
cristina.belly.gotoAndStop(1);
cristina.breast1.gotoAndStop(1);
cristina.breast2.gotoAndStop(1);
oldMX = 0;
oldMY = 0;
oldX = 0;
oldY = 0;
oldCristinaX = cristina.x;
oldCristinaY = cristina.y;
cristina.addEventListener(MouseEvent.MOUSE_DOWN, pickCristina);
stage.addEventListener(Event.RESIZE, resizeCristina);
_expand.txt.text = "Expand";
_revert.txt.text = "Revert";
_plus.txt.text = "+";
_zero.txt.text = "0";
_minus.txt.text = "-";
_expand.gotoAndStop(1);
_revert.gotoAndStop(1);
_plus.gotoAndStop(1);
_zero.gotoAndStop(1);
_minus.gotoAndStop(1);
_expand.addEventListener(MouseEvent.MOUSE_DOWN, startExpanding);
_revert.addEventListener(MouseEvent.MOUSE_DOWN, startExpanding);
_plus.addEventListener(MouseEvent.MOUSE_DOWN, zoomIn);
_minus.addEventListener(MouseEvent.MOUSE_DOWN, zoomIn);
_zero.addEventListener(MouseEvent.MOUSE_DOWN, resetZoom);
sparkle = new MovieClip();
stage.addChild(sparkle);
sparkle.x = 50;
sparkle.y = 50;
sparkle.graphics.beginFill(16746700);
Drawing.drawSparkle(sparkle.graphics, 30, 4, 0.2);
sparkle.graphics.endFill();
sparkle.visible = false;
stage.addEventListener(KeyboardEvent.KEY_DOWN, kDown);
stage.addEventListener(Event.ENTER_FRAME, eFrame);
cristina.head.blush.alpha = 0;
CLOTHES1_MC = new MovieClip();
CLOTHES2_MC = new MovieClip();
CLOTHES3_MC = new MovieClip();
cristina.addChildAt(CLOTHES1_MC, (cristina.getChildIndex(cristina.leg1) + 1));
cristina.addChildAt(CLOTHES2_MC, (cristina.getChildIndex(cristina.belly) + 1));
cristina.addChildAt(CLOTHES3_MC, (cristina.getChildIndex(cristina.belly) + 1));
}
public function sparkleSpin(_arg1:Event){
sparkle.rotation = (sparkle.rotation + sparkle.vX);
sparkle.vX = (sparkle.vX * 0.95);
}
public function pickCristina(_arg1:Event){
stage.addEventListener(MouseEvent.MOUSE_MOVE, dragCristina);
stage.addEventListener(MouseEvent.MOUSE_UP, dropCristina);
oldX = cristina.x;
oldY = cristina.y;
oldMX = stage.mouseX;
oldMY = stage.mouseY;
}
public function drawCompleteClothes(){
CLOTHES1_MC.graphics.clear();
CLOTHES2_MC.graphics.clear();
CLOTHES3_MC.graphics.clear();
CLOTHES1_MC.graphics.beginFill(16764108);
CLOTHES2_MC.graphics.beginFill(16764108);
CLOTHES3_MC.graphics.beginFill(16764108);
drawClothes(CLOTHES1_MC, CLOTHES2_MC, CLOTHES3_MC);
CLOTHES1_MC.graphics.endFill();
CLOTHES2_MC.graphics.endFill();
CLOTHES3_MC.graphics.endFill();
CLOTHES1_MC.graphics.lineStyle(0.1);
CLOTHES2_MC.graphics.lineStyle(0.1);
CLOTHES3_MC.graphics.lineStyle(0.1);
drawClothes(CLOTHES1_MC, CLOTHES2_MC, CLOTHES3_MC);
}
public function setBellyDepth(_arg1:int=0){
var _local2:int;
var _local3:int;
var _local4:MovieClip;
_local2 = cristina.getChildIndex(cristina.belly);
switch (_arg1){
case 0:
_local4 = (cristina.getChildAt((cristina.getChildIndex(CLOTHES3_MC) - 1)) as MovieClip);
break;
case 1:
_local4 = CLOTHES2_MC;
break;
case 2:
_local4 = CLOTHES1_MC;
break;
case 3:
_local4 = cristina.breast1;
break;
};
_local3 = cristina.getChildIndex(_local4);
if ((((_local2 == _local3)) || ((_local4 == cristina.belly)))){
return;
};
if (_local2 < _local3){
cristina.addChildAt(cristina.belly, _local3);
} else {
cristina.addChildAt(cristina.belly, (_local3 + 1));
};
}
public function dragCristina(_arg1:Event){
cristina.x = (oldX + (stage.mouseX - oldMX));
cristina.y = (oldY + (stage.mouseY - oldMY));
Algorithms.adjustScreen(cristina, cristina.bg);
}
public function resetZoom(_arg1:Event){
cristina.x = oldCristinaX;
cristina.y = oldCristinaY;
cristina.scaleX = (cristina.scaleY = 1);
}
public function kDown(_arg1:Event){
if (MAX_SIZE == FINAL_SIZE){
MAX_SIZE = NORMAL_SIZE;
sparkle.visible = false;
sparkle.removeEventListener(Event.ENTER_FRAME, sparkleSpin);
} else {
MAX_SIZE = FINAL_SIZE;
sparkle.visible = true;
sparkle.vX = 80;
sparkle.addEventListener(Event.ENTER_FRAME, sparkleSpin);
};
}
public function startExpanding(_arg1:Event){
if (_arg1.currentTarget == _expand){
if (growth == 1){
growth = 0;
_expand.gotoAndStop(1);
} else {
growth = 1;
_expand.gotoAndStop(2);
};
_revert.gotoAndStop(1);
} else {
if (growth == -1){
growth = 0;
_revert.gotoAndStop(1);
} else {
growth = -1;
_revert.gotoAndStop(2);
};
_expand.gotoAndStop(1);
};
}
}
}//package cristina_fla
Section 14
//mouth_25 (cristina_fla.mouth_25)
package cristina_fla {
import flash.display.*;
public dynamic class mouth_25 extends MovieClip {
public var nose:MovieClip;
public function mouth_25(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package cristina_fla