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

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

spider.swf

This is the info page for
Flash #15761

(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 projections; var bumbleModel; var isStunned; var pickupFoot; public var isReversing;// = false var jumpCount;// = 0 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){ var _local7:*; isJumping = false; isReversing = false; jumpCount = 0; endJumpEvent = null; grav = -0.25; lastFoot = null; isNearFeet = false; closestFoot = false; super(); anchorPoint = _arg4; numMembers = _arg1; headR = _arg2; projections = []; _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:*; _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 _local1:*; var _local2:*; _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 _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; _local3 = trackToNavCoords(_arg1); _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); _local5 = bumbleModel.members; _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 _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; isNearFeet = false; closestFoot = false; _local2 = 999; _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:*; _local2 = trackToNavCoords(_arg1); return ({x:(_local2.x - bumbleModel.x), y:(_local2.y - bumbleModel.y)}); } function doJump(_arg1, _arg2, _arg3){ var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; _local4 = Curves.easeOut((_arg1 * 2)); _local5 = -(((grav * _arg2) / 2)); _local6 = ((_local5 * (_arg2 * _arg1)) + (((grav * 0.5) * (_arg2 * _arg1)) * (_arg2 * _arg1))); _local7 = 0; while (_local7 < numMembers) { _local11 = projections[_local7]; _local11.addOffSet(0, 0, ((_local6 * 1.5) + ((30 * (1 - (_local7 / numMembers))) * _local4))); _local7++; }; _local8 = (4 * Curves.easeOut((_arg1 * 2))); _local9 = (_local8 * Math.cos(_arg3)); _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 _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; isJumping = true; isStunned = true; _local3 = {px:((projections[1].px + projections[2].px) / 2), py:((projections[1].py + projections[2].py) / 2)}; _local4 = new Vector((_local3.px - _arg2.x), (_local3.py - _arg2.y)); _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); _local6 = new RepeatedEvent(doJump, _arg1, _arg1, _local4.getAngle()); _local6.fire(); } public function addProjection(_arg1, _arg2, _arg3){ var _local4:*; var _local5:*; _local4 = ((_arg1 == 0)) ? AntDogSegmentHead : ((_arg1 == (numMembers - 1))) ? AntDogSegmentTail : AntDogSegmentLegged; _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 _local3:*; var _local4:*; var _local5:*; _local3 = trackToRelativeCoords(_arg2); _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:*; _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 headZBase; var headR; var externalYSway;// = 0 var facingTransform; var offX;// = 0 var offZ;// = 0 var groundArcRad;// = 2.0943951023932 var offY;// = 0 var baseColor; var shadow; var maxSpeed; var headMotionSink; var headBobMax; var partContainer; var spdFactor; public var head; var facing;// = 0 var headSpringZ;// = 0 var headSpringV;// = 0 public function AntDogSegment(_arg1, _arg2, _arg3, _arg4, _arg5){ groundArcRad = ((2 / 3) * Math.PI); offX = 0; offY = 0; offZ = 0; facing = 0; externalYSway = 0; headSpringZ = 0; headSpringV = 0; 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 extraSpring(){ return (0); } public function addOffSet(_arg1, _arg2, _arg3){ offX = _arg1; offY = _arg2; offZ = _arg3; } public function getExternalSway(){ return (externalYSway); } public function addHeadSpringV(_arg1){ headSpringV = (headSpringV + _arg1); } public function step(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8){ var _local9:*; var _local10:*; var _local11:*; var _local12:*; facing = _arg5; X = _arg1; Y = _arg2; spdFactor = (_arg6 / _arg7); _local9 = getBobOsc(); _local10 = ((headZBase + ((headBobMax * Math.cos(((_local9 * Math.PI) * 2))) * spdFactor)) + (headMotionSink * spdFactor)); _local11 = (_arg3 + offX); _local12 = (_arg4 + offY); head.X = _local11; head.Y = ((_local12 + extraYSway()) + getExternalSway()); head.Z = ((((_local10 + extraZSway()) + offZ) + runHeadSpring()) + extraSpring()); clearExternalSway(); } public function runHeadSpring(){ headSpringV = (headSpringV + (-(headSpringZ) / 5)); headSpringV = (headSpringV * 0.8); headSpringZ = (headSpringZ + headSpringV); return (headSpringZ); } public function extraZSway(){ return (0); } public function clearExternalSway(){ externalYSway = 0; } public function addExternalSway(_arg1){ externalYSway = (externalYSway + _arg1); } public function buildHead(_arg1){ head = new ThreeDeeCircle(anchorPoint, _arg1); head.setColor(baseColor); partContainer.addPart(head); } public function extraYSway(){ return (0); } public function render(){ facingTransform = new ThreeDeeTransform({z:facing}); head.customLocate(facingTransform); head.render(); } } }//package classes
Section 3
//AntDogSegmentHead (classes.AntDogSegmentHead) package classes { import ThreeDee.*; import util.*; public class AntDogSegmentHead extends AntDogSegment { var shiftY;// = 0 var shiftZ;// = 0 var depthObjects; var oscObject; public function AntDogSegmentHead(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6){ shiftY = 0; shiftZ = 0; 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)); } public function getTrackCoords(){ return ({x:px, y:py, z:(pz + head.Z)}); } override public function step(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8){ var _local9:*; var _local10:*; var _local11:*; var _local12:*; var _local13:*; var _local14:*; var _local15:*; var _local16:*; _local9 = (_arg5 - facing); super.step(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); _local10 = new Vector((_arg8.x - anchorPoint.px), (_arg8.y - anchorPoint.py)).rotate(facing); _local11 = _local10.getAngle(); _local12 = Math.atan2((_arg8.z - head.pz), _local10.y); _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); _local14 = Math.atan2((_arg8.z - head.pz), _local10.x); _local15 = ShortCuts.getAngleDiff(_local14, 0); _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 extraZSway(){ return (shiftZ); } 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 extraYSway(){ return (shiftY); } override public function render(){ super.render(); } } }//package classes
Section 4
//AntDogSegmentLegged (classes.AntDogSegmentLegged) package classes { import ThreeDee.*; import flash.display.*; import util.*; public class AntDogSegmentLegged extends AntDogSegment { var ankleOffsetZ; var legStride; var hipD; var hipZ; var footStatuses; var hips; var legLiftEvents; var footTipMax; var footLifts; var legThickness; var heelColor; var footShadows; var ankles; var footSpread; var walkSway; var knees; var legObjArr; var segLength; var footR; var legClips; var feet; var ySway;// = 0 public function AntDogSegmentLegged(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6){ var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local12:*; var _local13:*; ySway = 0; footLifts = [0, 0]; super(_arg1, _arg2, _arg3, _arg5, _arg6); heelColor = _arg4; feet = []; hips = []; knees = []; ankles = []; legClips = []; footShadows = []; legLiftEvents = []; footStatuses = []; _local7 = 0; while (_local7 < 2) { _local8 = new Sprite(); legClips.push(_local8); _local9 = new ThreeDeeDome(anchorPoint, footR, "z"); _local9.setColors(_arg4, baseColor); _local10 = new ThreeDeePoint(_local9, 0, 0, ankleOffsetZ); ankles.push(_local10); _local11 = new ThreeDeePoint(anchorPoint, 0, ((_local7 == 0)) ? -(hipD) : hipD); hips.push(_local11); _local12 = new ThreeDeePoint(anchorPoint); knees.push(_local12); feet.push(_local9); partContainer.addPart(_local8, _local11); partContainer.addPart(_local9); _local13 = new ThreeDeeDisc(anchorPoint, footR, "z"); _arg5.addChild(_local13); footShadows[_local7] = _local13; _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 function setMetrics(_arg1){ super.setMetrics(_arg1); segLength = (_arg1 * 2.2777778); legThickness = ((_arg1 * 2) / 3); footR = ((_arg1 * 2) / 3); 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 * 2) / 3); } 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:*; _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:*; _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]); } override public function extraYSway(){ ySway = (((ySway * walkSway) + ((footLifts[0] - footLifts[1]) / 3)) / 4); return (ySway); } override public function render(){ var _local1:*; var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; super.render(); _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 = legObjArr[_local1]; _local5.X = _local6.footX; _local5.Y = (_local6.footY + ((footSpread * (_local1 - 0.5)) * 2)); _local5.Z = ((-(_local6.footZ) + ((offZ * 3) / 4)) + footLifts[_local1]); _local5.customLocate(facingTransform); _local7 = new ThreeDeeTransform({x:(_local6.footTip * spdFactor)}, {z:(facing + (Math.PI / 2))}); _local5.customRender(_local7); footShadows[_local1].X = _local5.X; footShadows[_local1].Y = _local5.Y; footShadows[_local1].customLocate(facingTransform); footShadows[_local1].customRender(facingTransform); ankles[_local1].customLocate(_local7); _local8 = ThreeDeeLimbUtil.getKneeCoords(_local2, {x:_local5.X, y:_local5.Y, z:_local5.Z}, segLength); _local4.x = _local8.x; _local4.y = _local8.y; _local4.z = _local8.z; _local4.customLocate(facingTransform); _local9 = legClips[_local1].graphics; _local9.clear(); _local9.lineStyle((legThickness * hips[_local1].depth), baseColor, 1, false, "normal"); _local9.moveTo(hips[_local1].vx, hips[_local1].vy); _local9.lineTo(((_local2.vx + (_local4.vx * 3)) / 4), ((_local2.vy + (_local4.vy * 3)) / 4)); _local9.curveTo(knees[_local1].vx, knees[_local1].vy, ((_local3.vx + (_local4.vx * 3)) / 4), ((_local3.vy + (_local4.vy * 3)) / 4)); _local9.lineTo(_local3.vx, _local3.vy); _local10 = ((_local1 == 0)) ? -1 : 1; _local11 = Math.max(0, Math.sin((facing + ((Math.PI / 2) * _local10)))); ColorTools.setTint(legClips[_local1], heelColor, (_local11 / 3)); ColorTools.setTint(feet[_local1], heelColor, (_local11 / 3)); _local1++; }; } 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 tailTip; var wagStrength;// = 0 var midAng;// = 2.51327412287183 var wagOsc;// = 0 var tailColor;// = 0x666666 var tailSegLength; var tipAng;// = 1.5707963267949 var tailBase; var baseAng;// = 2.35619449019234 var wagRate;// = 0 var tailRoot; var lw;// = 4 var wagAngleMax;// = 0.785398163397448 var tailClip; var wagEvt;// = null var tailMid; public function AntDogSegmentTail(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6){ tipAng = (Math.PI / 2); midAng = ((4 * Math.PI) / 5); baseAng = ((3 * Math.PI) / 4); lw = 4; tailColor = 0x666666; wagEvt = null; wagStrength = 0; wagRate = 0; wagAngleMax = (Math.PI / 4); wagOsc = 0; 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); } function fadeOutWag(_arg1, _arg2){ fadeInWag((1 - _arg1), _arg2); } function fadeInWag(_arg1, _arg2){ wagRate = (_arg2 * _arg1); wagStrength = _arg1; } override public function step(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8){ super.step(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); } public function straigtenTail(_arg1){ setTail(_arg1, (1 + (_arg1 / 2))); } public function startWag(_arg1, _arg2){ if (wagEvt != null){ wagEvt.cancel(); }; wagEvt = new RepeatedEvent(fadeInWag, _arg2, _arg1); } public function stopWag(_arg1){ if (wagEvt != null){ wagEvt.cancel(); }; wagEvt = new RepeatedEvent(fadeOutWag, _arg1, wagRate); } override public function render(){ var _local1:*; var _local2:*; var _local3:*; var _local4:*; super.render(); wagOsc = (wagOsc + wagRate); _local1 = ((wagAngleMax * Math.sin(wagOsc)) * wagStrength); _local2 = new ThreeDeeTransform({x:(_local1 / 2)}, {z:facing}); _local3 = new ThreeDeeTransform({x:_local1}, {z:facing}); tailBase.customLocate(facingTransform); tailBase.render(); tailRoot.customLocate(facingTransform); tailMid.customLocate(_local2); tailTip.customLocate(_local3); _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); } function setTail(_arg1=0, _arg2=1){ var _local3:*; 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))); _local3 = ((tipAng * (1 - _arg1)) + (midAng * _arg1)); tailTip.setCoords(((_arg2 * tailSegLength) * Math.cos(_local3)), 0, ((_arg2 * tailSegLength) * Math.sin(_local3))); } } }//package classes
Section 6
//BeakHead (classes.BeakHead) package classes { import ThreeDee.*; import util.*; public class BeakHead extends ThreeDeePart { var eyeY; var eyes; var base; var depthObjects; var extraTwist;// = 0 var currLookDir;// = 0 var lookTarget; var xTip;// = 0 var oscObject; var headTurnLimit;// = 1.5707963267949 var yTip;// = 0 var beak; var facing; public function BeakHead(_arg1, _arg2, _arg3, _arg4, _arg5){ var _local6:*; var _local7:*; var _local8:*; currLookDir = 0; headTurnLimit = (Math.PI / 2); extraTwist = 0; xTip = 0; yTip = 0; super(_arg1); base = new ThreeDeeCircle(anchorPoint, _arg2); base.setColor(_arg3); addChild(base); depthObjects = []; eyes = []; _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 _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; _local2 = (lookTarget.x - px); _local3 = (lookTarget.y - py); _local4 = (lookTarget.z - pz); _local5 = ((_local2 * Math.cos(facing)) + (_local3 * Math.sin(facing))); _local6 = ((_local3 * Math.cos(facing)) - (_local2 * Math.sin(facing))); _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); _local8 = new ThreeDeeTransform({x:extraTwist}, {y:yTip}, {x:xTip}, {z:facing}); base.customLocate(_local8); base.customRender(_local8); beak.customLocate(_local8); beak.customRender(_local8); _local9 = 0; while (_local9 < 2) { _local11 = eyes[_local9]; _local11.customLocate(_local8); _local11.customRender(_local8); _local9++; }; depthObjects.sortOn("depth"); _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; var bobVel; public var mass; var v; var x; var y; var headV; var relativeHeadOffset; public function BumbleMember(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7){ lastV = 0; lastFacing = 0; super(); 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){ var _local2:*; var _local3:*; var _local4:*; facing = _arg1; _local2 = (x - lastCoords.x); _local3 = (y - lastCoords.y); velVec = new Vector(_local2, _local3); v = velVec.getMag(); _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:*; _local3 = new Vector(0, 0); _local3.setMag(_arg1); _local3.setAngle(_arg2); headV.plus(_local3); } public function get headX(){ return (headOffset.x); } public function sumForces(){ var _local1:*; headOffset.plus(headV); _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 trail; var buffer;// = 6 var bumblerR; var members; var numMembers;// = 4 public function BumbleModel(_arg1, _arg2){ var _local3:*; var _local4:*; var _local5:*; numMembers = 4; buffer = 6; _local3 = 8; _local4 = new Nav((_local3 / 2), 0.25, 0.1, 37.5, 50); _local5 = new Nav(_local3, 0.5, 0.1, 75, 100); super(_local4, _local5); trail = new BumbleTrail(initX, initY, initFacing); numMembers = _arg1; bumblerR = _arg2; buildBumbleChain(); } function trimTrail(){ var _local1:*; _local1 = ((numMembers - 1) * ((bumblerR * 2) + buffer)); trail.trim((_local1 + 100)); } override public function step(_arg1){ super.step(_arg1); matchMembersToTrail(); runMemberCollisions(); trimTrail(); } function checkCollision(_arg1, _arg2){ var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; _local3 = ((_arg2.headX + _arg2.x) - (_arg1.headX + _arg1.x)); _local4 = ((_arg2.headY + _arg2.y) - (_arg1.headY + _arg1.y)); _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 matchMembersToTrail(){ var _local1:*; var _local2:*; _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++; }; } override public function offsetPos(_arg1, _arg2){ super.offsetPos(_arg1, _arg2); trail.offsetCoords(_arg1, _arg2); } function reverseNav(_arg1){ var _local2:*; trail.shave(_arg1); _local2 = trail.getCoordsAt(0); nav.x = _local2.x; nav.y = _local2.y; nav.facing = _local2.facing; } override function stepNav(_arg1){ super.stepNav(_arg1); trail.recordStep(nav.x, nav.y, nav.facing, nav.speed); } public function getMembers(){ return (members); } function runMemberCollisions(){ var _local1:*; _local1 = 1; while (_local1 < numMembers) { checkCollision(members[(_local1 - 1)], members[_local1]); _local1++; }; _local1 = 0; while (_local1 < numMembers) { members[_local1].sumForces(); _local1++; }; } function buildBumbleChain(){ var _local1:*; var _local2:*; members = []; _local1 = 0; while (_local1 < numMembers) { _local2 = new BumbleMember(bumblerR, (_local1 == 0), ((_local1 == 0)) ? 1 : 1, 0.9, initX, initY, initFacing); members.push(_local2); _local1++; }; } } }//package classes
Section 9
//BumbleTrail (classes.BumbleTrail) package classes { import util.*; public class BumbleTrail { var initX; var initY; var initFacing; var history; var _t; public function BumbleTrail(_arg1, _arg2, _arg3){ initX = _arg1; initY = _arg2; initFacing = _arg3; history = []; _t = 0; } public function trim(_arg1){ var _local2:*; var _local3:*; var _local4:*; var _local5:*; _local2 = history.length; _local3 = 0; _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 shave(_arg1){ var _local2:*; var _local3:*; var _local4:*; var _local5:*; _local2 = getCoordsAt(_arg1); _local3 = history.length; _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); } public function getPointBetween(_arg1, _arg2, _arg3){ var _local4:*; _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); }; } public function listPoints(){ var _local1:*; var _local2:*; _local1 = history.length; _local2 = (_local1 - 1); while (_local2 >= 0) { trace(("t " + history[_local2].t)); _local2--; }; } function recordStep(_arg1, _arg2, _arg3, _arg4){ var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; _t = (_t + _arg4); _local5 = {x:_arg1, y:_arg2, facing:_arg3, t:_t}; history.push(_local5); _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 getCoordsAt(_arg1, _arg2=false){ var _local3:*; var _local4:*; var _local5:*; var _local6:*; _local4 = history.length; _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}); } } }//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){ runThreshold = 200; initX = 1200; initY = 100; initFacing = Math.PI; super(); initNavs(_arg1, _arg2); } public function get maxSpeed(){ return (runNav.maxSpeed); } public function step(_arg1){ var _local2:*; _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 get speed(){ return (nav.speed); } public function set speed(_arg1){ nav.speed = _arg1; } public function set brake(_arg1){ nav.brake = _arg1; } public function offsetPos(_arg1, _arg2){ nav.x = (nav.x + _arg1); nav.y = (nav.y + _arg2); } public function setNav(_arg1){ var _local2:*; _local2 = nav; nav = _arg1; nav.x = _local2.x; nav.y = _local2.y; nav.speed = _local2.speed; nav.facing = _local2.facing; nav.rangeBuffer = _local2.rangeBuffer; } 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; } public function get facing(){ return (nav.facing); } public function atRest(){ if (nav == runNav){ setNav(walkNav); }; } 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 _accelMax; var _mVec; var _speedUpRange; var _restListener; 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){ minVal = 0.0001; rangeBuffer = 0; brake = 1; motionOsc = 0; restListener = null; super(); _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 _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local12:*; _local3 = new Vector(_arg1, _arg2); _local3.minus(_pVec); _local4 = _local3.getMag(); _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); _local6 = Math.min((_local4 / 500), 1); _local7 = (((Math.PI / 12) * Math.cos(motionOsc)) * _local6); _local8 = (_local5 / _maxSpeed); _local9 = _mVec.getAngle(); _local10 = (_local3.getAngle() + _local7); _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 get maxSpeed(){ return (_maxSpeed); } public function set accel(_arg1){ _accel = _arg1; } public function get facing(){ return (_mVec.getAngle()); } public function set speed(_arg1){ if (_arg1 < minVal){ _arg1 = minVal; }; _mVec.setMag(_arg1); } 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:*; _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 windowWidth; var viewMask; var windowHeight; var sky; var bg; var tail; var foreGround; var bumblerR;// = 18 var bottomFrameThickness;// = 20 var viewShell; var numMembers;// = 4 var logo; var sideFrameThickness;// = 5 var partContainer; var isIntroed;// = false var corners; var anchorPoint; var spider; var antDog; var head; var shadowShell; public function Shell(){ var _local1:*; var _local2:*; var _local3:*; numMembers = 4; bumblerR = 18; sideFrameThickness = 5; bottomFrameThickness = 20; isIntroed = false; _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 = []; _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; _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, 600); new DelayedEvent(begin, 1); root.visible = false; addEventListener("enterFrame", step); } public function getMouseCoords(){ var _local1:*; var _local2:*; var _local3:*; _local1 = (-(anchorPoint.pz) / (mouseY - foreGround.y)); if ((((_local1 < 0)) || ((_local1 == Infinity)))){ _local1 = 999999; }; _local2 = ((_local1 * ThreeDeeCamera.perspex) - anchorPoint.y); _local3 = (_local1 * (mouseX - foreGround.x)); return ({x:_local3, y:_local2}); } public function drawMembers(){ spider.customRender(new ThreeDeeTransform()); if (isIntroed){ antDog.render(); }; partContainer.setDepths(); } function introDog(){ isIntroed = true; } function gotoHomePage(_arg1=null){ ShortCuts.gotoUrl("http://www.vectorpark.com"); } function begin(){ root.visible = true; } function setUpResize(){ stage.scaleMode = "noScale"; stage.addEventListener(Event.RESIZE, onStageResize); } function step(_arg1=null){ var _local2:*; checkMousePlacement(); _local2 = getMouseCoords(); spider.step(_local2.x, _local2.y, antDog.getTrackCoords()); if (isIntroed){ antDog.step(spider.getTrackCoords(), spider.isJumping); }; drawMembers(); } function checkMousePlacement(){ var _local1:*; var _local2:*; _local1 = windowWidth; _local2 = windowHeight; if ((((((((mouseX > (_local1 - sideFrameThickness))) || ((mouseX < sideFrameThickness)))) || ((mouseY > (_local2 - bottomFrameThickness))))) || ((mouseY < sideFrameThickness)))){ Mouse.show(); } else { Mouse.hide(); }; } public function onSpiderJump(_arg1){ if (_arg1 > 3){ isIntroed = true; }; antDog.startle(_arg1, spider.getTrackCoords()); } function onStageResize(_arg1){ var _local2:*; var _local3:*; var _local4:*; var _local5:*; _local2 = Math.round(stage.stageWidth); _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) + 2); foreGround.x = (windowWidth / 2); root.x = ((-((_local2 - 1000)) / 2) + ((_local2 - windowWidth) / 2)); root.y = ((-((_local3 - 700)) / 2) + ((_local3 - windowHeight) / 2)); _local4 = viewMask.graphics; _local4.clear(); _local4.beginFill(0); _local4.drawRect(sideFrameThickness, sideFrameThickness, (windowWidth - (sideFrameThickness * 2)), (windowHeight - (sideFrameThickness + bottomFrameThickness))); _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 compressDistMax; var legs; var grav;// = -0.25 var shadowClip; var depthArr; var breatheOsc;// = 0 var numLegs;// = 5 var base; var bounceZ; var vz;// = 0 var crouchMeterMax;// = 15 var restZ;// = 4 var iVz;// = 0 var legSpin;// = 0.1 var currState;// = "rest" var baseR;// = 2.5 var baseZ; var ms;// = false var straightenFrac;// = 0 var breathFactor;// = 1 var springFactor;// = 3 var head; var bounceMeter;// = 0 var parentObj; var bounceMeterMax;// = 15 var crouchMeter;// = 0 public function Spider(_arg1, _arg2, _arg3){ var _local4:*; var _local5:*; var _local6:*; var _local7:*; baseR = 2.5; restZ = 4; numLegs = 5; ms = false; vz = 0; iVz = 0; grav = -0.25; springFactor = 3; crouchMeter = 0; crouchMeterMax = 15; straightenFrac = 0; bounceMeter = 0; bounceMeterMax = 15; breatheOsc = 0; legSpin = 0.1; breathFactor = 1; currState = "rest"; super(_arg2); parentObj = _arg1; depthArr = []; _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 = []; _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; } 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); } public function getTrackCoords(){ return ({x:px, y:py, z:(pz + base.Z)}); } 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 get isJumping(){ return (((!((currState == "rest"))) && (!((currState == "crouch"))))); } function get isAirborne(){ return ((base.Z > restZ)); } public function setLegStraighten(_arg1){ var _local2:*; for each (_local2 in legs) { _local2.setStraighten((_arg1 * 0.5)); }; } public function step(_arg1, _arg2, _arg3){ var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; _local4 = ((_arg1 + (X * 3)) / 4); _local5 = ((_arg2 + (Y * 3)) / 4); _local6 = new Vector((_local4 - X), (_local5 - Y)); X = _local4; Y = _local5; locate(); baseZ = doStep(1, baseZ); breatheOsc = (breatheOsc + 0.1); _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); }; }; } public function initMouseEvents(){ stage.addEventListener("mouseDown", onMouseDownEvent); stage.addEventListener("mouseUp", onMouseUpEvent); } function onMouseDownEvent(_arg1){ ms = true; } function onMouseUpEvent(_arg1){ ms = false; } } }//package classes
Section 15
//SpiderLeg (classes.SpiderLeg) package classes { import ThreeDee.*; import util.*; public class SpiderLeg extends ThreeDeePart { var transitCounterMax; var foot; var stillTimer;// = 0 var stickRange; var transitCounter;// = 0 var drawShape; var stickCoords; var base; var oStickCoords; var inTransit;// = false var knee; var baseExt; var segLength; public var facing; var legColor; public function SpiderLeg(_arg1, _arg2, _arg3, _arg4){ inTransit = false; transitCounter = 0; stillTimer = 0; 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 _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; customLocate(new ThreeDeeTransform({z:facing})); _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}; }; _local4 = ThreeDeeLimbUtil.getKneeCoords(base, foot, segLength); knee.x = _local4.x; knee.y = _local4.y; knee.z = _local4.z; } public function setStraighten(_arg1){ var _local2:*; var _local3:*; var _local4:*; var _local5:*; _local2 = Math.atan2((knee.z - base.z), (knee.x - base.x)); _local3 = Math.atan2((foot.z - knee.z), (foot.x - knee.x)); _local4 = ((_local2 * (1 - _arg1)) + (0 * _arg1)); _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))); } public function render(){ var _local1:*; var _local2:*; _local1 = new ThreeDeeTransform({z:facing}); base.customLocate(_local1); knee.customLocate(_local1); foot.customLocate(_local1); _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); } } }//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 iFootY;// = 0 public var footTip; var _dir; var _currWalkDist; var _baseSwingRadius; var _groundY; var currMode; var _footTipMax; var _swingRadius; public function WalkLeg(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7=null){ _touchY = 0; footX = 0; footY = 0; iFootX = 0; iFootY = 0; footZ = 0; super(); _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:*; var _local3:*; _local2 = Curves.scurve(_arg1); _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 _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; _local4 = 1; _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 _tintMultiplier:Number;// = 0 private var _tintColor:Number;// = 0 public function Color(_arg1:Number=1, _arg2:Number=1, _arg3:Number=1, _arg4:Number=1, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0, _arg8:Number=0){ _tintColor = 0; _tintMultiplier = 0; super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); } public function setTint(_arg1:uint, _arg2:Number):void{ var _local3:uint; var _local4:uint; var _local5:uint; this._tintColor = _arg1; this._tintMultiplier = _arg2; this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = (1 - _arg2))); _local3 = ((_arg1 >> 16) & 0xFF); _local4 = ((_arg1 >> 8) & 0xFF); _local5 = (_arg1 & 0xFF); this.redOffset = Math.round((_local3 * _arg2)); this.greenOffset = Math.round((_local4 * _arg2)); this.blueOffset = Math.round((_local5 * _arg2)); } public function set tintColor(_arg1:uint):void{ this.setTint(_arg1, this.tintMultiplier); } public function get brightness():Number{ return ((this.redOffset) ? (1 - this.redMultiplier) : (this.redMultiplier - 1)); } private function deriveTintColor():uint{ var _local1:Number; var _local2:uint; var _local3:uint; var _local4:uint; var _local5:uint; _local1 = (1 / this.tintMultiplier); _local2 = Math.round((this.redOffset * _local1)); _local3 = Math.round((this.greenOffset * _local1)); _local4 = Math.round((this.blueOffset * _local1)); _local5 = (((_local2 << 16) | (_local3 << 8)) | _local4); return (_local5); } public function get tintMultiplier():Number{ return (this._tintMultiplier); } public function get tintColor():uint{ return (this._tintColor); } public function set brightness(_arg1:Number):void{ var _local2:Number; var _local3:Number; if (_arg1 > 1){ _arg1 = 1; } else { if (_arg1 < -1){ _arg1 = -1; }; }; _local2 = (1 - Math.abs(_arg1)); _local3 = 0; if (_arg1 > 0){ _local3 = (_arg1 * 0xFF); }; this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = _local2)); this.redOffset = (this.greenOffset = (this.blueOffset = _local3)); } public function set tintMultiplier(_arg1:Number):void{ this.setTint(this.tintColor, _arg1); } private function parseXML(_arg1:XML=null):Color{ var _local2:XML; var _local3:XML; var _local4:String; var _local5:uint; if (!_arg1){ return (this); }; _local2 = _arg1.elements()[0]; if (!_local2){ return (this); }; for each (_local3 in _local2.attributes()) { _local4 = _local3.localName(); if (_local4 == "tintColor"){ _local5 = (Number(_local3.toString()) as uint); this.tintColor = _local5; } else { this[_local4] = Number(_local3.toString()); }; }; return (this); } public static function interpolateColor(_arg1:uint, _arg2:uint, _arg3:Number):uint{ var _local4:Number; var _local5:uint; var _local6:uint; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:uint; var _local14:uint; var _local15:uint; var _local16:uint; var _local17:uint; _local4 = (1 - _arg3); _local5 = ((_arg1 >> 24) & 0xFF); _local6 = ((_arg1 >> 16) & 0xFF); _local7 = ((_arg1 >> 8) & 0xFF); _local8 = (_arg1 & 0xFF); _local9 = ((_arg2 >> 24) & 0xFF); _local10 = ((_arg2 >> 16) & 0xFF); _local11 = ((_arg2 >> 8) & 0xFF); _local12 = (_arg2 & 0xFF); _local13 = ((_local5 * _local4) + (_local9 * _arg3)); _local14 = ((_local6 * _local4) + (_local10 * _arg3)); _local15 = ((_local7 * _local4) + (_local11 * _arg3)); _local16 = ((_local8 * _local4) + (_local12 * _arg3)); _local17 = ((((_local13 << 24) | (_local14 << 16)) | (_local15 << 8)) | _local16); return (_local17); } public static function interpolateTransform(_arg1:ColorTransform, _arg2:ColorTransform, _arg3:Number):ColorTransform{ var _local4:Number; var _local5:ColorTransform; _local4 = (1 - _arg3); _local5 = new ColorTransform(((_arg1.redMultiplier * _local4) + (_arg2.redMultiplier * _arg3)), ((_arg1.greenMultiplier * _local4) + (_arg2.greenMultiplier * _arg3)), ((_arg1.blueMultiplier * _local4) + (_arg2.blueMultiplier * _arg3)), ((_arg1.alphaMultiplier * _local4) + (_arg2.alphaMultiplier * _arg3)), ((_arg1.redOffset * _local4) + (_arg2.redOffset * _arg3)), ((_arg1.greenOffset * _local4) + (_arg2.greenOffset * _arg3)), ((_arg1.blueOffset * _local4) + (_arg2.blueOffset * _arg3)), ((_arg1.alphaOffset * _local4) + (_arg2.alphaOffset * _arg3))); return (_local5); } public static function fromXML(_arg1:XML):Color{ return (Color(new (Color).parseXML(_arg1))); } } }//package fl.motion
Section 18
//discShapeInner_6 (spider_fla.discShapeInner_6) package spider_fla { import flash.display.*; public dynamic class discShapeInner_6 extends MovieClip { public var subShape:circle; } }//package spider_fla
Section 19
//ThreeDeeCamera (ThreeDee.ThreeDeeCamera) package ThreeDee { public class ThreeDeeCamera { public static var perspex = 1000; } }//package ThreeDee
Section 20
//ThreeDeeCircle (ThreeDee.ThreeDeeCircle) package ThreeDee { public class ThreeDeeCircle extends ThreeDeeElement { public var r; public var shape; public function ThreeDeeCircle(_arg1, _arg2){ super(_arg1); buildShape(); radius = _arg2; } override public function setColor(_arg1){ super.setColor(_arg1); shapeShell.graphics.clear(); buildShape(); } public function set radius(_arg1){ r = _arg1; } public function drawCircle(_arg1, _arg2){ var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; _local3 = (_arg2 * 1.08); _local4 = 8; _arg1.moveTo(_arg2, 0); _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 customRender(_arg1){ sizeAndPlace(); } public function sizeAndPlace(_arg1=1){ var _local2:*; shapeShell.x = anchorPoint.vx; shapeShell.y = anchorPoint.vy; _local2 = (anchorPoint.depth * _arg1); shapeShell.scaleX = ((r / 50) * _local2); shapeShell.scaleY = ((r / 50) * _local2); } public function render(){ sizeAndPlace(); } public function get radius(){ return (r); } function buildShape(){ shapeShell.graphics.beginFill(baseColor); drawCircle(shapeShell.graphics, 50); } } }//package ThreeDee
Section 21
//ThreeDeeCone (ThreeDee.ThreeDeeCone) package ThreeDee { public class ThreeDeeCone extends ThreeDeePart { public var l; var tipColor; var disc; 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 customRender(_arg1){ disc.customLocate(_arg1); disc.customRender(_arg1); tipPt.customLocate(_arg1); drawTip(); } public function setColors(_arg1, _arg2){ tipColor = _arg2; disc.setColors(_arg1, _arg2); } function drawTip(){ var _local1:*; var _local2:*; var _local3:*; _local1 = this.graphics; _local1.clear(); _local2 = ThreeDeeMaths.getTangentPointToDisc(tipPt, disc, 1); _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 22
//ThreeDeeDisc (ThreeDee.ThreeDeeDisc) package ThreeDee { public class ThreeDeeDisc extends ThreeDeeCircle { var lastColorCache;// = null public var normalDir; public var oneSided;// = false public var subShape; public var squish; public var sideFace; public var rote; var colors;// = false public var subShadow; public var normal; public function ThreeDeeDisc(_arg1, _arg2, _arg3="x", _arg4=1){ oneSided = false; colors = false; lastColorCache = null; super(_arg1, _arg2); normalDir = _arg4; normal = new ThreeDeePoint(anchorPoint); normal.setCoord(_arg3, (1 * _arg4)); } override public function setColor(_arg1){ if (_arg1 == lastColorCache){ return; }; super.setColor(_arg1); lastColorCache = _arg1; } public function squash(){ var _local1:*; var _local2:*; var _local3:*; var _local4:*; _local1 = (normal.vx - anchorPoint.vx); _local2 = (normal.vy - anchorPoint.vy); _local3 = Math.sqrt((((normal.px * normal.px) + (normal.py * normal.py)) + (normal.pz * normal.pz))); _local4 = Math.sqrt((((anchorPoint.px * anchorPoint.px) + (anchorPoint.py * anchorPoint.py)) + (anchorPoint.pz * anchorPoint.pz))); squish = (_local3 - _local4); rote = Math.atan2(_local2, _local1); } override public function customRender(_arg1){ normal.customLocate(_arg1); squash(); sizeAndPlace(); applyColors(); } 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 setColors(_arg1, _arg2){ colors = [_arg1, _arg2]; } override public function sizeAndPlace(_arg1=1){ shapeShell.rotation = 0; super.sizeAndPlace(_arg1); renderSquash(); } override public function render(){ normal.locate(); squash(); sizeAndPlace(); applyColors(); } function sideCheck(){ return (((squish > 0)) ? 1 : -1); } } }//package ThreeDee
Section 23
//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 24
//ThreeDeeDrawShell (ThreeDee.ThreeDeeDrawShell) package ThreeDee { import flash.display.*; public class ThreeDeeDrawShell extends Shape { var _scl;// = 1 public function ThreeDeeDrawShell(_arg1=1){ _scl = 1; super(); _scl = _arg1; scaleX = _arg1; scaleY = _arg1; } public function lineStyle(_arg1, _arg2, _arg3=1){ graphics.lineStyle((_arg1 / _scl), _arg2, _arg3); } public function endFill(){ graphics.endFill(); } public function moveTo(_arg1, _arg2){ graphics.moveTo((_arg1 / _scl), (_arg2 / _scl)); } public function lineTo(_arg1, _arg2){ graphics.lineTo((_arg1 / _scl), (_arg2 / _scl)); } public function beginFill(_arg1, _arg2=1){ graphics.beginFill(_arg1, _arg2); } public function clear(){ graphics.clear(); } public function curveTo(_arg1, _arg2, _arg3, _arg4){ graphics.curveTo((_arg1 / _scl), (_arg2 / _scl), (_arg3 / _scl), (_arg4 / _scl)); } } }//package ThreeDee
Section 25
//ThreeDeeElement (ThreeDee.ThreeDeeElement) package ThreeDee { import flash.geom.*; import flash.display.*; import util.*; public class ThreeDeeElement extends Shape { public var baseColor;// = 0xFFFFFF var shadowColor; var shapeShell; public var depthPoint; public var anchorPoint; var myShadow; public function ThreeDeeElement(_arg1){ baseColor = 0xFFFFFF; super(); if (_arg1 != false){ setAnchor(new ThreeDeePoint(_arg1, 0, 0, 0)); }; shapeShell = this; } 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 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 customLocate(_arg1){ anchorPoint.customLocate(_arg1); } public function setX(_arg1){ anchorPoint.x = _arg1; } public function setY(_arg1){ anchorPoint.y = _arg1; } public function setZ(_arg1){ anchorPoint.z = _arg1; } public function addShadow(_arg1, _arg2=0){ myShadow = getShadowClip(); _arg1.addChild(myShadow); shadowColor = _arg2; } public function get iX(){ return (anchorPoint.ix); } public function locate(){ anchorPoint.locate(); } public function get X(){ return (anchorPoint.x); } public function get Y(){ return (anchorPoint.y); } public function get Z(){ return (anchorPoint.z); } public function get focalDepth(){ return (anchorPoint.focalDepth); } public function setTint(_arg1, _arg2){ ColorTools.setTint(this, _arg1, _arg2); } public function getShadowClip(){ return (new Shape()); } 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 setAnchor(_arg1){ anchorPoint = _arg1; depthPoint = _arg1; } public function get vx(){ return (anchorPoint.vx); } public function get vy(){ return (anchorPoint.vy); } public function getZ(){ return (anchorPoint.z); } public function getX(){ return (anchorPoint.x); } public function getY(){ return (anchorPoint.y); } public function get rootPoint(){ return (anchorPoint.rootPoint); } 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); } } }//package ThreeDee
Section 26
//ThreeDeeLimbUtil (ThreeDee.ThreeDeeLimbUtil) package ThreeDee { public class ThreeDeeLimbUtil { public static function getKneeCoords(_arg1, _arg2, _arg3){ var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; _local4 = (_arg2.x - _arg1.x); _local5 = (_arg2.z - _arg1.z); _local6 = ((Math.PI / 2) - Math.atan2(_local5, _local4)); _local7 = (Math.sqrt(((_local4 * _local4) + (_local5 * _local5))) / 2); _local8 = -(Math.sqrt(((_arg3 * _arg3) - (_local7 * _local7)))); _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 27
//ThreeDeeMaths (ThreeDee.ThreeDeeMaths) package ThreeDee { import util.*; public class ThreeDeeMaths { public static function getTangentPointToDisc(_arg1, _arg2, _arg3){ var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local12:*; var _local13:*; var _local14:*; _local4 = (_arg1.vx - _arg2.vx); _local5 = (_arg1.vy - _arg2.vy); _local6 = -(_arg2.rote); _local7 = ((_local4 * Math.cos(-(_local6))) + (_local5 * Math.sin(-(_local6)))); _local8 = ((_local5 * Math.cos(-(_local6))) - (_local4 * Math.sin(-(_local6)))); _local9 = (_arg2.radius * _arg2.depth); _local10 = Math.abs(_arg2.squish); _local11 = Maths.findTangent((_local7 / _local10), _local8, _local9, _arg3); _local12 = {vx:_local11.x, vy:_local11.y}; {vx:_local11.x, vy:_local11.y}.vx = (_local12.vx * _local10); _local13 = _local12.vx; _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:*; var _local6:*; var _local7:*; _local5 = (_arg1.vx - _arg2.vx); _local6 = (_arg1.vy - _arg2.vy); _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:*; var _local5:*; var _local6:*; _local4 = (ThreeDeeCamera.perspex / _arg3); _local5 = (_arg1 / _local4); _local6 = (-(_arg2) / _local4); return ({x:_local5, y:_arg3, z:_local6}); } public static function getThreeDeeFromTwoDeeWithPz(_arg1, _arg2, _arg3){ var _local4:*; var _local5:*; var _local6:*; _local4 = (-(_arg3) / _arg2); if ((((_local4 < 0)) || ((_local4 == Infinity)))){ _local4 = 999999; }; _local5 = (_local4 * ThreeDeeCamera.perspex); _local6 = (_local4 * _arg2); return ({x:_local6, y:_local5, z:_arg3}); } } }//package ThreeDee
Section 28
//ThreeDeeObject (ThreeDee.ThreeDeeObject) package ThreeDee { class ThreeDeeObject { var sqrt; var abs; var cos; var atan2; var sin; public var PI;// = 3.14159265358979 function ThreeDeeObject(){ PI = Math.PI; 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 29
//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:*; var _local2:*; var _local3:*; _local1 = ((normal.vx - vx) / ((depth + normal.depth) / 2)); _local2 = ((normal.vy - vy) / ((depth + normal.depth) / 2)); _local3 = Math.sqrt(((_local1 * _local1) + (_local2 * _local2))); squish = (1 + (((radius2 - radius) / radius) * _local3)); rote = Math.atan2(_local2, _local1); } } }//package ThreeDee
Section 30
//ThreeDeePart (ThreeDee.ThreeDeePart) package ThreeDee { import flash.geom.*; import flash.display.*; import util.*; public class ThreeDeePart extends ThreeDeePartContainer { public var currMaskName;// = null public var myShadow; public var shapeShell; var shadowColor; public var innerForm; public var myMask;// = null public var anchorPoint; public var maskKey;// = null public function ThreeDeePart(_arg1){ myMask = null; currMaskName = null; maskKey = null; super(); if (_arg1 != false){ setAnchor(new ThreeDeePoint(_arg1, 0, 0, 0)); }; shapeShell = getShapeShell(); } public function getShapeShell(){ return (this); } public function get px(){ return (anchorPoint.px); } public function get py(){ return (anchorPoint.py); } public function locateRote(_arg1){ anchorPoint.locateRote(_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 get iY(){ return (anchorPoint.iy); } public function get pz(){ return (anchorPoint.pz); } public function set depthPoint(_arg1){ depthRef = _arg1; } public function getCoords(){ return ({x:anchorPoint.x, y:anchorPoint.y, z:anchorPoint.z}); } public function maskOff(){ if (myMask == null){ return; }; removeChild(myMask); myMask = null; currMaskName = null; this.mask = null; } public function sizeAndPlaceShadow(_arg1=1){ var _local2:*; myShadow.x = anchorPoint.vx; myShadow.y = anchorPoint.vys; _local2 = (anchorPoint.depth * _arg1); myShadow.scaleX = _local2; myShadow.scaleY = (anchorPoint.sq * _local2); } public function maskOn(_arg1="default"){ if (currMaskName == _arg1){ return; }; if (myMask != null){ removeChild(myMask); }; myMask = maskKey[_arg1]; addChild(myMask); this.mask = myMask; } public function get iZ(){ return (anchorPoint.iz); } public function moveTo(_arg1, _arg2){ _arg1.moveTo(_arg2.vx, _arg2.vy); } public function addShadow(_arg1, _arg2=0){ myShadow = getShadowClip(); _arg1.addChild(myShadow); shadowColor = _arg2; } public function get iX(){ return (anchorPoint.ix); } public function customLocate(_arg1){ anchorPoint.customLocate(_arg1); } public function setY(_arg1){ anchorPoint.y = _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 addForm(_arg1){ shapeShell.addChild(_arg1); } function getColorTransform(){ return (new Transform(this)); } public function setColor(_arg1, _arg2=null){ if (_arg2 == null){ _arg2 = shapeShell; }; ColorTools.setRGB(_arg2, _arg1); } public function setX(_arg1){ anchorPoint.x = _arg1; } public function setZ(_arg1){ anchorPoint.z = _arg1; } public function get X(){ return (anchorPoint.x); } public function get Z(){ return (anchorPoint.z); } public function locate(){ anchorPoint.locate(); } public function setMask(_arg1, _arg2="default"){ if (maskKey == null){ maskKey = {}; }; maskKey[_arg2] = _arg1; } public function get Y(){ return (anchorPoint.y); } public function get focalDepth(){ return (anchorPoint.focalDepth); } public function setTint(_arg1, _arg2, _arg3=null){ if (_arg3 == null){ _arg3 = this; }; ColorTools.setTint(_arg3, _arg1, _arg2); } public function sizeAndPlace(_arg1=1){ var _local2:*; shapeShell.x = anchorPoint.vx; shapeShell.y = anchorPoint.vy; _local2 = (anchorPoint.depth * _arg1); shapeShell.scaleX = _local2; shapeShell.scaleY = _local2; } public function rotateContents(_arg1){ shapeShell.rotation = ((_arg1 / Math.PI) * 180); } public function lineTo(_arg1, _arg2){ _arg1.lineTo(_arg2.vx, _arg2.vy); } public function getShadowClip(){ return (new Sprite()); } public function get depthPoint(){ return (depthRef); } public function set X(_arg1){ anchorPoint.x = _arg1; } public function setCoord(_arg1, _arg2){ anchorPoint.setCoord(_arg1, _arg2); } public function setAnchor(_arg1){ anchorPoint = _arg1; depthPoint = _arg1; } public function set Z(_arg1){ anchorPoint.z = _arg1; } public function set Y(_arg1){ anchorPoint.y = _arg1; } public function getX(){ return (anchorPoint.x); } public function get vx(){ return (anchorPoint.vx); } public function getY(){ return (anchorPoint.y); } 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 get vy(){ return (anchorPoint.vy); } public function removeShadow(){ myShadow.parent.removeChild(myShadow); } public function createForm(_arg1:Class){ innerForm = new (_arg1); addForm(innerForm); } public function getZ(){ return (anchorPoint.z); } } }//package ThreeDee
Section 31
//ThreeDeePartContainer (ThreeDee.ThreeDeePartContainer) package ThreeDee { import flash.display.*; public class ThreeDeePartContainer extends Sprite { var depthRef; var bgClips; var parts; var fgClips; var bgCounter;// = 0 public function ThreeDeePartContainer(){ bgCounter = 0; super(); parts = []; fgClips = []; bgClips = []; } public function setDepths(){ var _local1:*; var _local2:*; var _local3:*; var _local4:*; var _local5:*; 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++; }; _local4 = fgClips.length; _local5 = 0; while (_local5 < _local4) { setChildIndex(fgClips[_local5], ((bgCounter + _local2) + _local5)); _local5++; }; } public function setFocalDepths(){ var _local1:*; var _local2:*; var _local3:*; var _local4:*; var _local5:*; 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++; }; _local4 = fgClips.length; _local5 = 0; while (_local5 < _local4) { setChildIndex(fgClips[_local5], ((bgCounter + _local2) + _local5)); _local5++; }; } 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 removePart(_arg1:Sprite){ var _local2:*; _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 addFgClip(_arg1){ fgClips.push(_arg1); addChild(_arg1); } public function get depth(){ return (depthRef.depth); } } }//package ThreeDee
Section 32
//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 iz; public var pvx; public var pvy; public var iy; public var vx; public var depth; public var vy; public var rootPoint; var sn; var anchorPoint; var cs; public var _p:Object; public var x;// = 0 public var y;// = 0 public var z;// = 0 public function ThreeDeePoint(_arg1, _arg2=0, _arg3=0, _arg4=0){ x = 0; y = 0; z = 0; px = 0; py = 0; pz = 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 setLocalCoordsFromGlobal(_arg1, _arg2, _arg3){ x = (_arg1 - _p.px); y = (_arg2 - _p.py); z = (_arg3 - _p.pz); } public function XYZ(_arg1=0, _arg2=0, _arg3=0){ x = _arg1; y = _arg2; z = _arg3; } public function beginCustomTransform(){ tx = x; ty = y; tz = z; } public function customLocate(_arg1:ThreeDeeTransform){ var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; _local2 = _arg1.axes; _local3 = _arg1.values; _local4 = _arg1.trigs; beginCustomTransform(); _local5 = _local2.length; _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 zero(){ XYZ(0, 0, 0); } 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 simpleProjection(){ var _local1:*; _local1 = (camera.perspex / py); depth = _local1; vx = (px * _local1); vy = (-(pz) * _local1); } public function setAnchor(_arg1){ if (_arg1 == false){ _p = this; rootPoint = this; } else { _p = _arg1; rootPoint = _p.rootPoint; }; } public function transformTilt(_arg1, _arg2, _arg3){ var _local4:*; var _local5:*; _local4 = tx; _local5 = tz; tx = ((_local4 * _arg3) - (_local5 * _arg2)); tz = ((_local5 * _arg3) + (_local4 * _arg2)); } public function setCoord(_arg1, _arg2){ this[_arg1] = _arg2; } public function yzProjection(){ var _local1:*; _local1 = (camera.perspex / Math.sqrt(((pz * pz) + (py * py)))); depth = _local1; vx = (px * _local1); vy = (-(pz) * _local1); } public function locate(){ px = (x + _p.px); py = (y + _p.py); pz = (z + _p.pz); projectionMethod(); } public function get vys(){ return ((-(rootPoint.pz) * depth)); } public function transformRote(_arg1, _arg2, _arg3){ var _local4:*; var _local5:*; _local4 = tx; _local5 = ty; tx = ((_local4 * _arg3) - (_local5 * _arg2)); ty = ((_local5 * _arg3) + (_local4 * _arg2)); } public function get focalDepth(){ return (-((Math.abs(px) + Math.abs(pz)))); } public function get sq(){ return ((-(rootPoint.pz) / py)); } 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 transformYaw(_arg1, _arg2, _arg3){ var _local4:*; var _local5:*; _local4 = ty; _local5 = tz; ty = ((_local4 * _arg3) - (_local5 * _arg2)); tz = ((_local5 * _arg3) + (_local4 * _arg2)); } public function iXYZ(_arg1, _arg2, _arg3){ ix = (x = _arg1); iy = (y = _arg2); iz = (z = _arg3); } } }//package ThreeDee
Section 33
//ThreeDeeTransform (ThreeDee.ThreeDeeTransform) package ThreeDee { public class ThreeDeeTransform extends Array { private var cos; public var trigs; private var sin; public var axes; public var values; public function ThreeDeeTransform(... _args){ var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; sin = Math.sin; cos = Math.cos; super(); axes = []; values = []; trigs = []; _local2 = _args.length; _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 getSteps(){ var _local1:*; var _local2:*; var _local3:*; _local1 = []; _local2 = axes.length; _local3 = 0; while (_local3 < _local2) { _local1.push(getStep(_local3)); _local3++; }; return (_local1); } public function getStep(_arg1){ var _local2:*; _local2 = {}; _local2[axes[_arg1]] = values[_arg1]; return (_local2); } public function clone(){ var _local1:*; var _local2:*; var _local3:*; var _local4:*; _local1 = new ThreeDeeTransform(); _local2 = axes.length; _local3 = 0; while (_local3 < _local2) { _local4 = {}; _local4[axes[_local3]] = values[_local3]; _local1.insertTransform(_local3, _local4); _local3++; }; return (_local1); } public function pushTransform(_arg1){ insertTransform(axes.length, _arg1); } public function insertTransform(_arg1, _arg2, _arg3=false){ var _local4:*; var _local5:*; var _local6:*; _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 traceContents(){ var _local1:*; var _local2:*; var _local3:*; _local1 = ""; _local2 = axes.length; _local3 = 0; while (_local3 < _local2) { _local1 = (_local1 + (((axes[_local3] + ": ") + values[_local3]) + "\n")); _local3++; }; trace(_local1); } } }//package ThreeDee
Section 34
//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:*; var _local4:*; var _local5:*; _local3 = (_arg1 >> 16); _local4 = ((_arg1 >> 8) & 0xFF); _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:*; var _local4:*; var _local5:*; var _local6:*; _local3 = _arg1.transform; _local4 = (_arg2 >> 16); _local5 = ((_arg2 >> 8) & 0xFF); _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 35
//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 quadEaseOut(_arg1){ _arg1 = (_arg1 / 1); return ((-(_arg1) * (_arg1 - 2))); } public static function quadEaseIn(_arg1){ _arg1 = (_arg1 / 1); return ((_arg1 * _arg1)); } 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 36
//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:*; var _local2:*; _local1 = eventArr.length; _local2 = (_local1 - 1); while (_local2 >= 0) { eventArr[_local2].cancel(); _local2--; }; } } }//package util
Section 37
//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 _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local12:*; var _local13:*; var _local14:*; var _local15:*; var _local16:*; var _local17:*; var _local18:*; var _local19:*; if (Math.abs(_arg2) < 0.0001){ _arg2 = 0.0001; }; _local5 = ((_arg1 * _arg1) + (_arg2 * _arg2)); _local6 = (_arg3 * _arg3); if (_local6 > _local5){ _local19 = (_local6 / _local5); _arg1 = (_arg1 * _local19); _arg2 = (_arg2 * _local19); _local5 = ((_arg1 * _arg1) + (_arg2 * _arg2)); }; _local7 = sqrt((_local5 - _local6)); _local8 = ((_arg4)==1) ? acos((((_arg3 * _arg1) + (_arg2 * _local7)) / _local5)) : acos((((_arg3 * _arg1) - (_arg2 * _local7)) / _local5)); _local9 = (_arg3 * cos(_local8)); _local10 = (_arg3 * sin(_local8)); _local11 = pyt((_local10 - _arg2), (_local9 - _arg1)); _local12 = (_arg3 * cos(-(_local8))); _local13 = (_arg3 * sin(-(_local8))); _local14 = pyt((_local13 - _arg2), (_local12 - _arg1)); _local15 = (-((_local9 / _local10)) / ((_local10 - _arg2) / (_local9 - _arg1))); _local16 = ((abs((_local15 - 1)))<1E-7) ? 1 : 2; _local17 = ((_local16 == 1)) ? _local9 : _local12; _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:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local12:*; _local7 = Math.tan(_arg5); _local8 = (_arg2 - (_local7 * _arg1)); _local9 = Math.tan(_arg6); _local10 = (_arg4 - (_local9 * _arg3)); _local11 = (((_local8 - _local10) / _local9) / (1 - (_local7 / _local9))); _local12 = ((_local7 * _local11) + _local8); return ({x:_local11, y:_local12}); } } }//package util
Section 38
//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 fire(){ onFrame(); } public function cancel(){ removeEventListener(Event.ENTER_FRAME, onFrame); eventArr.splice(eventArr.indexOf(this), 1); } public static function clearAllEvents(){ var _local1:*; for each (_local1 in eventArr) { _local1.cancel(); }; } } }//package util
Section 39
//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){ return (navigateToURL(new URLRequest(_arg1))); } public static function getFlashVersion(){ return (Capabilities.version.split(" ")[1].split(",")[0]); } } }//package util
Section 40
//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:*; _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:*; _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:*; var _local3:*; _local2 = x; _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 41
//circle (circle) package { import flash.display.*; public dynamic class circle extends MovieClip { } }//package
Section 42
//circleShape (circleShape) package { import flash.display.*; public dynamic class circleShape extends MovieClip { public var shape:circle; } }//package
Section 43
//discShape (discShape) package { import flash.display.*; public dynamic class discShape extends MovieClip { public var subShape:MovieClip; } }//package
Section 44
//frameCorner (frameCorner) package { import flash.display.*; public dynamic class frameCorner extends MovieClip { } }//package
Section 45
//semiCircleShape (semiCircleShape) package { import flash.display.*; public dynamic class semiCircleShape extends MovieClip { } }//package
Section 46
//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 MovieClip {spider_fla.discShapeInner_6}Uses: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 {spider_fla.discShapeInner_6} Frame 1Symbol 4 MovieClip {circle}
"subShape"Symbol 6 MovieClip {discShape} Frame 1Symbol 5 MovieClip {spider_fla.discShapeInner_6}
"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/4/15761/info.shtml
Created: 2/6 -2019 11:50:39 Last modified: 2/6 -2019 11:50:39 Server time: 03/05 -2024 06:43:46