STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228091
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2561 · P5121

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/92197094?noj=FRM92197094-5DC" width="1" height="1"></div>

spider.swf

This is the info page for
Flash #52607

(Click the ID number above for more basic data on this flash file.)


Text
vectorpark.com

ActionScript [AS3]

Section 1
//AntDog (classes.AntDog) package classes { import ThreeDee.*; import util.*; public class AntDog { var jumpCount;// = 0 var projections; var bumbleModel; var isStunned; var pickupFoot; public var isReversing;// = false var lastFoot;// = null var numMembers; var isNearFeet;// = false var tail; var anchorPoint; var head; var closestFoot;// = false public var reverseRate; public var isJumping;// = false var grav;// = -0.25 var headR; var endJumpEvent;// = null public function AntDog(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6){ anchorPoint = _arg4; numMembers = _arg1; headR = _arg2; projections = []; var _local7:* = 0; while (_local7 < numMembers) { projections[_local7] = addProjection(_local7, _arg5, _arg6); _arg5.addPart(projections[_local7]); _local7++; }; head = projections[0]; tail = projections[(numMembers - 1)]; tail.startWag(0.5, 1); bumbleModel = new BumbleModel(numMembers, headR); } function setPickupFoot(_arg1, _arg2){ var _local3:* = projections[_arg1].getFoot(_arg2); if (((!((_local3 == lastFoot))) && (!((lastFoot == null))))){ projections[pickupFoot[0]].dropFoot(pickupFoot[1]); }; pickupFoot = [_arg1, _arg2]; lastFoot = _local3; projections[_arg1].liftFoot(_arg2); } public function getTrackCoords(){ return ({x:head.head.anchorPoint.px, y:head.head.anchorPoint.py, z:head.head.anchorPoint.pz}); } public function render(){ var _local2:*; var _local1:* = 0; while (_local1 < numMembers) { _local2 = projections[_local1]; _local2.render(); _local1++; }; } public function trackToNavCoords(_arg1){ return ({x:(_arg1.x - anchorPoint.px), y:(_arg1.y - anchorPoint.py)}); } public function twistHead(_arg1, _arg2, _arg3){ new RepeatedEvent(setHeadTwist, _arg1, _arg2, _arg3); } function clearPickupFoot(){ if (lastFoot != null){ projections[pickupFoot[0]].dropFoot(pickupFoot[1]); lastFoot = null; }; } public function step(_arg1, _arg2){ var _local7:*; var _local8:*; var _local9:*; var _local3:* = trackToNavCoords(_arg1); var _local4:* = (bumbleModel.speed < 0.01); if (_local4){ checkFeet(_arg1); } else { clearPickupFoot(); }; if (((((((isNearFeet) && (_local4))) || (isStunned))) || (isJumping))){ bumbleModel.isFrozen = true; bumbleModel.speed = 0; } else { if (!isNearFeet){ bumbleModel.isFrozen = false; }; }; if (_arg2){ bumbleModel.rangeBuffer = 100; bumbleModel.brake = 2; } else { bumbleModel.rangeBuffer = 0; bumbleModel.brake = 1; }; bumbleModel.step(_local3); var _local5:* = bumbleModel.members; var _local6:* = 0; while (_local6 < numMembers) { _local7 = projections[_local6]; _local8 = _local5[_local6]; _local9 = 0; if (_local6 > 0){ _local9 = (_local9 + projections[(_local6 - 1)].extraYSway()); }; if (_local6 < (numMembers - 1)){ _local9 = (_local9 + projections[(_local6 + 1)].extraYSway()); }; _local7.addExternalSway((_local9 / 2)); _local7.step(_local8.x, _local8.y, _local8.relativeHeadX, _local8.relativeHeadY, _local8.facing, (isJumping) ? 0 : _local8.walkSpeed, bumbleModel.maxSpeed, _arg1); _local7.locate(); _local6++; }; } function checkFeet(_arg1){ var _local4:*; var _local5:*; var _local6:*; var _local7:*; isNearFeet = false; closestFoot = false; var _local2:* = 999; var _local3:* = 1; while (_local3 < numMembers) { _local4 = 0; while (_local4 < 2) { _local5 = projections[_local3].getFoot(_local4); if (!isNaN(_local5.px)){ _local6 = new Vector((_arg1.x - _local5.px), (_arg1.y - _local5.py)).getMag(); _local7 = (_local6 < (_local5.radius * 2)); if (_local6 < (_local5.radius * 3)){ isNearFeet = true; }; if (_local7){ if (_local6 < _local2){ closestFoot = [_local3, _local4]; _local2 = _local6; }; }; }; _local4++; }; _local3++; }; if (closestFoot != false){ setPickupFoot(closestFoot[0], closestFoot[1]); } else { clearPickupFoot(); }; } public function trackToRelativeCoords(_arg1){ var _local2:* = trackToNavCoords(_arg1); return ({x:(_local2.x - bumbleModel.x), y:(_local2.y - bumbleModel.y)}); } function doJump(_arg1, _arg2, _arg3){ var _local11:*; var _local4:* = Curves.easeOut((_arg1 * 2)); var _local5:* = -(((grav * _arg2) / 2)); var _local6:* = ((_local5 * (_arg2 * _arg1)) + (((grav * 0.5) * (_arg2 * _arg1)) * (_arg2 * _arg1))); var _local7:* = 0; while (_local7 < numMembers) { _local11 = projections[_local7]; _local11.addOffSet(0, 0, ((_local6 * 1.5) + ((30 * (1 - (_local7 / numMembers))) * _local4))); _local7++; }; var _local8:* = (4 * Curves.easeOut((_arg1 * 2))); var _local9:* = (_local8 * Math.cos(_arg3)); var _local10:* = (_local8 * Math.sin(_arg3)); bumbleModel.offsetPos(_local9, _local10); tail.straigtenTail(Curves.easeOut((_arg1 * 2))); if (_arg1 == 1){ _local7 = 0; while (_local7 < numMembers) { new DelayedEvent(projections[_local7].addHeadSpringV, 1, -7.5); _local7++; }; isJumping = false; endJumpEvent = new DelayedEvent(recoverFromJump, 90); }; } public function initJump(_arg1, _arg2){ var _local7:*; var _local8:*; isJumping = true; isStunned = true; var _local3:* = {px:((projections[1].px + projections[2].px) / 2), py:((projections[1].py + projections[2].py) / 2)}; var _local4:* = new Vector((_local3.px - _arg2.x), (_local3.py - _arg2.y)); var _local5:* = 1; while (_local5 < numMembers) { _local7 = 0; _local8 = 1; projections[_local5].liftFoot(_local7, 8, 40); projections[_local5].liftFoot(_local8, 16, 40); new DelayedEvent(projections[_local5].dropFoot, 8, _local7, 16); new DelayedEvent(projections[_local5].dropFoot, 16, _local8, 8); _local5++; }; tail.stopWag(4); var _local6:* = new RepeatedEvent(doJump, _arg1, _arg1, _local4.getAngle()); _local6.fire(); } public function addProjection(_arg1, _arg2, _arg3){ var _local4:* = ((_arg1 == 0)) ? AntDogSegmentHead : ((_arg1 == (numMembers - 1))) ? AntDogSegmentTail : AntDogSegmentLegged; var _local5:* = new _local4(anchorPoint, _arg2, (((_arg1 % 2) == 1)) ? Palette.getColor("body1") : Palette.getColor("body0"), (((_arg1 % 2) == 1)) ? Palette.getColor("heel1") : Palette.getColor("heel0"), _arg3, headR); return (_local5); } public function startle(_arg1, _arg2){ var _local5:*; var _local3:* = trackToRelativeCoords(_arg2); var _local4:* = new Vector(_local3.x, _local3.y).getMag(); if ((((((_local4 < 60)) && ((_arg1 > 3)))) || (isNearFeet))){ jumpCount++; if (endJumpEvent != null){ endJumpEvent.cancel(); }; _local5 = ((closestFoot == false)) ? 3 : 1; new DelayedEvent(initJump, _local5, 25, _arg2); }; } function setHeadTwist(_arg1, _arg2, _arg3){ var _local4:* = Curves.scurve(_arg1); head.setHeadTwist(((_arg2 * (1 - _local4)) + (_arg3 * _local4))); } public function recoverFromJump(){ isStunned = false; new DelayedEvent(tail.startWag, 90, 0.5, 10); } } }//package classes
Section 2
//AntDogSegment (classes.AntDogSegment) package classes { import ThreeDee.*; import util.*; public class AntDogSegment extends ThreeDeePart { var baseColor; var shadow; var externalYSway;// = 0 var facingTransform; var maxSpeed; var offX;// = 0 var groundArcRad;// = 2.0943951023932 var offZ;// = 0 var partContainer; var offY;// = 0 var spdFactor; public var head; var facing;// = 0 var headMotionSink; var headZBase; var headSpringZ;// = 0 var headBobMax; var headSpringV;// = 0 var headR; public function AntDogSegment(_arg1, _arg2, _arg3, _arg4, _arg5){ super(_arg1); setMetrics(_arg5); partContainer = _arg2; baseColor = _arg3; buildHead(headR); } public function getBobOsc(){ return (0); } function setMetrics(_arg1){ headZBase = ((_arg1 * 80) / 18); headBobMax = (_arg1 / 6); headMotionSink = (-(_arg1) / 3); headR = _arg1; } public function extraYSway(){ return (0); } public function addHeadSpringV(_arg1){ headSpringV = (headSpringV + _arg1); } public function extraZSway(){ return (0); } public function render(){ facingTransform = new ThreeDeeTransform({z:facing}); head.customLocate(facingTransform); head.render(); } public function extraSpring(){ return (0); } public function addExternalSway(_arg1){ externalYSway = (externalYSway + _arg1); } public function step(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8){ facing = _arg5; X = _arg1; Y = _arg2; spdFactor = (_arg6 / _arg7); var _local9:* = getBobOsc(); var _local10:* = ((headZBase + ((headBobMax * Math.cos(((_local9 * Math.PI) * 2))) * spdFactor)) + (headMotionSink * spdFactor)); var _local11:* = (_arg3 + offX); var _local12:* = (_arg4 + offY); head.X = _local11; head.Y = ((_local12 + extraYSway()) + getExternalSway()); head.Z = ((((_local10 + extraZSway()) + offZ) + runHeadSpring()) + extraSpring()); clearExternalSway(); } public function buildHead(_arg1){ head = new ThreeDeeCircle(anchorPoint, _arg1); head.setColor(baseColor); partContainer.addPart(head); } public function clearExternalSway(){ externalYSway = 0; } public function runHeadSpring(){ headSpringV = (headSpringV + (-(headSpringZ) / 5)); headSpringV = (headSpringV * 0.8); headSpringZ = (headSpringZ + headSpringV); return (headSpringZ); } public function addOffSet(_arg1, _arg2, _arg3){ offX = _arg1; offY = _arg2; offZ = _arg3; } public function getExternalSway(){ return (externalYSway); } } }//package classes
Section 3
//AntDogSegmentHead (classes.AntDogSegmentHead) package classes { import ThreeDee.*; import util.*; public class AntDogSegmentHead extends AntDogSegment { var depthObjects; var shiftY;// = 0 var shiftZ;// = 0 var oscObject; public function AntDogSegmentHead(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6){ super(_arg1, _arg2, _arg3, _arg5, _arg6); oscObject = new WalkLeg(-1, 0, 30, groundArcRad, 0, 0); } override public function getBobOsc(){ return (((oscObject.osc + 0.15) * 2)); } override public function extraYSway(){ return (shiftY); } override public function extraZSway(){ return (shiftZ); } override public function step(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8){ var _local9:* = (_arg5 - facing); super.step(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); var _local10:* = new Vector((_arg8.x - anchorPoint.px), (_arg8.y - anchorPoint.py)).rotate(facing); var _local11:* = _local10.getAngle(); var _local12:* = Math.atan2((_arg8.z - head.pz), _local10.y); var _local13:* = 0; if (_local11 > 0){ _local13 = (((-(Math.cos(_local11)) + 1) * 5) * Math.abs(Math.cos(_local12))); } else { if (_local11 < 0){ _local13 = (((Math.cos(_local11) - 1) * 5) * Math.abs(Math.cos(_local12))); }; }; shiftY = ((_local13 + shiftY) / 2); var _local14:* = Math.atan2((_arg8.z - head.pz), _local10.x); var _local15:* = ShortCuts.getAngleDiff(_local14, 0); var _local16:* = (Math.sin((_local15 / 2)) * 20); shiftZ = ((_local16 + (shiftZ * 3)) / 4); head.lookStep(_arg8, facing); oscObject.setStrideFactor(spdFactor); oscObject.step(_arg6, _local9); } public function setHeadTwist(_arg1){ head.setTwist(_arg1); } override public function buildHead(_arg1){ head = new BeakHead(anchorPoint, _arg1, Palette.getColor("body0"), Palette.getColor("nose"), Palette.getColor("eye")); partContainer.addPart(head); } override public function render(){ super.render(); } public function getTrackCoords(){ return ({x:px, y:py, z:(pz + head.Z)}); } } }//package classes
Section 4
//AntDogSegmentLegged (classes.AntDogSegmentLegged) package classes { import ThreeDee.*; import flash.display.*; import util.*; public class AntDogSegmentLegged extends AntDogSegment { var footSpread; var footShadows; var legThickness; var legStride; var knees; var walkSway; var hipD; var legObjArr; var segLength; var footR; var hipZ; var footStatuses; var feetPoints; var legLiftEvents; var ySway;// = 0 var legClips; var hips; var feet; var ankleOffsetZ; var footTipMax; var heelColor; var footLifts; var ankles; public function AntDogSegmentLegged(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6){ var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local12:*; var _local13:*; var _local14:*; footLifts = [0, 0]; super(_arg1, _arg2, _arg3, _arg5, _arg6); heelColor = _arg4; feet = []; feetPoints = []; hips = []; knees = []; ankles = []; legClips = []; footShadows = []; legLiftEvents = []; footStatuses = []; var _local7:* = 0; while (_local7 < 2) { _local8 = new Sprite(); legClips.push(_local8); _local9 = new ThreeDeePoint(anchorPoint); _local10 = new ThreeDeeDome(_local9, footR, "z"); _local10.setColors(_arg4, baseColor); _local10.X = 3; _local11 = new ThreeDeePoint(_local9, 0, 0, ankleOffsetZ); ankles.push(_local11); _local12 = new ThreeDeePoint(anchorPoint, 0, ((_local7 == 0)) ? -(hipD) : hipD); hips.push(_local12); _local13 = new ThreeDeePoint(anchorPoint); knees.push(_local13); feet.push(_local10); feetPoints.push(_local9); partContainer.addPart(_local8, _local12); partContainer.addPart(_local10); _local14 = new ThreeDeeDisc(anchorPoint, footR, "z"); _arg5.addChild(_local14); footShadows[_local7] = _local14; _local7++; }; legObjArr = [new WalkLeg(-1, -(hipD), legStride, groundArcRad, footTipMax, 0), new WalkLeg(-1, hipD, legStride, groundArcRad, footTipMax, 0.5)]; } override public function getBobOsc(){ return (((legObjArr[0].osc + 0.15) * 2)); } override public function render(){ var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local12:*; super.render(); var _local1:* = 0; while (_local1 < 2) { _local2 = hips[_local1]; _local3 = ankles[_local1]; _local4 = knees[_local1]; hips[_local1].z = (head.Z + hipZ); hips[_local1].x = head.X; hips[_local1].y = (hips[_local1].iy + head.Y); hips[_local1].customLocate(facingTransform); _local5 = feet[_local1]; _local6 = feetPoints[_local1]; _local7 = legObjArr[_local1]; _local6.x = _local7.footX; _local6.y = (_local7.footY + ((footSpread * (_local1 - 0.5)) * 2)); _local6.z = ((-(_local7.footZ) + ((offZ * 3) / 4)) + footLifts[_local1]); _local6.customLocate(facingTransform); _local5.customLocate(facingTransform); _local8 = new ThreeDeeTransform({x:(_local7.footTip * spdFactor)}, {z:(facing + (Math.PI / 2))}); _local5.customRender(_local8); footShadows[_local1].X = (_local5.px - anchorPoint.px); footShadows[_local1].Y = (_local5.py - anchorPoint.py); footShadows[_local1].locate(); footShadows[_local1].customRender(facingTransform); ankles[_local1].customLocate(_local8); _local9 = ThreeDeeLimbUtil.getKneeCoords(_local2, {x:_local6.x, y:_local6.y, z:_local6.z}, segLength); _local4.x = _local9.x; _local4.y = _local9.y; _local4.z = _local9.z; _local4.customLocate(facingTransform); _local10 = legClips[_local1].graphics; _local10.clear(); _local10.lineStyle((legThickness * hips[_local1].depth), baseColor, 1, false, "normal"); _local10.moveTo(hips[_local1].vx, hips[_local1].vy); _local10.lineTo(((_local2.vx + (_local4.vx * 3)) / 4), ((_local2.vy + (_local4.vy * 3)) / 4)); _local10.curveTo(knees[_local1].vx, knees[_local1].vy, ((_local3.vx + (_local4.vx * 3)) / 4), ((_local3.vy + (_local4.vy * 3)) / 4)); _local10.lineTo(_local3.vx, _local3.vy); _local11 = ((_local1 == 0)) ? -1 : 1; _local12 = Math.max(0, Math.sin((facing + ((Math.PI / 2) * _local11)))); ColorTools.setTint(legClips[_local1], heelColor, (_local12 / 3)); ColorTools.setTint(feet[_local1], heelColor, (_local12 / 3)); _local1++; }; } override function setMetrics(_arg1){ super.setMetrics(_arg1); segLength = (_arg1 * 2.2777778); legThickness = ((_arg1 * 2) / 3); footR = ((_arg1 * 4) / 5); hipD = (((_arg1 * 8) / 9) - (legThickness / 2)); hipZ = ((-(_arg1) * 2) / 9); legStride = ((_arg1 * 13) / 9); footSpread = ((_arg1 * 5) / 18); walkSway = (_arg1 / 6); footTipMax = (Math.PI / 6); ankleOffsetZ = ((footR * 3) / 5); } override public function extraYSway(){ ySway = (((ySway * walkSway) + ((footLifts[0] - footLifts[1]) / 3)) / 4); return (ySway); } public function liftFoot(_arg1, _arg2=8, _arg3=20, _arg4=false){ if ((((footStatuses[_arg1] == "up")) && (!(_arg4)))){ return; }; footStatuses[_arg1] = "up"; if (legLiftEvents[_arg1] != undefined){ legLiftEvents[_arg1].cancel(); }; legLiftEvents[_arg1] = new RepeatedEvent(doFootLift, _arg2, _arg1, footLifts[_arg1], _arg3); legLiftEvents[_arg1].fire(); } override public function extraSpring(){ return (0); } function doFootLift(_arg1, _arg2, _arg3, _arg4){ var _local5:* = ((_arg3 > _arg4)) ? Curves.easeIn(_arg1) : Curves.easeOut(_arg1); footLifts[_arg2] = ((_arg3 * (1 - _local5)) + (_arg4 * _local5)); } override public function step(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8){ var _local9:* = (_arg5 - facing); super.step(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); legObjArr[0].setStrideFactor(spdFactor); legObjArr[1].setStrideFactor(spdFactor); legObjArr[0].step(_arg6, _local9); legObjArr[1].step(_arg6, _local9); } public function getFoot(_arg1){ return (feet[_arg1]); } public function dropFoot(_arg1, _arg2=8, _arg3=false){ if ((((footStatuses[_arg1] == "down")) && (!(_arg3)))){ return; }; footStatuses[_arg1] = "down"; if (legLiftEvents[_arg1] != undefined){ legLiftEvents[_arg1].cancel(); }; legLiftEvents[_arg1] = new RepeatedEvent(doFootLift, _arg2, _arg1, footLifts[_arg1], 0); legLiftEvents[_arg1].fire(); } } }//package classes
Section 5
//AntDogSegmentTail (classes.AntDogSegmentTail) package classes { import ThreeDee.*; import util.*; public class AntDogSegmentTail extends AntDogSegmentLegged { var tailClip; var tailBase; var tailSegLength; var wagStrength;// = 0 var wagEvt;// = null var baseAng;// = 2.35619449019234 var lw;// = 4 var wagAngleMax;// = 0.785398163397448 var tailMid; var tailRoot; var wagOsc;// = 0 var tailTip; var wagRate;// = 0 var midAng;// = 2.51327412287183 var tailColor;// = 0x666666 var tipAng;// = 1.5707963267949 public function AntDogSegmentTail(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); tailColor = baseColor; tailSegLength = (headR * 0.7); tailBase = new ThreeDeeCircle(head, lw); tailBase.setCoords((headR * Math.cos(baseAng)), 0, (headR * Math.sin(baseAng))); tailBase.setColor(tailColor); tailRoot = new ThreeDeePoint(head); tailMid = new ThreeDeePoint(tailBase); tailTip = new ThreeDeePoint(tailMid); setTail(); tailClip = new ThreeDeeDrawShell(0.1); partContainer.addPart(tailBase); partContainer.addPart(tailClip, tailRoot); } override public function step(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8){ super.step(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); } function fadeOutWag(_arg1, _arg2){ fadeInWag((1 - _arg1), _arg2); } public function startWag(_arg1, _arg2){ if (wagEvt != null){ wagEvt.cancel(); }; wagEvt = new RepeatedEvent(fadeInWag, _arg2, _arg1); } function fadeInWag(_arg1, _arg2){ wagRate = (_arg2 * _arg1); wagStrength = _arg1; } public function straigtenTail(_arg1){ setTail(_arg1, (1 + (_arg1 / 2))); } function setTail(_arg1=0, _arg2=1){ tailRoot.setCoords(((headR + (lw / 2)) * Math.cos(baseAng)), 0, ((headR + (lw / 2)) * Math.sin(baseAng))); tailMid.setCoords(((_arg2 * tailSegLength) * Math.cos(midAng)), 0, ((_arg2 * tailSegLength) * Math.sin(midAng))); var _local3:* = ((tipAng * (1 - _arg1)) + (midAng * _arg1)); tailTip.setCoords(((_arg2 * tailSegLength) * Math.cos(_local3)), 0, ((_arg2 * tailSegLength) * Math.sin(_local3))); } override public function render(){ super.render(); wagOsc = (wagOsc + wagRate); var _local1:* = ((wagAngleMax * Math.sin(wagOsc)) * wagStrength); var _local2:* = new ThreeDeeTransform({x:(_local1 / 2)}, {z:facing}); var _local3:* = new ThreeDeeTransform({x:_local1}, {z:facing}); tailBase.customLocate(facingTransform); tailBase.render(); tailRoot.customLocate(facingTransform); tailMid.customLocate(_local2); tailTip.customLocate(_local3); var _local4:* = tailClip; _local4.clear(); _local4.lineStyle((lw * tailRoot.depth), tailColor); _local4.moveTo(tailRoot.vx, tailRoot.vy); _local4.curveTo(tailMid.vx, tailMid.vy, tailTip.vx, tailTip.vy); } public function stopWag(_arg1){ if (wagEvt != null){ wagEvt.cancel(); }; wagEvt = new RepeatedEvent(fadeOutWag, _arg1, wagRate); } } }//package classes
Section 6
//BeakHead (classes.BeakHead) package classes { import ThreeDee.*; import util.*; public class BeakHead extends ThreeDeePart { var eyeY; var xTip;// = 0 var base; var lookTarget; var depthObjects; var facing; var currLookDir;// = 0 var oscObject; var eyes; var beak; var extraTwist;// = 0 var yTip;// = 0 var headTurnLimit;// = 1.5707963267949 public function BeakHead(_arg1, _arg2, _arg3, _arg4, _arg5){ var _local7:*; var _local8:*; super(_arg1); base = new ThreeDeeCircle(anchorPoint, _arg2); base.setColor(_arg3); addChild(base); depthObjects = []; eyes = []; var _local6:* = 0; while (_local6 < 2) { _local7 = ((_local6 == 0)) ? 1 : -1; _local8 = new ThreeDeeCone(base, (_arg2 * 0.4), (_arg2 / 6), "y", _local7); _local8.Y = ((_arg2 - (_arg2 / 10.5)) * _local7); _local8.setColors(_arg3, _arg5); addChild(_local8); eyes.push(_local8); depthObjects.push(_local8); _local6++; }; beak = new ThreeDeeCone(base, (_arg2 * 0.7), (_arg2 * 1.5)); beak.X = ((_arg2 * 2) / 3); addChild(beak); depthObjects.push(beak); beak.setColors(_arg3, _arg4); } public function lookStep(_arg1, _arg2){ lookTarget = _arg1; facing = _arg2; } public function render(_arg1=1){ var _local11:*; var _local2:* = (lookTarget.x - px); var _local3:* = (lookTarget.y - py); var _local4:* = (lookTarget.z - pz); var _local5:* = ((_local2 * Math.cos(facing)) + (_local3 * Math.sin(facing))); var _local6:* = ((_local3 * Math.cos(facing)) - (_local2 * Math.sin(facing))); var _local7:* = 1; xTip = (((-((Math.atan2(Maths.pyt(_local4, _local5), (_local6 * _local7)) + ((Math.PI / 2) * _arg1))) * _arg1) + xTip) / 2); yTip = (((Math.atan2(Maths.pyt(_local4, _local6), _local5) * _local7) + yTip) / 2); var _local8:* = new ThreeDeeTransform({x:extraTwist}, {y:yTip}, {x:xTip}, {z:facing}); base.customLocate(_local8); base.customRender(_local8); beak.customLocate(_local8); beak.customRender(_local8); var _local9:* = 0; while (_local9 < 2) { _local11 = eyes[_local9]; _local11.customLocate(_local8); _local11.customRender(_local8); _local9++; }; depthObjects.sortOn("depth"); var _local10:* = depthObjects.length; _local9 = 0; while (_local9 < _local10) { setChildIndex(depthObjects[_local9], (_local9 + 1)); _local9++; }; } public function setTwist(_arg1){ extraTwist = _arg1; } } }//package classes
Section 7
//BumbleMember (classes.BumbleMember) package classes { import util.*; public class BumbleMember { var lastV;// = 0 var velVec; var bounceBleed; var headOffset; var lastCoords; var lastFacing;// = 0 public var facing; var bobPos; public var isLeader; var lastVel; public var mass; var v; var bobVel; var x; var y; var headV; var relativeHeadOffset; public function BumbleMember(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7){ bounceBleed = _arg4; isLeader = _arg2; mass = _arg3; x = _arg5; y = _arg6; lastCoords = {x:_arg5, y:_arg6}; lastVel = new Vector(0, 0); bobVel = new Vector(0, 0); bobPos = new Vector(0, 0); headV = new Vector(0, 0); headOffset = new Vector(0, 0); relativeHeadOffset = new Vector(0, 0); } function getAngleDiff(_arg1, _arg2){ while ((_arg1 - _arg2) > Math.PI) { _arg1 = (_arg1 - (Math.PI * 2)); }; while ((_arg2 - _arg1) > Math.PI) { _arg1 = (_arg1 + (Math.PI * 2)); }; return ((_arg1 - _arg2)); } public function get headY(){ return (headOffset.y); } public function step(_arg1){ facing = _arg1; var _local2:* = (x - lastCoords.x); var _local3:* = (y - lastCoords.y); velVec = new Vector(_local2, _local3); v = velVec.getMag(); var _local4:* = -((v - lastV)); if ((((_local4 > 0)) && (!(isLeader)))){ addHeadVelocity(_local4, facing); }; lastV = v; lastCoords = {x:x, y:y}; lastFacing = facing; } public function get relativeHeadY(){ return (relativeHeadOffset.y); } public function get walkSpeed(){ return (lastV); } public function get totalV(){ return (new Vector((headV.x + velVec.x), (headV.y + velVec.y))); } public function get relativeHeadX(){ return (relativeHeadOffset.x); } public function addHeadVelocity(_arg1, _arg2){ var _local3:* = new Vector(0, 0); _local3.setMag(_arg1); _local3.setAngle(_arg2); headV.plus(_local3); } public function get headX(){ return (headOffset.x); } public function sumForces(){ headOffset.plus(headV); var _local1:* = headOffset.copy().scale(-0.03); headV.plus(_local1); headV.scale(bounceBleed); relativeHeadOffset = headOffset.copy().rotate(facing); } } }//package classes
Section 8
//BumbleModel (classes.BumbleModel) package classes { public class BumbleModel extends DualNav { var buffer;// = 6 var bumblerR; var members; var trail; var numMembers;// = 4 public function BumbleModel(_arg1, _arg2){ var _local3:* = 8; var _local4:* = new Nav((_local3 / 2), 0.25, 0.1, 37.5, 50); var _local5:* = new Nav(_local3, 0.5, 0.1, 75, 100); super(_local4, _local5); trail = new BumbleTrail(initX, initY, initFacing); numMembers = _arg1; bumblerR = _arg2; buildBumbleChain(); } override public function offsetPos(_arg1, _arg2){ super.offsetPos(_arg1, _arg2); trail.offsetCoords(_arg1, _arg2); } function trimTrail(){ var _local1:* = ((numMembers - 1) * ((bumblerR * 2) + buffer)); trail.trim((_local1 + 100)); } public function getMembers(){ return (members); } function checkCollision(_arg1, _arg2){ var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local3:* = ((_arg2.headX + _arg2.x) - (_arg1.headX + _arg1.x)); var _local4:* = ((_arg2.headY + _arg2.y) - (_arg1.headY + _arg1.y)); var _local5:* = Math.sqrt(((_local3 * _local3) + (_local4 * _local4))); if (_local5 < (bumblerR * 2)){ _local6 = Math.atan2(_local4, _local3); _local7 = _arg1.totalV.minus(_arg2.totalV); _local8 = _local7.getMag(); _local9 = (_arg1.mass + _arg2.mass); _local10 = (_arg2.mass / _local9); _local11 = (_arg1.mass / _local9); _arg1.addHeadVelocity((_local8 * _local10), (_local6 + Math.PI)); _arg2.addHeadVelocity((_local8 * _local11), _local6); }; } function reverseNav(_arg1){ trail.shave(_arg1); var _local2:* = trail.getCoordsAt(0); nav.x = _local2.x; nav.y = _local2.y; nav.facing = _local2.facing; } function runMemberCollisions(){ var _local1:* = 1; while (_local1 < numMembers) { checkCollision(members[(_local1 - 1)], members[_local1]); _local1++; }; _local1 = 0; while (_local1 < numMembers) { members[_local1].sumForces(); _local1++; }; } override function stepNav(_arg1){ super.stepNav(_arg1); trail.recordStep(nav.x, nav.y, nav.facing, nav.speed); } function buildBumbleChain(){ var _local2:*; members = []; var _local1:* = 0; while (_local1 < numMembers) { _local2 = new BumbleMember(bumblerR, (_local1 == 0), ((_local1 == 0)) ? 1 : 1, 0.9, initX, initY, initFacing); members.push(_local2); _local1++; }; } override public function step(_arg1){ super.step(_arg1); matchMembersToTrail(); runMemberCollisions(); trimTrail(); } function matchMembersToTrail(){ var _local2:*; var _local1:* = 0; while (_local1 < numMembers) { _local2 = trail.getCoordsAt((_local1 * ((bumblerR * 2) + buffer)), (_local1 == 0)); members[_local1].x = _local2.x; members[_local1].y = _local2.y; members[_local1].step(_local2.facing); _local1++; }; } } }//package classes
Section 9
//BumbleTrail (classes.BumbleTrail) package classes { import util.*; public class BumbleTrail { var initY; var initFacing; var initX; var history; var _t; public function BumbleTrail(_arg1, _arg2, _arg3){ initX = _arg1; initY = _arg2; initFacing = _arg3; history = []; _t = 0; } public function listPoints(){ var _local1:* = history.length; var _local2:* = (_local1 - 1); while (_local2 >= 0) { trace(("t " + history[_local2].t)); _local2--; }; } public function trim(_arg1){ var _local4:*; var _local2:* = history.length; var _local3:* = 0; var _local5:* = (_local2 - 1); while (_local5 >= 0) { _local4 = (_t - history[_local5].t); if (_local4 >= _arg1){ _local3 = _local5; break; }; _local5--; }; history = history.splice(_local3, (_local2 - _local3)); } public function getCoordsAt(_arg1, _arg2=false){ var _local3:*; var _local6:*; var _local4:* = history.length; var _local5:* = (_local4 - 1); while (_local5 >= 0) { _local3 = (_t - history[_local5].t); if (_local3 == _arg1){ _local6 = history[_local5]; return ({t:_local6.t, x:_local6.x, y:_local6.y, facing:_local6.facing}); }; if (_local3 >= _arg1){ return (getPointBetween(history[_local5], history[(_local5 + 1)], (_t - _arg1))); }; _local5--; }; return ({x:initX, y:initY, facing:initFacing}); } public function getPointBetween(_arg1, _arg2, _arg3){ var _local4:* = ((_arg3 - _arg1.t) / (_arg2.t - _arg1.t)); return ({t:(_arg1.t + ((_arg2.t - _arg1.t) * _local4)), x:(_arg1.x + ((_arg2.x - _arg1.x) * _local4)), y:(_arg1.y + ((_arg2.y - _arg1.y) * _local4)), facing:(_arg1.facing + (ShortCuts.getAngleDiff(_arg2.facing, _arg1.facing) * _local4))}); } public function offsetCoords(_arg1, _arg2){ var _local3:*; for each (_local3 in history) { _local3.x = (_local3.x + _arg1); _local3.y = (_local3.y + _arg2); }; } function recordStep(_arg1, _arg2, _arg3, _arg4){ var _local7:*; var _local8:*; var _local9:*; _t = (_t + _arg4); var _local5:* = {x:_arg1, y:_arg2, facing:_arg3, t:_t}; history.push(_local5); var _local6:* = history.length; if (_local6 > 1){ _local7 = history[(_local6 - 2)]; _local8 = (_local7.x - _local5.x); _local9 = (_local7.y - _local5.y); if (Math.sqrt(((_local8 * _local8) + (_local9 * _local9))) < 1){ history.splice((history.length - 2), 1); }; }; } public function getHistory(){ return (history); } public function shave(_arg1){ var _local4:*; var _local2:* = getCoordsAt(_arg1); var _local3:* = history.length; var _local5:* = (_local3 - 1); while (_local5 >= 0) { _local4 = (_t - history[_local5].t); if (_local4 <= _arg1){ history.splice(_local5, 1); _local5--; } else { break; }; _local5--; }; history.push(_local2); _t = (_t - _arg1); } } }//package classes
Section 10
//DualNav (classes.DualNav) package classes { import util.*; public class DualNav { var initX;// = 1200 var initY;// = 100 var initFacing;// = 3.14159265358979 var runNav; var walkNav; var runThreshold;// = 200 var nav; public var isFrozen; public function DualNav(_arg1, _arg2){ initNavs(_arg1, _arg2); } public function offsetPos(_arg1, _arg2){ nav.x = (nav.x + _arg1); nav.y = (nav.y + _arg2); } public function get maxSpeed(){ return (runNav.maxSpeed); } public function get speed(){ return (nav.speed); } public function step(_arg1){ var _local2:* = new Vector((_arg1.x - nav.x), (_arg1.y - nav.y)).getMag(); if ((((nav == walkNav)) && ((_local2 > runThreshold)))){ setNav(runNav); }; if (!isFrozen){ stepNav(_arg1); }; } public function set speed(_arg1){ nav.speed = _arg1; } public function set brake(_arg1){ nav.brake = _arg1; } public function setNav(_arg1){ var _local2:* = nav; nav = _arg1; nav.x = _local2.x; nav.y = _local2.y; nav.speed = _local2.speed; nav.facing = _local2.facing; nav.rangeBuffer = _local2.rangeBuffer; } public function atRest(){ if (nav == runNav){ setNav(walkNav); }; } public function get facing(){ return (nav.facing); } function initNavs(_arg1, _arg2){ runNav = _arg2; walkNav = _arg1; runNav.restListener = atRest; walkNav.restListener = atRest; nav = walkNav; nav.x = initX; nav.y = initY; nav.facing = initFacing; } function stepNav(_arg1){ nav.step(_arg1.x, _arg1.y); } public function get x(){ return (nav.x); } public function get y(){ return (nav.y); } public function set rangeBuffer(_arg1){ nav.rangeBuffer = _arg1; } } }//package classes
Section 11
//Nav (classes.Nav) package classes { import util.*; public class Nav { var _speedUpRange; var _accelMax; var _restListener; var _mVec; var _decelMax; public var rangeBuffer;// = 0 var _maxSpeed; var _pVec; var _turnRateMax; var _accel; var _motionOscRate; public var brake;// = 1 var minVal;// = 0.0001 var motionOsc;// = 0 public var restListener;// = null var _slowRange; public function Nav(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6=0.1){ _maxSpeed = _arg1; _turnRateMax = _arg3; _accelMax = _arg2; _decelMax = _arg2; _slowRange = _arg4; _speedUpRange = _arg5; _motionOscRate = _arg6; _mVec = new Vector(0, 0); _pVec = new Vector(0, 0); } public function get speed(){ return (_mVec.getMag()); } public function set facing(_arg1){ _mVec.setAngle(_arg1); } public function get accel(){ return (_accel); } public function offsetCoords(_arg1, _arg2){ _pVec.x = (_pVec.x + _arg1); _pVec.y = (_pVec.y + _arg2); } function step(_arg1, _arg2){ var _local12:*; var _local3:* = new Vector(_arg1, _arg2); _local3.minus(_pVec); var _local4:* = _local3.getMag(); var _local5:* = _mVec.getMag(); _accel = 0; if (_local4 > (_speedUpRange + rangeBuffer)){ if (_local5 < _maxSpeed){ _accel = Math.min(_accelMax, (_maxSpeed - _local5)); }; } else { if (_local4 < (_slowRange + rangeBuffer)){ if (_local5 > minVal){ _accel = Math.max((-(_decelMax) * brake), -((_local5 - minVal))); } else { if (restListener != null){ restListener(); }; }; }; }; _mVec.setMag((_local5 + _accel)); motionOsc = (motionOsc + _motionOscRate); var _local6:* = Math.min((_local4 / 500), 1); var _local7:* = (((Math.PI / 12) * Math.cos(motionOsc)) * _local6); var _local8:* = (_local5 / _maxSpeed); var _local9:* = _mVec.getAngle(); var _local10:* = (_local3.getAngle() + _local7); var _local11:* = (_local10 - _local9); if (_local11 < -(Math.PI)){ _local11 = (_local11 + (2 * Math.PI)); }; if (_local11 > Math.PI){ _local11 = (_local11 - (2 * Math.PI)); }; if (Math.abs(_local11) < (Math.PI / 16)){ _local12 = (Math.abs(_local11) / (Math.PI / 16)); } else { _local12 = 1; }; if (_local11 < 0){ _local9 = (_local9 - ((_turnRateMax * _local8) * _local12)); } else { _local9 = (_local9 + ((_turnRateMax * _local8) * _local12)); }; _mVec.setAngle(_local9); _pVec.plus(_mVec); } public function set speed(_arg1){ if (_arg1 < minVal){ _arg1 = minVal; }; _mVec.setMag(_arg1); } public function get maxSpeed(){ return (_maxSpeed); } public function set accel(_arg1){ _accel = _arg1; } public function get facing(){ return (_mVec.getAngle()); } public function set y(_arg1){ _pVec.y = _arg1; } public function get x(){ return (_pVec.x); } public function get y(){ return (_pVec.y); } public function set x(_arg1){ _pVec.x = _arg1; } } }//package classes
Section 12
//Palette (classes.Palette) package classes { public class Palette { static var colorLib = [{body0:6723942, spiderEye:0xFFFFFF, bigBody:1126496, shadow:1073206, body1:2245666, heel0:2245666, heel1:2107670, bg:1470528, spider:2107670, nose:13421738, eye:2107670, bigHeel:598080}, {body0:6723942, spiderEye:0xFFFFFF, bigBody:1126496, shadow:1073206, body1:2245666, heel0:2245666, heel1:2107670, bg:1470528, spider:2107670, nose:13421738, eye:2107670, bigHeel:598080}]; static var colrIndx = 1; public static function getColor(_arg1){ var _local2:* = colorLib[colrIndx]; return (_local2[_arg1]); } } }//package classes
Section 13
//Shell (classes.Shell) package classes { import ThreeDee.*; import flash.display.*; import util.*; import flash.events.*; import flash.ui.*; public class Shell extends Sprite { var bumblerR;// = 18 var isIntroed;// = false var viewShell; var bottomFrameThickness;// = 5 var sky; var logo; var numMembers;// = 4 var windowHeight; var viewMask; var windowWidth; var sideFrameThickness;// = 5 var bg; var corners; var partContainer; var tail; var antDog; var anchorPoint; var foreGround; var spider; var head; var shadowShell; public function Shell(){ var _local1:* = ShortCuts.getFlashVersion(); if (_local1 < 9){ ShortCuts.gotoUrl("http://www.vectorpark.com/flashRedirect.html"); }; viewShell = new Sprite(); addChild(viewShell); viewMask = new Sprite(); addChild(viewMask); viewShell.mask = viewMask; logo = new vpLogo(); addChild(logo); logo.useHandCursor = true; logo.buttonMode = true; logo.addEventListener("mouseDown", gotoHomePage); bg = new Sprite(); viewShell.addChild(bg); corners = []; var _local2:* = 0; while (_local2 < 4) { corners[_local2] = new frameCorner(); addChild(corners[_local2]); _local2++; }; foreGround = new Sprite(); viewShell.addChild(foreGround); shadowShell = new Sprite(); foreGround.addChild(shadowShell); ColorTools.setRGB(shadowShell, Palette.getColor("shadow")); partContainer = new ThreeDeePartContainer(); foreGround.addChild(partContainer); ThreeDeeCamera.perspex = 1200; var _local3:* = 1; anchorPoint = new ThreeDeePoint(false, 0, (1500 * _local3), (-300 * _local3)); anchorPoint.locate(); spider = new Spider(this, anchorPoint, shadowShell); partContainer.addPart(spider); spider.initMouseEvents(); antDog = new AntDog(numMembers, bumblerR, this, anchorPoint, partContainer, shadowShell); antDog.step(spider.getTrackCoords(), spider.isJumping); antDog.render(); super(); setUpResize(); onStageResize({}); new DelayedEvent(introDog, 400); new DelayedEvent(begin, 1); root.visible = false; addEventListener("enterFrame", step); } function gotoHomePage(_arg1=null){ ShortCuts.gotoUrl("http://www.vectorpark.com"); } function begin(){ root.visible = true; } function introDog(){ isIntroed = true; } function setUpResize(){ stage.scaleMode = "noScale"; stage.addEventListener(Event.RESIZE, onStageResize); } function mouseOutLogo(_arg1=null){ Mouse.hide(); } public function drawMembers(){ spider.customRender(new ThreeDeeTransform()); if (isIntroed){ antDog.render(); }; partContainer.setDepths(); } function step(_arg1=null){ checkMousePlacement(); var _local2:* = getMouseCoords(); spider.step(_local2.x, _local2.y, antDog.getTrackCoords()); if (isIntroed){ antDog.step(spider.getTrackCoords(), spider.isJumping); }; drawMembers(); } function mouseOverLogo(_arg1=null){ Mouse.show(); } function checkMousePlacement(){ var _local1:* = windowWidth; var _local2:* = windowHeight; if ((((((((((mouseX > (_local1 - sideFrameThickness))) || ((mouseX < sideFrameThickness)))) || ((mouseY > (_local2 - bottomFrameThickness))))) || ((mouseY < sideFrameThickness)))) || (logo.hitTestPoint(mouseX, mouseY)))){ Mouse.show(); } else { Mouse.hide(); }; } public function getMouseCoords(){ var _local1:* = (-(anchorPoint.pz) / (mouseY - foreGround.y)); if ((((_local1 < 0)) || ((_local1 == Infinity)))){ _local1 = 999999; }; var _local2:* = ((_local1 * ThreeDeeCamera.perspex) - anchorPoint.y); var _local3:* = (_local1 * (mouseX - foreGround.x)); return ({x:_local3, y:_local2}); } public function onSpiderJump(_arg1){ if (_arg1 > 3){ isIntroed = true; }; antDog.startle(_arg1, spider.getTrackCoords()); } function onStageResize(_arg1){ var _local2:* = Math.round(stage.stageWidth); var _local3:* = Math.round(stage.stageHeight); windowWidth = Math.min(_local2, 1000); windowHeight = Math.min(_local3, 700); corners[0].x = sideFrameThickness; corners[0].y = sideFrameThickness; corners[1].x = sideFrameThickness; corners[1].y = (windowHeight - bottomFrameThickness); corners[1].rotation = 270; corners[2].x = (windowWidth - sideFrameThickness); corners[2].y = (windowHeight - bottomFrameThickness); corners[2].rotation = 180; corners[3].x = (windowWidth - sideFrameThickness); corners[3].y = sideFrameThickness; corners[3].rotation = 90; logo.x = ((windowWidth - sideFrameThickness) - 150); logo.y = ((windowHeight - bottomFrameThickness) - 20); foreGround.x = (windowWidth / 2); root.x = ((-((_local2 - 1000)) / 2) + ((_local2 - windowWidth) / 2)); root.y = ((-((_local3 - 700)) / 2) + ((_local3 - windowHeight) / 2)); var _local4:* = viewMask.graphics; _local4.clear(); _local4.beginFill(0); _local4.drawRect(sideFrameThickness, sideFrameThickness, (windowWidth - (sideFrameThickness * 2)), (windowHeight - (sideFrameThickness + bottomFrameThickness))); var _local5:* = bg.graphics; _local5.clear(); _local5.beginFill(Palette.getColor("bg")); _local5.drawRect(0, 0, windowWidth, windowHeight); } } }//package classes
Section 14
//Spider (classes.Spider) package classes { import ThreeDee.*; import util.*; public class Spider extends ThreeDeePart { var restZ;// = 4 var iVz;// = 0 var currState;// = "rest" var shadowClip; var compressDistMax; var depthArr; var baseR;// = 2.5 var legs; var ms;// = false var baseZ; var straightenFrac;// = 0 var breatheOsc;// = 0 var bounceMeterMax;// = 15 var vz;// = 0 var numLegs;// = 5 var breathFactor;// = 1 var base; var bounceZ; var springFactor;// = 3 var bounceMeter;// = 0 var head; var parentObj; var grav;// = -0.25 var legSpin;// = 0.1 var crouchMeterMax;// = 15 var crouchMeter;// = 0 public function Spider(_arg1, _arg2, _arg3){ var _local6:*; var _local7:*; super(_arg2); parentObj = _arg1; depthArr = []; var _local4:* = Palette.getColor("spider"); base = new ThreeDeeOval(anchorPoint, baseR, (baseR * 0.8), "z"); base.setColor(_local4); base.Z = restZ; baseZ = restZ; head = new BeakHead(base, baseR, _local4, _local4, Palette.getColor("spiderEye")); head.Z = (baseR + (baseR * 0.5)); compressDistMax = -((restZ - (baseR * 0.8))); shadowClip = new ThreeDeeDisc(anchorPoint, baseR, "z"); _arg3.addChild(shadowClip); legs = []; var _local5:* = 0; while (_local5 < numLegs) { _local6 = ((((Math.PI * 2) * _local5) / numLegs) + (Math.PI / 24)); _local7 = new SpiderLeg(base, _local6, (baseR * 1.8), _local4); _local7.X = (baseR - 0.5); addChild(_local7); legs.push(_local7); depthArr.push(_local7); _local5++; }; addChild(base); addChild(head); depthArr.push(base); depthArr.push(head); X = -2000; } public function customRender(_arg1){ var _local2:*; var _local3:*; base.customRender(_arg1); head.customLocate(_arg1); head.render(-1); for each (_local2 in legs) { _local2.render(); }; shadowClip.locate(); shadowClip.customRender(_arg1); depthArr.sortOn("depth"); _local3 = 0; while (_local3 < depthArr.length) { setChildIndex(depthArr[_local3], _local3); _local3++; }; } public function setLegStraighten(_arg1){ var _local2:*; for each (_local2 in legs) { _local2.setStraighten((_arg1 * 0.5)); }; } public function getTrackCoords(){ return ({x:px, y:py, z:(pz + base.Z)}); } function onMouseDownEvent(_arg1){ ms = true; } public function step(_arg1, _arg2, _arg3){ var _local8:*; var _local4:* = ((_arg1 + (X * 3)) / 4); var _local5:* = ((_arg2 + (Y * 3)) / 4); var _local6:* = new Vector((_local4 - X), (_local5 - Y)); X = _local4; Y = _local5; locate(); baseZ = doStep(1, baseZ); breatheOsc = (breatheOsc + 0.1); var _local7:* = (((((1 - Math.cos(breatheOsc)) - 0.5) * 2) * 0.15) * breathFactor); base.Z = (baseZ + _local7); base.locate(); head.lookStep(_arg3, 0); for each (_local8 in legs) { _local8.step((baseZ + _local7), _local6.copy()); if (straightenFrac != 0){ setLegStraighten(straightenFrac); }; if (currState == "leap"){ _local8.facing = (_local8.facing + legSpin); }; if (Math.sin(_local8.facing) > 0){ ColorTools.setTint(_local8, Palette.getColor("bg"), (Math.sin(_local8.facing) / 5)); } else { ColorTools.setTint(_local8, Palette.getColor("bg"), 0); }; }; } function onMouseUpEvent(_arg1){ ms = false; } public function initMouseEvents(){ stage.addEventListener("mouseDown", onMouseDownEvent); stage.addEventListener("mouseUp", onMouseUpEvent); } public function get isJumping(){ return (((!((currState == "rest"))) && (!((currState == "crouch"))))); } function doStep(_arg1, _arg2){ var _local3:*; var _local4:*; var _local5:*; straightenFrac = 0; if (currState == "rest"){ breathFactor = 1; if (ms){ currState = "crouch"; crouchMeter = 0; _arg1 = 0; }; _arg1 = 0; } else { if (currState == "crouch"){ if (!ms){ currState = "spring"; vz = 0; breathFactor = 0; } else { if (crouchMeter < crouchMeterMax){ crouchMeter++; }; _local3 = Curves.easeOut((crouchMeter / crouchMeterMax)); _local4 = (compressDistMax * _local3); _arg2 = (restZ + _local4); breathFactor = (1 - _local3); }; _arg1 = 0; } else { if (currState == "spring"){ vz = (vz + ((restZ - _arg2) * springFactor)); _arg2 = (_arg2 + (vz * _arg1)); if (_arg2 > restZ){ currState = "leap"; _arg1 = ((_arg2 - restZ) / vz); _arg2 = restZ; iVz = vz; parentObj.onSpiderJump(vz); } else { _arg1 = 0; }; if (vz == 0){ currState = "rest"; }; } else { if (currState == "leap"){ vz = (vz + (grav * _arg1)); _arg2 = (_arg2 + (vz * _arg1)); if (_arg2 < restZ){ currState = "bounce"; _arg1 = ((_arg2 - restZ) / vz); _arg2 = restZ; bounceMeter = 0; bounceZ = restZ; } else { straightenFrac = (1 - Math.abs((vz / iVz))); _arg1 = 0; }; } else { if (currState == "bounce"){ bounceMeter = (bounceMeter + _arg1); if (bounceMeter > bounceMeterMax){ bounceMeter = bounceMeterMax; }; vz = (vz * Math.pow(0.5, _arg1)); bounceZ = (bounceZ + (vz * _arg1)); _local5 = Curves.scurve((bounceMeter / bounceMeterMax)); _arg2 = ((bounceZ * (1 - _local5)) + (restZ * _local5)); if (bounceMeter == bounceMeterMax){ currState = "rest"; }; breathFactor = Curves.scurve((bounceMeter / bounceMeterMax)); _arg1 = 0; }; }; }; }; }; if (_arg1 > 0){ return (doStep(_arg1, _arg2)); }; return (_arg2); } function get isAirborne(){ return ((base.Z > restZ)); } } }//package classes
Section 15
//SpiderLeg (classes.SpiderLeg) package classes { import ThreeDee.*; import util.*; public class SpiderLeg extends ThreeDeePart { var knee; var drawShape; var stillTimer;// = 0 var stickRange; var stickCoords; var baseExt; var base; var segLength; var oStickCoords; public var facing; var transitCounter;// = 0 var inTransit;// = false var legColor; var transitCounterMax; var foot; public function SpiderLeg(_arg1, _arg2, _arg3, _arg4){ super(_arg1); legColor = _arg4; stickCoords = new Vector(0, 0); oStickCoords = {x:0, y:0}; stickRange = (_arg3 * 1.5); segLength = _arg3; facing = _arg2; baseExt = _arg3; base = new ThreeDeePoint(anchorPoint); knee = new ThreeDeePoint(anchorPoint); foot = new ThreeDeePoint(anchorPoint); drawShape = new ThreeDeeDrawShell(0.1); addChild(drawShape); } public function step(_arg1, _arg2){ var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; customLocate(new ThreeDeeTransform({z:facing})); var _local3:* = Math.max((_arg1 - (segLength * 1.5)), 0); base.z = 0; if (((!(inTransit)) && ((_local3 == 0)))){ _arg2 = _arg2.rotate(facing); stickCoords.minus(_arg2); _local5 = stickCoords.getAngle(); _local6 = stickCoords.getMag(); _local7 = _arg2.getAngle(); _local8 = _arg2.getMag(); if (_local6 > stickRange){ stickCoords.x = ((((Math.random() - 0.5) * 0.5) + (0.5 * Math.cos(_local7))) * stickRange); stickCoords.y = ((((Math.random() - 0.5) * 0.5) + (0.5 * Math.sin(_local7))) * stickRange); inTransit = true; transitCounter = 0; transitCounterMax = 6; }; if (((!(inTransit)) && ((_local8 < 0.1)))){ stillTimer--; if (stillTimer == 0){ stickCoords.x = (stickRange / 3); stickCoords.y = 0; inTransit = true; transitCounter = 0; transitCounterMax = 12; }; } else { stillTimer = Math.round(((Math.random() * 30) + 5)); }; }; if (inTransit){ transitCounter++; _local9 = (transitCounter / transitCounterMax); _local10 = Curves.scurve(_local9); foot.x = ((baseExt + (stickCoords.x * _local10)) + (oStickCoords.x * (1 - _local10))); foot.y = ((stickCoords.y * _local10) + (oStickCoords.y * (1 - _local10))); foot.z = (((2 * Curves.scurve((_local9 * 2))) + _local3) - _arg1); if (transitCounter == transitCounterMax){ inTransit = false; }; } else { foot.x = (baseExt + stickCoords.x); foot.y = stickCoords.y; foot.z = ((0 + _local3) - _arg1); oStickCoords = {x:stickCoords.x, y:stickCoords.y}; }; var _local4:* = ThreeDeeLimbUtil.getKneeCoords(base, foot, segLength); knee.x = _local4.x; knee.y = _local4.y; knee.z = _local4.z; } public function render(){ var _local1:* = new ThreeDeeTransform({z:facing}); base.customLocate(_local1); knee.customLocate(_local1); foot.customLocate(_local1); var _local2:* = drawShape; _local2.clear(); _local2.lineStyle((1 * base.depth), legColor); _local2.moveTo(base.vx, base.vy); _local2.lineTo((((knee.vx * 2) + base.vx) / 3), (((knee.vy * 2) + base.vy) / 3)); _local2.curveTo(knee.vx, knee.vy, (((knee.vx * 2) + foot.vx) / 3), (((knee.vy * 2) + foot.vy) / 3)); _local2.lineTo(foot.vx, foot.vy); } public function setStraighten(_arg1){ var _local2:* = Math.atan2((knee.z - base.z), (knee.x - base.x)); var _local3:* = Math.atan2((foot.z - knee.z), (foot.x - knee.x)); var _local4:* = ((_local2 * (1 - _arg1)) + (0 * _arg1)); var _local5:* = ((_local3 * (1 - _arg1)) + (0 * _arg1)); knee.x = (base.x + (segLength * Math.cos(_local4))); knee.z = (base.z + (segLength * Math.sin(_local4))); foot.x = (knee.x + (segLength * Math.cos(_local5))); foot.z = (knee.z + (segLength * Math.sin(_local5))); } } }//package classes
Section 16
//WalkLeg (classes.WalkLeg) package classes { import util.*; public class WalkLeg { var _yOff; var _swingArcLength; var _touchY;// = 0 var _swingOffsetY; var _groundArcRad; public var footX;// = 0 public var footY;// = 0 var _groundLength; public var footZ;// = 0 var _totalWalkLength; var _onHit; var _addOsc; var _osc; var iFootX;// = 0 var _swingArcRad; var _currWalkDist; var iFootY;// = 0 public var footTip; var _dir; var _baseSwingRadius; var _groundY; var currMode; var _footTipMax; var _swingRadius; public function WalkLeg(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7=null){ _dir = _arg1; _yOff = _arg2; _baseSwingRadius = _arg3; _osc = _arg6; _footTipMax = _arg5; _onHit = _arg7; _groundArcRad = _arg4; setStrideFactor(1.2); } function initStride(){ _swingArcRad = ((2 * Math.PI) - _groundArcRad); _swingOffsetY = (_touchY - (_swingRadius * Math.cos((_groundArcRad / 2)))); _swingArcLength = (_swingArcRad * _swingRadius); _groundLength = ((Math.sin((_groundArcRad / 2)) * _swingRadius) * 2); _totalWalkLength = (_swingArcLength + _groundLength); _currWalkDist = (_totalWalkLength * _osc); } public function setStrideFactor(_arg1){ _swingRadius = (_baseSwingRadius * Math.max(_arg1, 1E-6)); initStride(); } function setAirCoords(_arg1){ var _local2:* = Curves.scurve(_arg1); var _local3:* = (((_swingArcRad / 2) - (Math.PI / 2)) - (_swingArcRad * _arg1)); footX = ((iFootX * (1 - _local2)) + ((_groundLength / 2) * _local2)); footY = ((iFootY * (1 - _local2)) + (_yOff * _local2)); footZ = (((Math.sin(_local3) * _swingRadius) + _swingOffsetY) * 0.75); } public function step(_arg1, _arg2, _arg3=false){ var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local4:* = 1; var _local5:* = (_arg1 / _totalWalkLength); _addOsc = (_local5 * _local4); _osc = (_osc + _addOsc); if (_osc > 1){ _osc = (_osc - 1); }; _currWalkDist = (_totalWalkLength * _osc); if (_currWalkDist > _totalWalkLength){ _currWalkDist = (_currWalkDist - _totalWalkLength); }; if (_currWalkDist < _groundLength){ if (currMode == "air"){ setAirCoords(1); if (((!((_onHit == null))) && ((_arg1 > 1)))){ _onHit(); }; }; currMode = "ground"; _local6 = ((-(_swingArcRad) / 2) - (Math.PI / 2)); _local7 = (footX - (_arg1 * Math.cos(_arg2))); _local8 = (footY - (_arg1 * Math.sin(_arg2))); footX = ((_local7 * Math.cos(_arg2)) + (_local8 * Math.sin(_arg2))); footY = ((_local8 * Math.cos(_arg2)) - (_local7 * Math.sin(_arg2))); footZ = ((Math.sin(_local6) * _swingRadius) + _swingOffsetY); footTip = 0; } else { if (currMode == "ground"){ iFootX = footX; iFootY = footY; }; currMode = "air"; _local9 = ((_currWalkDist - _groundLength) / _swingArcLength); setAirCoords(_local9); footTip = (Math.sin(((_local9 * Math.PI) * 2)) * _footTipMax); }; } public function get osc(){ return (_osc); } } }//package classes
Section 17
//Color (fl.motion.Color) package fl.motion { import flash.geom.*; import flash.display.*; public class Color extends ColorTransform { private var _tintColor:Number;// = 0 private var _tintMultiplier: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){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); } private function deriveTintColor():uint{ var _local1:Number = (1 / this.tintMultiplier); var _local2:uint = Math.round((this.redOffset * _local1)); var _local3:uint = Math.round((this.greenOffset * _local1)); var _local4:uint = Math.round((this.blueOffset * _local1)); var _local5:uint = (((_local2 << 16) | (_local3 << 8)) | _local4); return (_local5); } public function set brightness(_arg1:Number):void{ if (_arg1 > 1){ _arg1 = 1; } else { if (_arg1 < -1){ _arg1 = -1; }; }; var _local2:Number = (1 - Math.abs(_arg1)); var _local3:Number = 0; if (_arg1 > 0){ _local3 = (_arg1 * 0xFF); }; this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = _local2)); this.redOffset = (this.greenOffset = (this.blueOffset = _local3)); } private function parseXML(_arg1:XML=null):Color{ var _local3:XML; var _local4:String; var _local5:uint; if (!_arg1){ return (this); }; var _local2:XML = _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 function get tintColor():uint{ return (this._tintColor); } 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)); } public function set tintMultiplier(_arg1:Number):void{ this.setTint(this.tintColor, _arg1); } public function get tintMultiplier():Number{ return (this._tintMultiplier); } public function setTint(_arg1:uint, _arg2:Number):void{ this._tintColor = _arg1; this._tintMultiplier = _arg2; this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = (1 - _arg2))); var _local3:uint = ((_arg1 >> 16) & 0xFF); var _local4:uint = ((_arg1 >> 8) & 0xFF); var _local5:uint = (_arg1 & 0xFF); this.redOffset = Math.round((_local3 * _arg2)); this.greenOffset = Math.round((_local4 * _arg2)); this.blueOffset = Math.round((_local5 * _arg2)); } public static function interpolateColor(_arg1:uint, _arg2:uint, _arg3:Number):uint{ var _local4:Number = (1 - _arg3); var _local5:uint = ((_arg1 >> 24) & 0xFF); var _local6:uint = ((_arg1 >> 16) & 0xFF); var _local7:uint = ((_arg1 >> 8) & 0xFF); var _local8:uint = (_arg1 & 0xFF); var _local9:uint = ((_arg2 >> 24) & 0xFF); var _local10:uint = ((_arg2 >> 16) & 0xFF); var _local11:uint = ((_arg2 >> 8) & 0xFF); var _local12:uint = (_arg2 & 0xFF); var _local13:uint = ((_local5 * _local4) + (_local9 * _arg3)); var _local14:uint = ((_local6 * _local4) + (_local10 * _arg3)); var _local15:uint = ((_local7 * _local4) + (_local11 * _arg3)); var _local16:uint = ((_local8 * _local4) + (_local12 * _arg3)); var _local17:uint = ((((_local13 << 24) | (_local14 << 16)) | (_local15 << 8)) | _local16); return (_local17); } public static function interpolateTransform(_arg1:ColorTransform, _arg2:ColorTransform, _arg3:Number):ColorTransform{ var _local4:Number = (1 - _arg3); var _local5:ColorTransform = 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 18
//ThreeDeeCamera (ThreeDee.ThreeDeeCamera) package ThreeDee { public class ThreeDeeCamera { public static var perspex = 1000; } }//package ThreeDee
Section 19
//ThreeDeeCircle (ThreeDee.ThreeDeeCircle) package ThreeDee { public class ThreeDeeCircle extends ThreeDeeElement { public var shape; public var r; public function ThreeDeeCircle(_arg1, _arg2){ super(_arg1); buildShape(); radius = _arg2; } public function customRender(_arg1){ sizeAndPlace(); } override public function setColor(_arg1){ super.setColor(_arg1); shapeShell.graphics.clear(); buildShape(); } public function set radius(_arg1){ r = _arg1; } public function sizeAndPlace(_arg1=1){ shapeShell.x = anchorPoint.vx; shapeShell.y = anchorPoint.vy; var _local2:* = (anchorPoint.depth * _arg1); shapeShell.scaleX = ((r / 50) * _local2); shapeShell.scaleY = ((r / 50) * _local2); } public function drawCircle(_arg1, _arg2){ var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local3:* = (_arg2 * 1.08); var _local4:* = 8; _arg1.moveTo(_arg2, 0); var _local5:* = 1; while (_local5 <= _local4) { _local6 = (_local5 / _local4); _local7 = ((_local5 - 0.5) / _local4); _local8 = ((Math.PI * 2) * _local6); _local9 = ((Math.PI * 2) * _local7); _arg1.curveTo((Math.cos(_local9) * _local3), (Math.sin(_local9) * _local3), (Math.cos(_local8) * _arg2), (Math.sin(_local8) * _arg2)); _local5++; }; } public function render(){ sizeAndPlace(); } public function get radius(){ return (r); } function buildShape(){ shapeShell.graphics.beginFill(baseColor); drawCircle(shapeShell.graphics, 50); } } }//package ThreeDee
Section 20
//ThreeDeeCone (ThreeDee.ThreeDeeCone) package ThreeDee { public class ThreeDeeCone extends ThreeDeePart { var disc; var tipColor; public var l; public var tipPt; public function ThreeDeeCone(_arg1, _arg2, _arg3, _arg4="x", _arg5=1){ super(_arg1); l = _arg3; tipPt = new ThreeDeePoint(anchorPoint); tipPt.setCoord(_arg4, (_arg3 * _arg5)); disc = new ThreeDeeDisc(anchorPoint, _arg2, _arg4, _arg5); addChild(disc); } public function setColors(_arg1, _arg2){ tipColor = _arg2; disc.setColors(_arg1, _arg2); } public function customRender(_arg1){ disc.customLocate(_arg1); disc.customRender(_arg1); tipPt.customLocate(_arg1); drawTip(); } function drawTip(){ var _local1:* = this.graphics; _local1.clear(); var _local2:* = ThreeDeeMaths.getTangentPointToDisc(tipPt, disc, 1); var _local3:* = ThreeDeeMaths.getTangentPointToDisc(tipPt, disc, -1); _local1.moveTo(tipPt.vx, tipPt.vy); _local1.beginFill(tipColor); _local1.lineTo(_local2.vx, _local2.vy); _local1.lineTo(_local3.vx, _local3.vy); _local1.lineTo(tipPt.vx, tipPt.vy); _local1.endFill(); } } }//package ThreeDee
Section 21
//ThreeDeeDisc (ThreeDee.ThreeDeeDisc) package ThreeDee { public class ThreeDeeDisc extends ThreeDeeCircle { public var subShape; public var subShadow; public var sideFace; public var squish; var lastColorCache;// = null public var normalDir; public var normal; var colors;// = false public var oneSided;// = false public var rote; public function ThreeDeeDisc(_arg1, _arg2, _arg3="x", _arg4=1){ super(_arg1, _arg2); normalDir = _arg4; normal = new ThreeDeePoint(anchorPoint); normal.setCoord(_arg3, (1 * _arg4)); } override public function sizeAndPlace(_arg1=1){ shapeShell.rotation = 0; super.sizeAndPlace(_arg1); renderSquash(); } override public function render(){ normal.locate(); squash(); sizeAndPlace(); applyColors(); } override public function setColor(_arg1){ if (_arg1 == lastColorCache){ return; }; super.setColor(_arg1); lastColorCache = _arg1; } override public function customRender(_arg1){ normal.customLocate(_arg1); squash(); sizeAndPlace(); applyColors(); } function sideCheck(){ return (((squish > 0)) ? 1 : -1); } public function setColors(_arg1, _arg2){ colors = [_arg1, _arg2]; } public function renderSquash(){ shapeShell.scaleX = (shapeShell.scaleX * squish); shapeShell.rotation = ((rote / Math.PI) * 180); } function applyColors(){ if (((oneSided) && ((squish < 0)))){ visible = false; } else { visible = true; }; if (colors != false){ if (squish > 0){ setColor(colors[0]); } else { setColor(colors[1]); }; }; } public function squash(){ var _local1:* = (normal.vx - anchorPoint.vx); var _local2:* = (normal.vy - anchorPoint.vy); var _local3:* = Math.sqrt((((normal.px * normal.px) + (normal.py * normal.py)) + (normal.pz * normal.pz))); var _local4:* = Math.sqrt((((anchorPoint.px * anchorPoint.px) + (anchorPoint.py * anchorPoint.py)) + (anchorPoint.pz * anchorPoint.pz))); squish = (_local3 - _local4); rote = Math.atan2(_local2, _local1); } } }//package ThreeDee
Section 22
//ThreeDeeDome (ThreeDee.ThreeDeeDome) package ThreeDee { public class ThreeDeeDome extends ThreeDeePart { var base; var semiCircle; public function ThreeDeeDome(_arg1, _arg2, _arg3="x", _arg4=1){ super(_arg1); semiCircle = new semiCircleShape(); base = new ThreeDeeDisc(anchorPoint, _arg2, _arg3, _arg4); shapeShell.addChild(semiCircle); shapeShell.addChild(base); } public function set radius(_arg1){ base.radius = _arg1; } public function customRender(_arg1){ base.locate(); base.customRender(_arg1); semiCircle.x = base.vx; semiCircle.y = base.vy; semiCircle.rotation = 0; semiCircle.width = (base.radius * depth); semiCircle.height = ((base.radius * depth) * 2); semiCircle.rotation = base.rotation; } public function setColors(_arg1, _arg2){ setColor(_arg2, semiCircle); base.setColors(_arg1, _arg2); } public function get radius(){ return (base.radius); } } }//package ThreeDee
Section 23
//ThreeDeeDrawShell (ThreeDee.ThreeDeeDrawShell) package ThreeDee { import flash.display.*; public class ThreeDeeDrawShell extends Shape { var _scl;// = 1 public function ThreeDeeDrawShell(_arg1=1){ _scl = _arg1; scaleX = _arg1; scaleY = _arg1; } public function curveTo(_arg1, _arg2, _arg3, _arg4){ graphics.curveTo((_arg1 / _scl), (_arg2 / _scl), (_arg3 / _scl), (_arg4 / _scl)); } public function lineStyle(_arg1=0, _arg2=0, _arg3=1){ graphics.lineStyle((_arg1 / _scl), _arg2, _arg3); } public function lineTo(_arg1, _arg2){ graphics.lineTo((_arg1 / _scl), (_arg2 / _scl)); } public function moveTo(_arg1, _arg2){ graphics.moveTo((_arg1 / _scl), (_arg2 / _scl)); } public function beginFill(_arg1, _arg2=1){ graphics.beginFill(_arg1, _arg2); } public function clear(){ graphics.clear(); } public function endFill(){ graphics.endFill(); } public function endLine(){ graphics.lineStyle(); } } }//package ThreeDee
Section 24
//ThreeDeeElement (ThreeDee.ThreeDeeElement) package ThreeDee { import flash.geom.*; import flash.display.*; import util.*; public class ThreeDeeElement extends Shape { public var depthPoint; var shapeShell; public var baseColor;// = 0xFFFFFF var shadowColor; public var shadowPz; public var anchorPoint; var myShadow; public function ThreeDeeElement(_arg1){ if (_arg1 != false){ setAnchor(new ThreeDeePoint(_arg1, 0, 0, 0)); }; shapeShell = this; } public function getShadowClip(){ return (new Shape()); } public function get px(){ return (anchorPoint.px); } public function get py(){ return (anchorPoint.py); } public function get pz(){ return (anchorPoint.pz); } public function get iY(){ return (anchorPoint.iy); } public function get iZ(){ return (anchorPoint.iz); } public function getCoords(){ return ({x:anchorPoint.x, y:anchorPoint.y, z:anchorPoint.z}); } public function get iX(){ return (anchorPoint.ix); } public function setCoords(_arg1, _arg2, _arg3, _arg4=false){ anchorPoint.x = _arg1; anchorPoint.y = _arg2; anchorPoint.z = _arg3; if (_arg4){ anchorPoint.ix = _arg1; anchorPoint.iy = _arg2; anchorPoint.iz = _arg3; }; } public function setColor(_arg1){ baseColor = _arg1; } public function get preciseDepth(){ return (anchorPoint.preciseDepth); } public function customLocate(_arg1){ anchorPoint.customLocate(_arg1); } public function addShadow(_arg1, _arg2=0, _arg3=null){ myShadow = getShadowClip(); _arg1.addChild(myShadow); shadowColor = _arg2; shadowPz = ((_arg3)==null) ? rootPoint.pz : _arg3; } public function set Y(_arg1){ anchorPoint.y = _arg1; } public function set Z(_arg1){ anchorPoint.z = _arg1; } public function setX(_arg1){ anchorPoint.x = _arg1; } public function set X(_arg1){ anchorPoint.x = _arg1; } public function setZ(_arg1){ anchorPoint.z = _arg1; } public function setAnchor(_arg1){ anchorPoint = _arg1; depthPoint = _arg1; } public function getX(){ return (anchorPoint.x); } public function getY(){ return (anchorPoint.y); } public function getZ(){ return (anchorPoint.z); } public function get vx(){ return (anchorPoint.vx); } public function setCoord(_arg1, _arg2){ anchorPoint.setCoord(_arg1, _arg2); } public function get rootPoint(){ return (anchorPoint.rootPoint); } public function setY(_arg1){ anchorPoint.y = _arg1; } public function locate(){ anchorPoint.locate(); } public function get Y(){ return (anchorPoint.y); } public function get Z(){ return (anchorPoint.z); } public function get focalDepth(){ return (anchorPoint.focalDepth); } public function get X(){ return (anchorPoint.x); } public function get vy(){ return (anchorPoint.vy); } public function get depth(){ return (depthPoint.depth); } public function setPCoords(_arg1, _arg2, _arg3){ anchorPoint.x = (_arg1 - anchorPoint._p.px); anchorPoint.y = (_arg2 - anchorPoint._p.py); anchorPoint.z = (_arg3 - anchorPoint._p.pz); } public function setTint(_arg1, _arg2){ ColorTools.setTint(this, _arg1, _arg2); } } }//package ThreeDee
Section 25
//ThreeDeeLimbUtil (ThreeDee.ThreeDeeLimbUtil) package ThreeDee { public class ThreeDeeLimbUtil { public static function getKneeCoords(_arg1, _arg2, _arg3){ var _local4:* = (_arg2.x - _arg1.x); var _local5:* = (_arg2.z - _arg1.z); var _local6:* = ((Math.PI / 2) - Math.atan2(_local5, _local4)); var _local7:* = (Math.sqrt(((_local4 * _local4) + (_local5 * _local5))) / 2); var _local8:* = -(Math.sqrt(((_arg3 * _arg3) - (_local7 * _local7)))); var _local9:* = _local7; if (isNaN(_local8)){ _local8 = 0; }; return ({x:((_arg1.x + (_local8 * Math.cos(_local6))) + (_local9 * Math.sin(_local6))), z:((_arg1.z + (_local9 * Math.cos(_local6))) - (_local8 * Math.sin(_local6))), y:((_arg1.y + _arg2.y) / 2)}); } } }//package ThreeDee
Section 26
//ThreeDeeMaths (ThreeDee.ThreeDeeMaths) package ThreeDee { import util.*; public class ThreeDeeMaths { public static function getTangentPointToDisc(_arg1, _arg2, _arg3){ var _local4:* = (_arg1.vx - _arg2.vx); var _local5:* = (_arg1.vy - _arg2.vy); var _local6:* = -(_arg2.rote); var _local7:* = ((_local4 * Math.cos(-(_local6))) + (_local5 * Math.sin(-(_local6)))); var _local8:* = ((_local5 * Math.cos(-(_local6))) - (_local4 * Math.sin(-(_local6)))); var _local9:* = (_arg2.radius * _arg2.depth); var _local10:* = Math.abs(_arg2.squish); var _local11:* = Maths.findTangent((_local7 / _local10), _local8, _local9, _arg3); var _local12:* = {vx:_local11.x, vy:_local11.y}; {vx:_local11.x, vy:_local11.y}.vx = (_local12.vx * _local10); var _local13:* = _local12.vx; var _local14:* = _local12.vy; _local12.vx = ((_local13 * Math.cos(_local6)) + (_local14 * Math.sin(_local6))); _local12.vy = ((_local14 * Math.cos(_local6)) - (_local13 * Math.sin(_local6))); _local12.vx = (_local12.vx + _arg2.vx); _local12.vy = (_local12.vy + _arg2.vy); return (_local12); } public static function getTangentPointToCircle(_arg1, _arg2, _arg3, _arg4=0){ var _local5:* = (_arg1.vx - _arg2.vx); var _local6:* = (_arg1.vy - _arg2.vy); var _local7:* = Maths.findTangent(_local5, _local6, ((_arg2.radius - _arg4) * _arg2.depth), _arg3); return ({vx:_local7.x, vy:_local7.y}); } public static function getThreeDeeFromTwoDeeWithPy(_arg1, _arg2, _arg3){ var _local4:* = (ThreeDeeCamera.perspex / _arg3); var _local5:* = (_arg1 / _local4); var _local6:* = (-(_arg2) / _local4); return ({x:_local5, y:_arg3, z:_local6}); } public static function getThreeDeeFromTwoDeeWithPz(_arg1, _arg2, _arg3){ var _local4:* = (-(_arg3) / _arg2); if ((((_local4 < 0)) || ((_local4 == Infinity)))){ _local4 = 999999; }; var _local5:* = (_local4 * ThreeDeeCamera.perspex); var _local6:* = (_local4 * _arg2); return ({x:_local6, y:_local5, z:_arg3}); } } }//package ThreeDee
Section 27
//ThreeDeeObject (ThreeDee.ThreeDeeObject) package ThreeDee { class ThreeDeeObject { var sqrt; var atan2; public var PI;// = 3.14159265358979 var abs; var cos; var sin; function ThreeDeeObject(){ sqrt = Math.sqrt; abs = Math.abs; atan2 = Math.atan2; sin = Math.sin; cos = Math.cos; super(); } function piWrap(_arg1){ if (_arg1 > PI){ _arg1 = (_arg1 - (PI * 2)); } else { if (_arg1 < -(PI)){ _arg1 = (_arg1 + (PI * 2)); }; }; return (_arg1); } function pyt(_arg1, _arg2){ return (Math.sqrt(((_arg1 * _arg1) + (_arg2 * _arg2)))); } function sCurve(_arg1){ return (((-(cos((_arg1 * PI))) + 1) / 2)); } } }//package ThreeDee
Section 28
//ThreeDeeOval (ThreeDee.ThreeDeeOval) package ThreeDee { public class ThreeDeeOval extends ThreeDeeDisc { var radius2; public function ThreeDeeOval(_arg1, _arg2, _arg3, _arg4="x"){ super(_arg1, _arg2, _arg4); radius2 = _arg3; } override public function squash(){ var _local1:* = ((normal.vx - vx) / ((depth + normal.depth) / 2)); var _local2:* = ((normal.vy - vy) / ((depth + normal.depth) / 2)); var _local3:* = Math.sqrt(((_local1 * _local1) + (_local2 * _local2))); squish = (1 + (((radius2 - radius) / radius) * _local3)); rote = Math.atan2(_local2, _local1); } } }//package ThreeDee
Section 29
//ThreeDeePart (ThreeDee.ThreeDeePart) package ThreeDee { import flash.geom.*; import flash.display.*; import util.*; public class ThreeDeePart extends ThreeDeePartContainer { public var shapeShell; public var shadowColor; public var innerForm; public var myMask;// = null public var shadowPz; public var maskKey;// = null public var anchorPoint; public var currMaskName;// = null public var myShadow; public function ThreeDeePart(_arg1){ if (_arg1 != false){ setAnchor(new ThreeDeePoint(_arg1, 0, 0, 0)); }; shapeShell = getShapeShell(); } public function getShapeShell(){ return (this); } public function getShadowClip(){ return (new Sprite()); } public function get px(){ return (anchorPoint.px); } public function get py(){ return (anchorPoint.py); } public function get pz(){ return (anchorPoint.pz); } public function addForm(_arg1){ shapeShell.addChild(_arg1); } public function get depthPoint(){ return (depthRef); } public function get iY(){ return (anchorPoint.iy); } public function sizeAndPlace(_arg1=1){ shapeShell.x = anchorPoint.vx; shapeShell.y = anchorPoint.vy; var _local2:* = (anchorPoint.depth * _arg1); shapeShell.scaleX = _local2; shapeShell.scaleY = _local2; } public function getCoords(){ return ({x:anchorPoint.x, y:anchorPoint.y, z:anchorPoint.z}); } public function rotateContents(_arg1){ shapeShell.rotation = ((_arg1 / Math.PI) * 180); } public function get iX(){ return (anchorPoint.ix); } public function sizeAndPlaceShadow(_arg1=1){ myShadow.x = anchorPoint.vx; myShadow.y = anchorPoint.vys; var _local2:* = (anchorPoint.depth * _arg1); myShadow.scaleX = _local2; myShadow.scaleY = (anchorPoint.sq * _local2); } public function set depthPoint(_arg1){ depthRef = _arg1; } public function setCoords(_arg1, _arg2, _arg3, _arg4=false){ anchorPoint.x = _arg1; anchorPoint.y = _arg2; anchorPoint.z = _arg3; if (_arg4){ anchorPoint.ix = _arg1; anchorPoint.iy = _arg2; anchorPoint.iz = _arg3; }; } public function addShadow(_arg1, _arg2=0, _arg3=null){ myShadow = getShadowClip(); _arg1.addChild(myShadow); shadowColor = _arg2; shadowPz = ((_arg3)==null) ? rootPoint.pz : _arg3; } public function lineTo(_arg1, _arg2){ _arg1.lineTo(_arg2.vx, _arg2.vy); } public function setColor(_arg1, _arg2=null){ if (_arg2 == null){ _arg2 = shapeShell; }; ColorTools.setRGB(_arg2, _arg1); } public function get iZ(){ return (anchorPoint.iz); } public function customLocate(_arg1){ anchorPoint.customLocate(_arg1); } public function moveTo(_arg1, _arg2){ _arg1.moveTo(_arg2.vx, _arg2.vy); } public function get preciseDepth(){ return (anchorPoint.preciseDepth); } public function set X(_arg1){ anchorPoint.x = _arg1; } public function set Y(_arg1){ anchorPoint.y = _arg1; } public function setCoord(_arg1, _arg2){ anchorPoint.setCoord(_arg1, _arg2); } public function set Z(_arg1){ anchorPoint.z = _arg1; } public function setX(_arg1){ anchorPoint.x = _arg1; } public function setY(_arg1){ anchorPoint.y = _arg1; } public function setZ(_arg1){ anchorPoint.z = _arg1; } public function setAnchor(_arg1){ anchorPoint = _arg1; depthPoint = _arg1; } function getColorTransform(){ return (new Transform(this)); } public function getX(){ return (anchorPoint.x); } public function getY(){ return (anchorPoint.y); } public function removeShadow(){ myShadow.parent.removeChild(myShadow); } public function get vx(){ return (anchorPoint.vx); } public function getZ(){ return (anchorPoint.z); } public function get rootPoint(){ return (anchorPoint.rootPoint); } public function curveTo(_arg1, _arg2, _arg3){ _arg1.curveTo(_arg2.vx, _arg2.vy, _arg3.vx, _arg3.vy); } public function locate(){ anchorPoint.locate(); } public function get Y(){ return (anchorPoint.y); } public function get Z(){ return (anchorPoint.z); } public function get focalDepth(){ return (anchorPoint.focalDepth); } public function get X(){ return (anchorPoint.x); } public function createForm(_arg1:Class){ innerForm = new (_arg1); addForm(innerForm); } public function maskOff(){ if (myMask == null){ return; }; removeChild(myMask); myMask = null; currMaskName = null; this.mask = null; } public function get vy(){ return (anchorPoint.vy); } public function locateRote(_arg1){ anchorPoint.locateRote(_arg1); } public function maskOn(_arg1="default"){ if (currMaskName == _arg1){ return; }; if (myMask != null){ removeChild(myMask); }; myMask = maskKey[_arg1]; addChild(myMask); this.mask = myMask; } public function setMask(_arg1, _arg2="default"){ if (maskKey == null){ maskKey = {}; }; maskKey[_arg2] = _arg1; } public function setPCoords(_arg1, _arg2, _arg3){ anchorPoint.x = (_arg1 - anchorPoint._p.px); anchorPoint.y = (_arg2 - anchorPoint._p.py); anchorPoint.z = (_arg3 - anchorPoint._p.pz); } public function setTint(_arg1, _arg2, _arg3=null){ if (_arg3 == null){ _arg3 = this; }; ColorTools.setTint(_arg3, _arg1, _arg2); } } }//package ThreeDee
Section 30
//ThreeDeePartContainer (ThreeDee.ThreeDeePartContainer) package ThreeDee { import flash.display.*; public class ThreeDeePartContainer extends Sprite { var parts; var fgClips; var depthRef; var bgCounter;// = 0 var bgClips; public function ThreeDeePartContainer(){ parts = []; fgClips = []; bgClips = []; } public function setDepths(){ var _local1:*; var _local2:*; var _local3:*; for each (_local1 in parts) { _local1.depth = _local1.depthRef.depth; }; parts.sortOn("depth", Array.NUMERIC); _local2 = parts.length; _local3 = 0; while (_local3 < _local2) { setChildIndex(parts[_local3].mc, (bgCounter + _local3)); _local3++; }; var _local4:* = fgClips.length; var _local5:* = 0; while (_local5 < _local4) { setChildIndex(fgClips[_local5], ((bgCounter + _local2) + _local5)); _local5++; }; } public function get depth(){ return (depthRef.depth); } public function removePart(_arg1:Sprite){ var _local2:* = 0; while (_local2 < parts.length) { if (parts[_local2].mc == _arg1){ removeChild(_arg1); parts.splice(_local2, 1); return; }; _local2++; }; _local2 = 0; while (_local2 < bgClips.length) { if (bgClips[_local2] == _arg1){ removeChild(_arg1); bgClips.splice(_local2, 1); bgCounter--; return; }; _local2++; }; _local2 = 0; while (_local2 < fgClips.length) { if (fgClips[_local2] == _arg1){ removeChild(_arg1); fgClips.splice(_local2, 1); return; }; _local2++; }; } public function setPreciseDepths(){ var _local1:*; var _local2:*; var _local3:*; for each (_local1 in parts) { _local1.preciseDepth = _local1.depthRef.preciseDepth; _local1.depth = _local1.depthRef.depth; }; parts.sortOn(["depth", "preciseDepth"], Array.NUMERIC); _local2 = parts.length; _local3 = 0; while (_local3 < _local2) { setChildIndex(parts[_local3].mc, (bgCounter + _local3)); _local3++; }; var _local4:* = fgClips.length; var _local5:* = 0; while (_local5 < _local4) { setChildIndex(fgClips[_local5], ((bgCounter + _local2) + _local5)); _local5++; }; } public function addFgClip(_arg1){ fgClips.push(_arg1); addChild(_arg1); } public function addPart(_arg1, _arg2=null){ if (_arg2 == null){ _arg2 = _arg1; }; parts.push({mc:_arg1, depthRef:_arg2}); super.addChild(_arg1); } public function addBgClip(_arg1){ bgClips.push(_arg1); addChildAt(_arg1, bgCounter); bgCounter++; } public function setDepthRef(_arg1){ depthRef = _arg1; } public function setFocalDepths(){ var _local1:*; var _local2:*; var _local3:*; for each (_local1 in parts) { _local1.focalDepth = _local1.depthRef.focalDepth; _local1.depth = _local1.depthRef.depth; }; parts.sortOn(["depth", "focalDepth"], Array.NUMERIC); _local2 = parts.length; _local3 = 0; while (_local3 < _local2) { setChildIndex(parts[_local3].mc, (bgCounter + _local3)); _local3++; }; var _local4:* = fgClips.length; var _local5:* = 0; while (_local5 < _local4) { setChildIndex(fgClips[_local5], ((bgCounter + _local2) + _local5)); _local5++; }; } } }//package ThreeDee
Section 31
//ThreeDeePoint (ThreeDee.ThreeDeePoint) package ThreeDee { public dynamic class ThreeDeePoint extends ThreeDeeObject { var ty; public var px;// = 0 public var py;// = 0 public var pz;// = 0 var tx; var parentPoint; public var projectionMethod; var tz; var camera; public var ix; public var iy; public var iz; public var pvx; public var vx; public var depth; public var floorPz; public var vy; public var pvy; public var rootPoint; var sn; var anchorPoint; public var _p:Object; public var x;// = 0 public var y;// = 0 public var z;// = 0 var cs; public function ThreeDeePoint(_arg1, _arg2=0, _arg3=0, _arg4=0){ sn = Math.sin; cs = Math.cos; super(); projectionMethod = simpleProjection; camera = ThreeDeeCamera; anchorPoint = camera.anchorPoint; if (_arg1 != null){ setAnchor(_arg1); }; if (_arg2 != undefined){ ix = (x = _arg2); }; if (_arg3 != undefined){ iy = (y = _arg3); }; if (_arg4 != undefined){ iz = (z = _arg4); }; } public function XYZ(_arg1=0, _arg2=0, _arg3=0){ x = _arg1; y = _arg2; z = _arg3; } public function transformRote(_arg1, _arg2, _arg3){ var _local4:* = tx; var _local5:* = ty; tx = ((_local4 * _arg3) - (_local5 * _arg2)); ty = ((_local5 * _arg3) + (_local4 * _arg2)); } public function beginCustomTransform(){ tx = x; ty = y; tz = z; } public function get vys(){ return ((-(floorPz) * depth)); } public function simpleProjection(){ depth = (camera.perspex / py); vx = (px * depth); vy = (-(pz) * depth); } public function customLocate(_arg1:ThreeDeeTransform){ var _local7:*; var _local8:*; var _local9:*; var _local2:* = _arg1.axes; var _local3:* = _arg1.values; var _local4:* = _arg1.trigs; beginCustomTransform(); var _local5:* = _local2.length; var _local6:* = 0; while (_local6 < _local5) { _local7 = _local2[_local6]; _local8 = _local3[_local6]; _local9 = _local4[_local6]; if (_local7 == "x"){ transformYaw(_local8, _local9[0], _local9[1]); } else { if (_local7 == "y"){ transformTilt(_local8, _local9[0], _local9[1]); } else { if (_local7 == "z"){ transformRote(_local8, _local9[0], _local9[1]); }; }; }; _local6++; }; fixCustomTransform(); } public function fixCustomTransform(){ px = (tx + _p.px); py = (ty + _p.py); pz = (tz + _p.pz); projectionMethod(); } public function setCoords(_arg1=0, _arg2=0, _arg3=0, _arg4=false){ x = _arg1; y = _arg2; z = _arg3; if (_arg4){ ix = x; iy = y; iz = z; }; } public function zero(){ XYZ(0, 0, 0); } public function setAnchor(_arg1){ if (_arg1 == false){ _p = false; rootPoint = this; } else { _p = _arg1; rootPoint = _p.rootPoint; }; floorPz = rootPoint.pz; } public function setCoord(_arg1, _arg2){ this[_arg1] = _arg2; } public function get preciseDepth(){ return (-(Math.sqrt((Math.sqrt(((px * px) + (pz * pz))) + (py * py))))); } public function transformTilt(_arg1, _arg2, _arg3){ var _local4:* = tx; var _local5:* = tz; tx = ((_local4 * _arg3) - (_local5 * _arg2)); tz = ((_local5 * _arg3) + (_local4 * _arg2)); } public function yzProjection(){ var _local1:* = (camera.perspex / Math.sqrt(((pz * pz) + (py * py)))); depth = _local1; vx = (px * _local1); vy = (-(pz) * _local1); } public function locate(){ if (_p == false){ px = x; py = y; pz = z; } else { px = (x + _p.px); py = (y + _p.py); pz = (z + _p.pz); }; projectionMethod(); } public function transformYaw(_arg1, _arg2, _arg3){ var _local4:* = ty; var _local5:* = tz; ty = ((_local4 * _arg3) - (_local5 * _arg2)); tz = ((_local5 * _arg3) + (_local4 * _arg2)); } public function get focalDepth(){ return (-((Math.abs(px) + Math.abs(pz)))); } public function get sq(){ return ((-(rootPoint.pz) / py)); } public function iXYZ(_arg1, _arg2, _arg3){ ix = (x = _arg1); iy = (y = _arg2); iz = (z = _arg3); } function fullMatch(_arg1){ px = _arg1.px; py = _arg1.py; pz = _arg1.pz; pvx = _arg1.pvx; pvy = _arg1.pvy; depth = _arg1.depth; vx = _arg1.vx; vy = _arg1.vy; } public function setLocalCoordsFromGlobal(_arg1, _arg2, _arg3){ x = (_arg1 - _p.px); y = (_arg2 - _p.py); z = (_arg3 - _p.pz); } } }//package ThreeDee
Section 32
//ThreeDeeTransform (ThreeDee.ThreeDeeTransform) package ThreeDee { public class ThreeDeeTransform extends Array { public var values; public var axes; private var cos; public var trigs; private var sin; public function ThreeDeeTransform(... _args){ var _local4:*; var _local5:*; var _local6:*; sin = Math.sin; cos = Math.cos; super(); axes = []; values = []; trigs = []; var _local2:* = _args.length; var _local3:* = 0; while (_local3 < _local2) { _local4 = _args[_local3]; for (_local5 in _local4) { axes.push(_local5); _local6 = _local4[_local5]; values.push(_local6); trigs.push([sin(_local6), cos(_local6)]); }; _local3++; }; } public function getStep(_arg1){ var _local2:* = {}; _local2[axes[_arg1]] = values[_arg1]; return (_local2); } public function getSteps(){ var _local1:* = []; var _local2:* = axes.length; var _local3:* = 0; while (_local3 < _local2) { _local1.push(getStep(_local3)); _local3++; }; return (_local1); } public function pushTransform(_arg1){ insertTransform(axes.length, _arg1); } public function insertTransform(_arg1, _arg2, _arg3=false){ var _local5:*; var _local6:*; var _local4:* = (_arg3) ? 1 : 0; for (_local5 in _arg2) { axes.splice(_arg1, _local4, _local5); _local6 = _arg2[_local5]; values.splice(_arg1, _local4, _local6); trigs.splice(_arg1, _local4, [sin(_local6), cos(_local6)]); }; } public function clone(){ var _local4:*; var _local1:* = new ThreeDeeTransform(); var _local2:* = axes.length; var _local3:* = 0; while (_local3 < _local2) { _local4 = {}; _local4[axes[_local3]] = values[_local3]; _local1.insertTransform(_local3, _local4); _local3++; }; return (_local1); } public function traceContents(){ var _local1:* = ""; var _local2:* = axes.length; var _local3:* = 0; while (_local3 < _local2) { _local1 = (_local1 + (((axes[_local3] + ": ") + values[_local3]) + "\n")); _local3++; }; trace(_local1); } } }//package ThreeDee
Section 33
//ColorTools (util.ColorTools) package util { import fl.motion.*; import flash.geom.*; public class ColorTools { public static function blendColors(_arg1, _arg2, _arg3){ return (Color.interpolateColor(_arg1, _arg2, (1 - _arg3))); } public static function getTintObj(_arg1, _arg2){ var _local3:* = (_arg1 >> 16); var _local4:* = ((_arg1 >> 8) & 0xFF); var _local5:* = (_arg1 & 0xFF); return (new ColorTransform((1 - _arg2), (1 - _arg2), (1 - _arg2), 1, (_local3 * _arg2), (_local4 * _arg2), (_local5 * _arg2), 0)); } public static function clearTint(_arg1){ setTint(_arg1, 0, 0); } public static function setRGB(_arg1, _arg2){ var _local3:* = _arg1.transform; var _local4:* = (_arg2 >> 16); var _local5:* = ((_arg2 >> 8) & 0xFF); var _local6:* = (_arg2 & 0xFF); _local3.colorTransform = new ColorTransform(0, 0, 0, 1, _local4, _local5, _local6, 0); } public static function setTint(_arg1, _arg2, _arg3){ applyTransform(_arg1, getTintObj(_arg2, _arg3)); } public static function applyTransform(_arg1, _arg2){ _arg1.transform.colorTransform = _arg2; } } }//package util
Section 34
//Curves (util.Curves) package util { public class Curves { public static function easeOut(_arg1){ return (Math.sin(((_arg1 * Math.PI) / 2))); } public static function easeIn(_arg1){ return ((1 - Math.sin((((1 - _arg1) * Math.PI) / 2)))); } public static function zenoEaseOut(_arg1){ return (((_arg1 == 1)) ? 1 : (-(Math.pow(2, (-10 * _arg1))) + 1)); } public static function zenoScurve(_arg1){ return (((_arg1)<0.5) ? (zenoEaseIn((_arg1 * 2)) * 0.5) : (0.5 + (0.5 * zenoEaseOut(((_arg1 - 0.5) * 2))))); } public static function quadEaseOut(_arg1){ _arg1 = (_arg1 / 1); return ((-(_arg1) * (_arg1 - 2))); } public static function quadEaseIn(_arg1){ _arg1 = (_arg1 / 1); return ((_arg1 * _arg1)); } public static function quadScurve(_arg1){ return (((_arg1)<0.5) ? (quadEaseIn((_arg1 * 2)) * 0.5) : (0.5 + (0.5 * quadEaseOut(((_arg1 - 0.5) * 2))))); } public static function scurve(_arg1){ return (((-(Math.cos((_arg1 * Math.PI))) + 1) / 2)); } public static function zenoEaseIn(_arg1){ return (((_arg1 == 0)) ? 0 : Math.pow(2, (10 * (_arg1 - 1)))); } } }//package util
Section 35
//DelayedEvent (util.DelayedEvent) package util { import flash.display.*; import flash.events.*; public class DelayedEvent extends Sprite { var myEvent; var onFrame; static var eventArr = []; public function DelayedEvent(_arg1:Function, _arg2:Number, ... _args){ var maxTime:*; var currTime:*; var func = _arg1; var endParam = _arg2; var restParams = _args; super(); eventArr.push(this); maxTime = endParam; currTime = 0; onFrame = function (){ var _local1:*; currTime++; if (currTime >= maxTime){ _local1 = ((restParams == null)) ? 0 : restParams.length; func.apply(this, restParams); cancel(); }; }; this.addEventListener(Event.ENTER_FRAME, onFrame); } public function cancel(){ this.removeEventListener(Event.ENTER_FRAME, onFrame); eventArr.splice(eventArr.indexOf(this), 1); } public static function clearAllEvents(){ var _local1:* = eventArr.length; var _local2:* = (_local1 - 1); while (_local2 >= 0) { eventArr[_local2].cancel(); _local2--; }; } } }//package util
Section 36
//Maths (util.Maths) package util { public class Maths { public static var sqrt = Math.sqrt; static var acos = Math.acos; static var cos = Math.cos; static var abs = Math.abs; static var sin = Math.sin; static var atan2 = Math.atan2; public static function findTangent(_arg1, _arg2, _arg3, _arg4){ var _local19:*; if (Math.abs(_arg2) < 0.0001){ _arg2 = 0.0001; }; var _local5:* = ((_arg1 * _arg1) + (_arg2 * _arg2)); var _local6:* = (_arg3 * _arg3); if (_local6 > _local5){ _local19 = (_local6 / _local5); _arg1 = (_arg1 * _local19); _arg2 = (_arg2 * _local19); _local5 = ((_arg1 * _arg1) + (_arg2 * _arg2)); }; var _local7:* = sqrt((_local5 - _local6)); var _local8:* = ((_arg4)==1) ? acos((((_arg3 * _arg1) + (_arg2 * _local7)) / _local5)) : acos((((_arg3 * _arg1) - (_arg2 * _local7)) / _local5)); var _local9:* = (_arg3 * cos(_local8)); var _local10:* = (_arg3 * sin(_local8)); var _local11:* = pyt((_local10 - _arg2), (_local9 - _arg1)); var _local12:* = (_arg3 * cos(-(_local8))); var _local13:* = (_arg3 * sin(-(_local8))); var _local14:* = pyt((_local13 - _arg2), (_local12 - _arg1)); var _local15:* = (-((_local9 / _local10)) / ((_local10 - _arg2) / (_local9 - _arg1))); var _local16:* = ((abs((_local15 - 1)))<1E-7) ? 1 : 2; var _local17:* = ((_local16 == 1)) ? _local9 : _local12; var _local18:* = ((_local16 == 1)) ? _local10 : _local13; return ({x:_local17, y:_local18}); } public static function pyt(_arg1, _arg2){ return (sqrt(((_arg1 * _arg1) + (_arg2 * _arg2)))); } public static function getIntersection(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6){ var _local7:* = Math.tan(_arg5); var _local8:* = (_arg2 - (_local7 * _arg1)); var _local9:* = Math.tan(_arg6); var _local10:* = (_arg4 - (_local9 * _arg3)); var _local11:* = (((_local8 - _local10) / _local9) / (1 - (_local7 / _local9))); var _local12:* = ((_local7 * _local11) + _local8); return ({x:_local11, y:_local12}); } } }//package util
Section 37
//RepeatedEvent (util.RepeatedEvent) package util { import flash.display.*; import flash.events.*; public class RepeatedEvent extends Sprite { var onFrame; static var eventArr = []; public function RepeatedEvent(_arg1, _arg2, ... _args){ var currTime:*; var func = _arg1; var maxTime = _arg2; var restParams = _args; super(); restParams.splice(0, 0, 0); currTime = 0; onFrame = function (){ currTime++; if (restParams.length > 0){ restParams[0] = (currTime / maxTime); func.apply(this, restParams); } else { func((currTime / maxTime)); }; if (currTime >= maxTime){ cancel(); }; }; addEventListener(Event.ENTER_FRAME, onFrame); if (restParams.length > 0){ func.apply(this, restParams); } else { func(0); }; eventArr.push(this); } public function cancel(){ removeEventListener(Event.ENTER_FRAME, onFrame); eventArr.splice(eventArr.indexOf(this), 1); } public function fire(){ onFrame(); } public static function clearAllEvents(){ var _local1:*; for each (_local1 in eventArr) { _local1.cancel(); }; } } }//package util
Section 38
//ShortCuts (util.ShortCuts) package util { import flash.system.*; import flash.net.*; public class ShortCuts { public static function getAngleDiff(_arg1, _arg2){ while ((_arg1 - _arg2) > Math.PI) { _arg1 = (_arg1 - (Math.PI * 2)); }; while ((_arg2 - _arg1) > Math.PI) { _arg1 = (_arg1 + (Math.PI * 2)); }; return ((_arg1 - _arg2)); } public static function gotoUrl(_arg1, _arg2="_top"){ return (navigateToURL(new URLRequest(_arg1), _arg2)); } public static function getFlashVersion(){ return (Capabilities.version.split(" ")[1].split(",")[0]); } } }//package util
Section 39
//Vector (util.Vector) package util { public class Vector { public var x; public var y; public function Vector(_arg1=0, _arg2=0){ x = _arg1; y = _arg2; } public function setMag(_arg1){ var _local2:* = Math.atan2(y, x); x = (_arg1 * Math.cos(_local2)); y = (_arg1 * Math.sin(_local2)); } public function getMag(){ return (Math.sqrt(((x * x) + (y * y)))); } public function scale(_arg1){ x = (x * _arg1); y = (y * _arg1); return (new Vector(x, y)); } public function setAngle(_arg1){ var _local2:* = getMag(); x = (_local2 * Math.cos(_arg1)); y = (_local2 * Math.sin(_arg1)); } public function copy(){ return (new Vector(x, y)); } public function minus(_arg1){ x = (x - _arg1.x); y = (y - _arg1.y); return (new Vector(x, y)); } public function plus(_arg1){ x = (x + _arg1.x); y = (y + _arg1.y); return (new Vector(x, y)); } public function rotate(_arg1){ var _local2:* = x; var _local3:* = y; x = ((_local2 * Math.cos(_arg1)) + (_local3 * Math.sin(_arg1))); y = ((_local3 * Math.cos(_arg1)) - (_local2 * Math.sin(_arg1))); return (new Vector(x, y)); } public function getAngle(){ return (Math.atan2(y, x)); } } }//package util
Section 40
//circle (circle) package { import flash.display.*; public dynamic class circle extends MovieClip { } }//package
Section 41
//circleShape (circleShape) package { import flash.display.*; public dynamic class circleShape extends MovieClip { public var shape:circle; } }//package
Section 42
//discShape (discShape) package { import flash.display.*; public dynamic class discShape extends MovieClip { public var subShape:MovieClip; } }//package
Section 43
//frameCorner (frameCorner) package { import flash.display.*; public dynamic class frameCorner extends MovieClip { } }//package
Section 44
//semiCircleShape (semiCircleShape) package { import flash.display.*; public dynamic class semiCircleShape extends MovieClip { } }//package
Section 45
//vpLogo (vpLogo) package { import flash.display.*; public dynamic class vpLogo extends MovieClip { } }//package

Library Items

Symbol 1 GraphicUsed by:2
Symbol 2 MovieClip {semiCircleShape}Uses:1
Symbol 3 GraphicUsed by:4
Symbol 4 MovieClip {circle}Uses:3Used by:5 7
Symbol 5 MovieClipUses:4Used by:6
Symbol 6 MovieClip {discShape}Uses:5
Symbol 7 MovieClip {circleShape}Uses:4
Symbol 8 GraphicUsed by:9
Symbol 9 MovieClip {frameCorner}Uses:8
Symbol 10 GraphicUsed by:13
Symbol 11 FontUsed by:12
Symbol 12 TextUses:11Used by:13
Symbol 13 MovieClip {vpLogo}Uses:10 12

Instance Names

"subShape"Symbol 5 MovieClip Frame 1Symbol 4 MovieClip {circle}
"subShape"Symbol 6 MovieClip {discShape} Frame 1Symbol 5 MovieClip
"shape"Symbol 7 MovieClip {circleShape} Frame 1Symbol 4 MovieClip {circle}

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.




http://swfchan.com/11/52607/info.shtml
Created: 23/4 -2019 11:47:46 Last modified: 23/4 -2019 11:47:46 Server time: 05/05 -2024 00:05:45