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

swfchan turned sixteen years old yesterday! (5may2024)

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

1208548972548.swf

This is the info page for
Flash #16338

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


ActionScript [AS3]
Section 1
//FPS (com.alternativagame.admin.FPS) package com.alternativagame.admin { import flash.events.*; import flash.geom.*; import flash.display.*; import flash.text.*; import flash.system.*; import flash.utils.*; public final class FPS extends Sprite { private var currentY:int; private var diagramTimer:int; private var tfTimer:int; private var downloadedBytes:uint;// = 0 private var socketOutBytes:uint;// = 0 private var socketOutLast:uint;// = 0 private var socketInBytes:uint;// = 0 private var mem:TextField; private var skn:TextField; private var diagram:BitmapData; private var socketOut:TextField; private var skins:int;// = -1 private var fps:TextField; private var socketInLast:uint;// = 0 private var tfDelay:int;// = 0 private var socketIn:TextField; private var dwl:TextField; private var skinsChanged:int;// = 0 private static const maxMemory:uint = 41943040; private static const diagramWidth:uint = 60; private static const tfDelayMax:int = 10; private static const maxSocket:uint = 4200; private static const diagramHeight:uint = 40; private static var instance:FPS; public function FPS(_arg1:DisplayObjectContainer){ var _local2:Bitmap; fps = new TextField(); mem = new TextField(); skn = new TextField(); dwl = new TextField(); socketIn = new TextField(); socketOut = new TextField(); super(); if (instance == null){ mouseEnabled = false; mouseChildren = false; _arg1.addChild(this); fps.defaultTextFormat = new TextFormat("Tahoma", 10, 0xCCCCCC); fps.autoSize = TextFieldAutoSize.LEFT; fps.text = ("FPS: " + Number(stage.frameRate).toFixed(2)); fps.selectable = false; fps.x = (-(diagramWidth) - 2); addChild(fps); mem.defaultTextFormat = new TextFormat("Tahoma", 10, 0xCCCC00); mem.autoSize = TextFieldAutoSize.LEFT; mem.text = ("MEM: " + bytesToString(System.totalMemory)); mem.selectable = false; mem.x = (-(diagramWidth) - 2); mem.y = 10; addChild(mem); currentY = 20; skn.defaultTextFormat = new TextFormat("Tahoma", 10, 0xFF6600); skn.autoSize = TextFieldAutoSize.LEFT; skn.text = ("MEM: " + bytesToString(System.totalMemory)); skn.selectable = false; skn.x = (-(diagramWidth) - 2); dwl.defaultTextFormat = new TextFormat("Tahoma", 10, 0xCC00CC); dwl.autoSize = TextFieldAutoSize.LEFT; dwl.selectable = false; dwl.x = (-(diagramWidth) - 2); socketIn.defaultTextFormat = new TextFormat("Tahoma", 10, 0xFF00); socketIn.autoSize = TextFieldAutoSize.LEFT; socketIn.selectable = false; socketIn.x = (-(diagramWidth) - 2); socketOut.defaultTextFormat = new TextFormat("Tahoma", 10, 26367); socketOut.autoSize = TextFieldAutoSize.LEFT; socketOut.selectable = false; socketOut.x = (-(diagramWidth) - 2); diagram = new BitmapData(diagramWidth, diagramHeight, true, 553648127); _local2 = new Bitmap(diagram); _local2.y = (currentY + 4); _local2.x = -(diagramWidth); addChildAt(_local2, 0); addEventListener(Event.ENTER_FRAME, onEnterFrame); stage.addEventListener(Event.RESIZE, onResize); onResize(); diagramTimer = getTimer(); tfTimer = getTimer(); } else { throw (new Error("FPS is a Singleton. Use FPS.init to create FPS instance")); }; } private function bytesToString(_arg1:uint):String{ var _local2:String; if (_arg1 < 0x0400){ _local2 = (String(_arg1) + "b"); } else { if (_arg1 < 0x2800){ _local2 = (Number((_arg1 / 0x0400)).toFixed(2) + "kb"); } else { if (_arg1 < 102400){ _local2 = (Number((_arg1 / 0x0400)).toFixed(1) + "kb"); } else { if (_arg1 < 0x100000){ _local2 = ((_arg1 >> 10) + "kb"); } else { if (_arg1 < 0xA00000){ _local2 = (Number((_arg1 / 0x100000)).toFixed(2) + "mb"); } else { if (_arg1 < 104857600){ _local2 = (Number((_arg1 / 0x100000)).toFixed(1) + "mb"); } else { _local2 = ((_arg1 >> 20) + "mb"); }; }; }; }; }; }; return (_local2); } private function onEnterFrame(_arg1:Event):void{ tfDelay++; if (tfDelay >= tfDelayMax){ tfDelay = 0; fps.text = ("FPS: " + Number(((1000 * tfDelayMax) / (getTimer() - tfTimer))).toFixed(2)); tfTimer = getTimer(); }; var _local2:Number = (1000 / (getTimer() - diagramTimer)); var _local3:Number = ((_local2)>stage.frameRate) ? 1 : (_local2 / stage.frameRate); diagramTimer = getTimer(); diagram.scroll(1, 0); diagram.fillRect(new Rectangle(0, 0, 1, diagram.height), 553648127); diagram.setPixel32(0, (diagramHeight * (1 - _local3)), 4291611852); mem.text = ("MEM: " + bytesToString(System.totalMemory)); var _local4:Number = ((skins)==0) ? 0 : (skinsChanged / skins); diagram.setPixel32(0, (diagramHeight * (1 - _local4)), 4294927872); var _local5:Number = (System.totalMemory / maxMemory); diagram.setPixel32(0, (diagramHeight * (1 - _local5)), 4291611648); var _local6:Number = ((socketInBytes - socketInLast) / maxSocket); socketInLast = socketInBytes; diagram.setPixel32(0, (diagramHeight * (1 - _local6)), 4278255360); var _local7:Number = ((socketOutBytes - socketOutLast) / maxSocket); socketOutLast = socketOutBytes; diagram.setPixel32(0, (diagramHeight * (1 - _local7)), 4278216447); } private function onResize(_arg1:Event=null):void{ var _local2:Point = parent.globalToLocal(new Point((stage.stageWidth - 2), -3)); x = _local2.x; y = _local2.y; } public static function addDownloadBytes(_arg1:uint):void{ if (instance.downloadedBytes == 0){ instance.dwl.y = instance.currentY; instance.currentY = (instance.currentY + 10); instance.addChild(instance.dwl); instance.getChildAt(0).y = (instance.currentY + 4); }; instance.downloadedBytes = (instance.downloadedBytes + _arg1); instance.dwl.text = ("DWL: " + instance.bytesToString(instance.downloadedBytes)); } public static function init(_arg1:DisplayObjectContainer):void{ instance = new FPS(_arg1); } public static function addSocketInBytes(_arg1:uint):void{ if (instance.socketInBytes == 0){ instance.socketIn.y = instance.currentY; instance.currentY = (instance.currentY + 10); instance.addChild(instance.socketIn); instance.getChildAt(0).y = (instance.currentY + 4); }; instance.socketInBytes = (instance.socketInBytes + _arg1); instance.socketIn.text = ("IN: " + instance.bytesToString(instance.socketInBytes)); } public static function addSocketOutBytes(_arg1:uint):void{ if (instance.socketOutBytes == 0){ instance.socketOut.y = instance.currentY; instance.currentY = (instance.currentY + 10); instance.addChild(instance.socketOut); instance.getChildAt(0).y = (instance.currentY + 4); }; instance.socketOutBytes = (instance.socketOutBytes + _arg1); instance.socketOut.text = ("OUT: " + instance.bytesToString(instance.socketOutBytes)); } public static function addSkins(_arg1:uint, _arg2:uint):void{ if (instance.skins < 0){ instance.skn.y = instance.currentY; instance.currentY = (instance.currentY + 10); instance.addChild(instance.skn); instance.getChildAt(0).y = (instance.currentY + 4); }; instance.skins = _arg1; instance.skinsChanged = _arg2; instance.skn.text = ("SKN: " + ((_arg2)>0) ? ((_arg1.toString() + "-") + _arg2.toString()) : _arg1.toString()); } } }//package com.alternativagame.admin
Section 2
//TestInfo (com.alternativagame.test.TestInfo) package com.alternativagame.test { import flash.text.*; import flash.system.*; public class TestInfo extends TextField { public function TestInfo(){ autoSize = TextFieldAutoSize.LEFT; selectable = false; text = (((("Flash Player (" + Capabilities.playerType) + ") ") + Capabilities.version) + "\n"); setTextFormat(new TextFormat("Tahoma", 10, 8355635)); defaultTextFormat = new TextFormat("Tahoma", 10, 0x7F7F7F); } public function write(_arg1:String):void{ appendText(("\n" + _arg1)); } } }//package com.alternativagame.test
Section 3
//Matrix3D (com.alternativagame.type.Matrix3D) package com.alternativagame.type { public final class Matrix3D { public var a:Number; public var b:Number; public var c:Number; public var d:Number; public var e:Number; public var f:Number; public var g:Number; public var h:Number; public var i:Number; public var j:Number; public var k:Number; public var l:Number; public function Matrix3D(_arg1:Number=1, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Number=1, _arg7:Number=0, _arg8:Number=0, _arg9:Number=0, _arg10:Number=0, _arg11:Number=1, _arg12:Number=0){ this.a = _arg1; this.b = _arg2; this.c = _arg3; this.d = _arg4; this.e = _arg5; this.f = _arg6; this.g = _arg7; this.h = _arg8; this.i = _arg9; this.j = _arg10; this.k = _arg11; this.l = _arg12; } public function clone():Matrix3D{ return (new Matrix3D(a, b, c, d, e, f, g, h, i, j, k, l)); } public function toString():String{ return (((((((((((((((((((((((("Matrix:\r" + a.toFixed(3)) + "\t") + b.toFixed(3)) + "\t") + c.toFixed(3)) + "\t") + d.toFixed(3)) + "\r") + e.toFixed(3)) + "\t") + f.toFixed(3)) + "\t") + g.toFixed(3)) + "\t") + h.toFixed(3)) + "\r") + i.toFixed(3)) + "\t") + j.toFixed(3)) + "\t") + k.toFixed(3)) + "\t") + l.toFixed(3))); } public function scale(_arg1:Number, _arg2:Number, _arg3:Number):void{ a = (a * _arg1); b = (b * _arg1); c = (c * _arg1); d = (d * _arg1); e = (e * _arg2); f = (f * _arg2); g = (g * _arg2); h = (h * _arg2); i = (i * _arg3); j = (j * _arg3); k = (k * _arg3); l = (l * _arg3); } public function offset(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0):void{ d = _arg1; h = _arg2; l = _arg3; } public function translate(_arg1:Number, _arg2:Number, _arg3:Number):void{ d = (d + _arg1); h = (h + _arg2); l = (l + _arg3); } public function equals(_arg1:Matrix3D, _arg2:Number=0):Boolean{ var _local3:Number = (a - _arg1.a); var _local4:Number = (b - _arg1.b); var _local5:Number = (c - _arg1.c); var _local6:Number = (d - _arg1.d); var _local7:Number = (e - _arg1.e); var _local8:Number = (f - _arg1.f); var _local9:Number = (g - _arg1.g); var _local10:Number = (h - _arg1.h); var _local11:Number = (i - _arg1.i); var _local12:Number = (j - _arg1.j); var _local13:Number = (k - _arg1.k); var _local14:Number = (l - _arg1.l); _local3 = ((_local3)<0) ? -(_local3) : _local3; _local4 = ((_local4)<0) ? -(_local4) : _local4; _local5 = ((_local5)<0) ? -(_local5) : _local5; _local6 = ((_local6)<0) ? -(_local6) : _local6; _local7 = ((_local7)<0) ? -(_local7) : _local7; _local8 = ((_local8)<0) ? -(_local8) : _local8; _local9 = ((_local9)<0) ? -(_local9) : _local9; _local10 = ((_local10)<0) ? -(_local10) : _local10; _local11 = ((_local11)<0) ? -(_local11) : _local11; _local12 = ((_local12)<0) ? -(_local12) : _local12; _local13 = ((_local13)<0) ? -(_local13) : _local13; _local14 = ((_local14)<0) ? -(_local14) : _local14; return ((((((((((((((((((((((((_local3 <= _arg2)) && ((_local4 <= _arg2)))) && ((_local5 <= _arg2)))) && ((_local6 <= _arg2)))) && ((_local7 <= _arg2)))) && ((_local8 <= _arg2)))) && ((_local9 <= _arg2)))) && ((_local10 <= _arg2)))) && ((_local11 <= _arg2)))) && ((_local12 <= _arg2)))) && ((_local13 <= _arg2)))) && ((_local14 <= _arg2)))); } public function toIdentity():void{ a = 1; b = 0; c = 0; d = 0; e = 0; f = 1; g = 0; h = 0; i = 0; j = 0; k = 1; l = 0; } public function convertToScreen():void{ var _local1:Number = e; var _local2:Number = f; var _local3:Number = g; var _local4:Number = h; e = -(i); f = -(j); g = -(k); h = -(l); i = -(_local1); j = -(_local2); k = -(_local3); l = -(_local4); } public function rotate(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Number = Math.cos(_arg1); var _local5:Number = Math.sin(_arg1); var _local6:Number = Math.cos(_arg2); var _local7:Number = Math.sin(_arg2); var _local8:Number = Math.cos(_arg3); var _local9:Number = Math.sin(_arg3); var _local10:Number = (_local8 * _local7); var _local11:Number = (_local9 * _local7); var _local12:Number = (_local8 * _local6); var _local13:Number = ((_local10 * _local5) - (_local9 * _local4)); var _local14:Number = ((_local10 * _local4) + (_local9 * _local5)); var _local15:Number = (_local9 * _local6); var _local16:Number = ((_local11 * _local5) + (_local8 * _local4)); var _local17:Number = ((_local11 * _local4) - (_local8 * _local5)); var _local18:Number = -(_local7); var _local19:Number = (_local6 * _local5); var _local20:Number = (_local6 * _local4); var _local21:Number = a; var _local22:Number = b; var _local23:Number = c; var _local24:Number = d; var _local25:Number = e; var _local26:Number = f; var _local27:Number = g; var _local28:Number = h; var _local29:Number = i; var _local30:Number = j; var _local31:Number = k; var _local32:Number = l; a = (((_local12 * _local21) + (_local13 * _local25)) + (_local14 * _local29)); b = (((_local12 * _local22) + (_local13 * _local26)) + (_local14 * _local30)); c = (((_local12 * _local23) + (_local13 * _local27)) + (_local14 * _local31)); d = (((_local12 * _local24) + (_local13 * _local28)) + (_local14 * _local32)); e = (((_local15 * _local21) + (_local16 * _local25)) + (_local17 * _local29)); f = (((_local15 * _local22) + (_local16 * _local26)) + (_local17 * _local30)); g = (((_local15 * _local23) + (_local16 * _local27)) + (_local17 * _local31)); h = (((_local15 * _local24) + (_local16 * _local28)) + (_local17 * _local32)); i = (((_local18 * _local21) + (_local19 * _local25)) + (_local20 * _local29)); j = (((_local18 * _local22) + (_local19 * _local26)) + (_local20 * _local30)); k = (((_local18 * _local23) + (_local19 * _local27)) + (_local20 * _local31)); l = (((_local18 * _local24) + (_local19 * _local28)) + (_local20 * _local32)); } public function inverseTransform(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0, _arg7:Number=1, _arg8:Number=1, _arg9:Number=1):void{ var _local10:Number = Math.cos(-(_arg4)); var _local11:Number = Math.sin(-(_arg4)); var _local12:Number = Math.cos(-(_arg5)); var _local13:Number = Math.sin(-(_arg5)); var _local14:Number = Math.cos(-(_arg6)); var _local15:Number = Math.sin(-(_arg6)); var _local16:Number = (_local11 * _local13); var _local17:Number = (1 / _arg7); var _local18:Number = (1 / _arg8); var _local19:Number = (1 / _arg9); var _local20:Number = (_local12 * _local17); var _local21:Number = (_local10 * _local18); var _local22:Number = (_local11 * _local19); var _local23:Number = (_local10 * _local19); var _local24:Number = (_local14 * _local20); var _local25:Number = (-(_local15) * _local20); var _local26:Number = (_local13 * _local17); var _local27:Number = -((((_local24 * _arg1) + (_local25 * _arg2)) + (_local26 * _arg3))); var _local28:Number = ((_local15 * _local21) + ((_local16 * _local14) * _local18)); var _local29:Number = ((_local14 * _local21) - ((_local16 * _local15) * _local18)); var _local30:Number = ((-(_local11) * _local12) * _local18); var _local31:Number = -((((_local28 * _arg1) + (_local29 * _arg2)) + (_local30 * _arg3))); var _local32:Number = ((_local15 * _local22) - ((_local14 * _local13) * _local23)); var _local33:Number = ((_local14 * _local22) + ((_local13 * _local15) * _local23)); var _local34:Number = (_local12 * _local23); var _local35:Number = -((((_local32 * _arg1) + (_local33 * _arg2)) + (_local34 * _arg3))); var _local36:Number = a; var _local37:Number = b; var _local38:Number = c; var _local39:Number = d; var _local40:Number = e; var _local41:Number = f; var _local42:Number = g; var _local43:Number = h; var _local44:Number = i; var _local45:Number = j; var _local46:Number = k; var _local47:Number = l; a = (((_local24 * _local36) + (_local25 * _local40)) + (_local26 * _local44)); b = (((_local24 * _local37) + (_local25 * _local41)) + (_local26 * _local45)); c = (((_local24 * _local38) + (_local25 * _local42)) + (_local26 * _local46)); d = ((((_local24 * _local39) + (_local25 * _local43)) + (_local26 * _local47)) + _local27); e = (((_local28 * _local36) + (_local29 * _local40)) + (_local30 * _local44)); f = (((_local28 * _local37) + (_local29 * _local41)) + (_local30 * _local45)); g = (((_local28 * _local38) + (_local29 * _local42)) + (_local30 * _local46)); h = ((((_local28 * _local39) + (_local29 * _local43)) + (_local30 * _local47)) + _local31); i = (((_local32 * _local36) + (_local33 * _local40)) + (_local34 * _local44)); j = (((_local32 * _local37) + (_local33 * _local41)) + (_local34 * _local45)); k = (((_local32 * _local38) + (_local33 * _local42)) + (_local34 * _local46)); l = ((((_local32 * _local39) + (_local33 * _local43)) + (_local34 * _local47)) + _local35); } public function invert():void{ var _local1:Number = a; var _local2:Number = b; var _local3:Number = c; var _local4:Number = d; var _local5:Number = e; var _local6:Number = f; var _local7:Number = g; var _local8:Number = h; var _local9:Number = i; var _local10:Number = j; var _local11:Number = k; var _local12:Number = l; var _local13:Number = (((((((-(_local3) * _local6) * _local9) + ((_local2 * _local7) * _local9)) + ((_local3 * _local5) * _local10)) - ((_local1 * _local7) * _local10)) - ((_local2 * _local5) * _local11)) + ((_local1 * _local6) * _local11)); a = (((-(_local7) * _local10) + (_local6 * _local11)) / _local13); b = (((_local3 * _local10) - (_local2 * _local11)) / _local13); c = (((-(_local3) * _local6) + (_local2 * _local7)) / _local13); d = ((((((((_local4 * _local7) * _local10) - ((_local3 * _local8) * _local10)) - ((_local4 * _local6) * _local11)) + ((_local2 * _local8) * _local11)) + ((_local3 * _local6) * _local12)) - ((_local2 * _local7) * _local12)) / _local13); e = (((_local7 * _local9) - (_local5 * _local11)) / _local13); f = (((-(_local3) * _local9) + (_local1 * _local11)) / _local13); g = (((_local3 * _local5) - (_local1 * _local7)) / _local13); h = ((((((((_local3 * _local8) * _local9) - ((_local4 * _local7) * _local9)) + ((_local4 * _local5) * _local11)) - ((_local1 * _local8) * _local11)) - ((_local3 * _local5) * _local12)) + ((_local1 * _local7) * _local12)) / _local13); i = (((-(_local6) * _local9) + (_local5 * _local10)) / _local13); j = (((_local2 * _local9) - (_local1 * _local10)) / _local13); k = (((-(_local2) * _local5) + (_local1 * _local6)) / _local13); l = ((((((((_local4 * _local6) * _local9) - ((_local2 * _local8) * _local9)) - ((_local4 * _local5) * _local10)) + ((_local1 * _local8) * _local10)) + ((_local2 * _local5) * _local12)) - ((_local1 * _local6) * _local12)) / _local13); } public function inverseCombine(_arg1:Matrix3D):void{ var _local2:Number = a; var _local3:Number = b; var _local4:Number = c; var _local5:Number = d; var _local6:Number = e; var _local7:Number = f; var _local8:Number = g; var _local9:Number = h; var _local10:Number = i; var _local11:Number = j; var _local12:Number = k; var _local13:Number = l; a = (((_local2 * _arg1.a) + (_local3 * _arg1.e)) + (_local4 * _arg1.i)); b = (((_local2 * _arg1.b) + (_local3 * _arg1.f)) + (_local4 * _arg1.j)); c = (((_local2 * _arg1.c) + (_local3 * _arg1.g)) + (_local4 * _arg1.k)); d = ((((_local2 * _arg1.d) + (_local3 * _arg1.h)) + (_local4 * _arg1.l)) + _local5); e = (((_local6 * _arg1.a) + (_local7 * _arg1.e)) + (_local8 * _arg1.i)); f = (((_local6 * _arg1.b) + (_local7 * _arg1.f)) + (_local8 * _arg1.j)); g = (((_local6 * _arg1.c) + (_local7 * _arg1.g)) + (_local8 * _arg1.k)); h = ((((_local6 * _arg1.d) + (_local7 * _arg1.h)) + (_local8 * _arg1.l)) + _local9); i = (((_local10 * _arg1.a) + (_local11 * _arg1.e)) + (_local12 * _arg1.i)); j = (((_local10 * _arg1.b) + (_local11 * _arg1.f)) + (_local12 * _arg1.j)); k = (((_local10 * _arg1.c) + (_local11 * _arg1.g)) + (_local12 * _arg1.k)); l = ((((_local10 * _arg1.d) + (_local11 * _arg1.h)) + (_local12 * _arg1.l)) + _local13); } public function toTransform(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0, _arg7:Number=1, _arg8:Number=1, _arg9:Number=1):void{ var _local10:Number = Math.cos(_arg4); var _local11:Number = Math.sin(_arg4); var _local12:Number = Math.cos(_arg5); var _local13:Number = Math.sin(_arg5); var _local14:Number = Math.cos(_arg6); var _local15:Number = Math.sin(_arg6); var _local16:Number = (_local14 * _local13); var _local17:Number = (_local15 * _local13); var _local18:Number = (_local12 * _arg7); var _local19:Number = (_local11 * _arg8); var _local20:Number = (_local10 * _arg8); var _local21:Number = (_local10 * _arg9); var _local22:Number = (_local11 * _arg9); a = (_local14 * _local18); b = ((_local16 * _local19) - (_local15 * _local20)); c = ((_local16 * _local21) + (_local15 * _local22)); d = _arg1; e = (_local15 * _local18); f = ((_local17 * _local19) + (_local14 * _local20)); g = ((_local17 * _local21) - (_local14 * _local22)); h = _arg2; i = (-(_local13) * _arg7); j = (_local12 * _local19); k = (_local12 * _local21); l = _arg3; } public function inverseRotate(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Number = Math.cos(-(_arg1)); var _local5:Number = Math.sin(-(_arg1)); var _local6:Number = Math.cos(-(_arg2)); var _local7:Number = Math.sin(-(_arg2)); var _local8:Number = Math.cos(-(_arg3)); var _local9:Number = Math.sin(-(_arg3)); var _local10:Number = (_local5 * _local7); var _local11:Number = (_local6 * _local8); var _local12:Number = (-(_local6) * _local9); var _local13:Number = _local7; var _local14:Number = ((_local4 * _local9) + (_local10 * _local8)); var _local15:Number = ((_local4 * _local8) - (_local10 * _local9)); var _local16:Number = (-(_local5) * _local6); var _local17:Number = ((_local5 * _local9) - ((_local4 * _local8) * _local7)); var _local18:Number = ((_local5 * _local8) + ((_local4 * _local7) * _local9)); var _local19:Number = (_local4 * _local6); var _local20:Number = a; var _local21:Number = b; var _local22:Number = c; var _local23:Number = d; var _local24:Number = e; var _local25:Number = f; var _local26:Number = g; var _local27:Number = h; var _local28:Number = i; var _local29:Number = j; var _local30:Number = k; var _local31:Number = l; a = (((_local11 * _local20) + (_local12 * _local24)) + (_local13 * _local28)); b = (((_local11 * _local21) + (_local12 * _local25)) + (_local13 * _local29)); c = (((_local11 * _local22) + (_local12 * _local26)) + (_local13 * _local30)); d = (((_local11 * _local23) + (_local12 * _local27)) + (_local13 * _local31)); e = (((_local14 * _local20) + (_local15 * _local24)) + (_local16 * _local28)); f = (((_local14 * _local21) + (_local15 * _local25)) + (_local16 * _local29)); g = (((_local14 * _local22) + (_local15 * _local26)) + (_local16 * _local30)); h = (((_local14 * _local23) + (_local15 * _local27)) + (_local16 * _local31)); i = (((_local17 * _local20) + (_local18 * _local24)) + (_local19 * _local28)); j = (((_local17 * _local21) + (_local18 * _local25)) + (_local19 * _local29)); k = (((_local17 * _local22) + (_local18 * _local26)) + (_local19 * _local30)); l = (((_local17 * _local23) + (_local18 * _local27)) + (_local19 * _local31)); } public function copy(_arg1:Matrix3D):void{ a = _arg1.a; b = _arg1.b; c = _arg1.c; d = _arg1.d; e = _arg1.e; f = _arg1.f; g = _arg1.g; h = _arg1.h; i = _arg1.i; j = _arg1.j; k = _arg1.k; l = _arg1.l; } public function inverseConvertToScreen():void{ var _local1:Number = b; var _local2:Number = f; var _local3:Number = j; b = -(c); f = -(g); j = -(k); c = -(_local1); g = -(_local2); k = -(_local3); } public function inverseScale(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Number = (1 / _arg1); var _local5:Number = (1 / _arg2); var _local6:Number = (1 / _arg3); a = (a * _local4); b = (b * _local4); c = (c * _local4); d = (d * _local4); e = (e * _local5); f = (f * _local5); g = (g * _local5); h = (h * _local5); i = (i * _local6); j = (j * _local6); k = (k * _local6); l = (l * _local6); } public function transform(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0, _arg7:Number=1, _arg8:Number=1, _arg9:Number=1):void{ var _local10:Number = Math.cos(_arg4); var _local11:Number = Math.sin(_arg4); var _local12:Number = Math.cos(_arg5); var _local13:Number = Math.sin(_arg5); var _local14:Number = Math.cos(_arg6); var _local15:Number = Math.sin(_arg6); var _local16:Number = (_local14 * _local13); var _local17:Number = (_local15 * _local13); var _local18:Number = (_local12 * _arg7); var _local19:Number = (_local11 * _arg8); var _local20:Number = (_local10 * _arg8); var _local21:Number = (_local10 * _arg9); var _local22:Number = (_local11 * _arg9); var _local23:Number = (_local14 * _local18); var _local24:Number = ((_local16 * _local19) - (_local15 * _local20)); var _local25:Number = ((_local16 * _local21) + (_local15 * _local22)); var _local26:Number = _arg1; var _local27:Number = (_local15 * _local18); var _local28:Number = ((_local17 * _local19) + (_local14 * _local20)); var _local29:Number = ((_local17 * _local21) - (_local14 * _local22)); var _local30:Number = _arg2; var _local31:Number = (-(_local13) * _arg7); var _local32:Number = (_local12 * _local19); var _local33:Number = (_local12 * _local21); var _local34:Number = _arg3; var _local35:Number = a; var _local36:Number = b; var _local37:Number = c; var _local38:Number = d; var _local39:Number = e; var _local40:Number = f; var _local41:Number = g; var _local42:Number = h; var _local43:Number = i; var _local44:Number = j; var _local45:Number = k; var _local46:Number = l; a = (((_local23 * _local35) + (_local24 * _local39)) + (_local25 * _local43)); b = (((_local23 * _local36) + (_local24 * _local40)) + (_local25 * _local44)); c = (((_local23 * _local37) + (_local24 * _local41)) + (_local25 * _local45)); d = ((((_local23 * _local38) + (_local24 * _local42)) + (_local25 * _local46)) + _local26); e = (((_local27 * _local35) + (_local28 * _local39)) + (_local29 * _local43)); f = (((_local27 * _local36) + (_local28 * _local40)) + (_local29 * _local44)); g = (((_local27 * _local37) + (_local28 * _local41)) + (_local29 * _local45)); h = ((((_local27 * _local38) + (_local28 * _local42)) + (_local29 * _local46)) + _local30); i = (((_local31 * _local35) + (_local32 * _local39)) + (_local33 * _local43)); j = (((_local31 * _local36) + (_local32 * _local40)) + (_local33 * _local44)); k = (((_local31 * _local37) + (_local32 * _local41)) + (_local33 * _local45)); l = ((((_local31 * _local38) + (_local32 * _local42)) + (_local33 * _local46)) + _local34); } public function translateLocal(_arg1:Number, _arg2:Number, _arg3:Number):void{ d = (d + (((a * _arg1) + (b * _arg2)) + (c * _arg3))); h = (h + (((e * _arg1) + (f * _arg2)) + (g * _arg3))); l = (l + (((i * _arg1) + (j * _arg2)) + (k * _arg3))); } public function inverseTranslate(_arg1:Number, _arg2:Number, _arg3:Number):void{ d = (d - _arg1); h = (h - _arg2); l = (l - _arg3); } public function combine(_arg1:Matrix3D):void{ var _local2:Number = a; var _local3:Number = b; var _local4:Number = c; var _local5:Number = d; var _local6:Number = e; var _local7:Number = f; var _local8:Number = g; var _local9:Number = h; var _local10:Number = i; var _local11:Number = j; var _local12:Number = k; var _local13:Number = l; a = (((_arg1.a * _local2) + (_arg1.b * _local6)) + (_arg1.c * _local10)); b = (((_arg1.a * _local3) + (_arg1.b * _local7)) + (_arg1.c * _local11)); c = (((_arg1.a * _local4) + (_arg1.b * _local8)) + (_arg1.c * _local12)); d = ((((_arg1.a * _local5) + (_arg1.b * _local9)) + (_arg1.c * _local13)) + _arg1.d); e = (((_arg1.e * _local2) + (_arg1.f * _local6)) + (_arg1.g * _local10)); f = (((_arg1.e * _local3) + (_arg1.f * _local7)) + (_arg1.g * _local11)); g = (((_arg1.e * _local4) + (_arg1.f * _local8)) + (_arg1.g * _local12)); h = ((((_arg1.e * _local5) + (_arg1.f * _local9)) + (_arg1.g * _local13)) + _arg1.h); i = (((_arg1.i * _local2) + (_arg1.j * _local6)) + (_arg1.k * _local10)); j = (((_arg1.i * _local3) + (_arg1.j * _local7)) + (_arg1.k * _local11)); k = (((_arg1.i * _local4) + (_arg1.j * _local8)) + (_arg1.k * _local12)); l = ((((_arg1.i * _local5) + (_arg1.j * _local9)) + (_arg1.k * _local13)) + _arg1.l); } public static function inverseTranslationMatrix(_arg1:Number, _arg2:Number, _arg3:Number):Matrix3D{ return (new Matrix3D(1, 0, 0, -(_arg1), 0, 1, 0, -(_arg2), 0, 0, 1, -(_arg3))); } public static function translationMatrix(_arg1:Number, _arg2:Number, _arg3:Number):Matrix3D{ return (new Matrix3D(1, 0, 0, _arg1, 0, 1, 0, _arg2, 0, 0, 1, _arg3)); } public static function inverseRotationMatrix(_arg1:Number, _arg2:Number, _arg3:Number):Matrix3D{ var _local4:Number = Math.cos(-(_arg1)); var _local5:Number = Math.sin(-(_arg1)); var _local6:Number = Math.cos(-(_arg2)); var _local7:Number = Math.sin(-(_arg2)); var _local8:Number = Math.cos(-(_arg3)); var _local9:Number = Math.sin(-(_arg3)); var _local10:Number = (_local5 * _local7); return (new Matrix3D((_local6 * _local8), (-(_local6) * _local9), _local7, 0, ((_local4 * _local9) + (_local10 * _local8)), ((_local4 * _local8) - (_local10 * _local9)), (-(_local5) * _local6), 0, ((_local5 * _local9) - ((_local4 * _local8) * _local7)), ((_local5 * _local8) + ((_local4 * _local7) * _local9)), (_local4 * _local6), 0)); } public static function inverseTransformationMatrix(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0, _arg7:Number=1, _arg8:Number=1, _arg9:Number=1):Matrix3D{ var _local10:Number = Math.cos(-(_arg4)); var _local11:Number = Math.sin(-(_arg4)); var _local12:Number = Math.cos(-(_arg5)); var _local13:Number = Math.sin(-(_arg5)); var _local14:Number = Math.cos(-(_arg6)); var _local15:Number = Math.sin(-(_arg6)); var _local16:Number = (_local11 * _local13); var _local17:Number = (1 / _arg7); var _local18:Number = (1 / _arg8); var _local19:Number = (1 / _arg9); var _local20:Number = (_local12 * _local17); var _local21:Number = (_local10 * _local18); var _local22:Number = (_local11 * _local19); var _local23:Number = (_local10 * _local19); var _local24:Number = (_local14 * _local20); var _local25:Number = (-(_local15) * _local20); var _local26:Number = (_local13 * _local17); var _local27:Number = ((_local15 * _local21) + ((_local16 * _local14) * _local18)); var _local28:Number = ((_local14 * _local21) - ((_local16 * _local15) * _local18)); var _local29:Number = ((-(_local11) * _local12) * _local18); var _local30:Number = ((_local15 * _local22) - ((_local14 * _local13) * _local23)); var _local31:Number = ((_local14 * _local22) + ((_local13 * _local15) * _local23)); var _local32:Number = (_local12 * _local23); return (new Matrix3D(_local24, _local25, _local26, -((((_local24 * _arg1) + (_local25 * _arg2)) + (_local26 * _arg3))), _local27, _local28, _local29, -((((_local27 * _arg1) + (_local28 * _arg2)) + (_local29 * _arg3))), _local30, _local31, _local32, -((((_local30 * _arg1) + (_local31 * _arg2)) + (_local32 * _arg3))))); } public static function inverseMatrix(_arg1:Matrix3D):Matrix3D{ var _local2:Number = (((((((-(_arg1.c) * _arg1.f) * _arg1.i) + ((_arg1.b * _arg1.g) * _arg1.i)) + ((_arg1.c * _arg1.e) * _arg1.j)) - ((_arg1.a * _arg1.g) * _arg1.j)) - ((_arg1.b * _arg1.e) * _arg1.k)) + ((_arg1.a * _arg1.f) * _arg1.k)); var _local3:Number = (((-(_arg1.g) * _arg1.j) + (_arg1.f * _arg1.k)) / _local2); var _local4:Number = (((_arg1.c * _arg1.j) - (_arg1.b * _arg1.k)) / _local2); var _local5:Number = (((-(_arg1.c) * _arg1.f) + (_arg1.b * _arg1.g)) / _local2); var _local6:Number = ((((((((_arg1.d * _arg1.g) * _arg1.j) - ((_arg1.c * _arg1.h) * _arg1.j)) - ((_arg1.d * _arg1.f) * _arg1.k)) + ((_arg1.b * _arg1.h) * _arg1.k)) + ((_arg1.c * _arg1.f) * _arg1.l)) - ((_arg1.b * _arg1.g) * _arg1.l)) / _local2); var _local7:Number = (((_arg1.g * _arg1.i) - (_arg1.e * _arg1.k)) / _local2); var _local8:Number = (((-(_arg1.c) * _arg1.i) + (_arg1.a * _arg1.k)) / _local2); var _local9:Number = (((_arg1.c * _arg1.e) - (_arg1.a * _arg1.g)) / _local2); var _local10:Number = ((((((((_arg1.c * _arg1.h) * _arg1.i) - ((_arg1.d * _arg1.g) * _arg1.i)) + ((_arg1.d * _arg1.e) * _arg1.k)) - ((_arg1.a * _arg1.h) * _arg1.k)) - ((_arg1.c * _arg1.e) * _arg1.l)) + ((_arg1.a * _arg1.g) * _arg1.l)) / _local2); var _local11:Number = (((-(_arg1.f) * _arg1.i) + (_arg1.e * _arg1.j)) / _local2); var _local12:Number = (((_arg1.b * _arg1.i) - (_arg1.a * _arg1.j)) / _local2); var _local13:Number = (((-(_arg1.b) * _arg1.e) + (_arg1.a * _arg1.f)) / _local2); var _local14:Number = ((((((((_arg1.d * _arg1.f) * _arg1.i) - ((_arg1.b * _arg1.h) * _arg1.i)) - ((_arg1.d * _arg1.e) * _arg1.j)) + ((_arg1.a * _arg1.h) * _arg1.j)) + ((_arg1.b * _arg1.e) * _arg1.l)) - ((_arg1.a * _arg1.f) * _arg1.l)) / _local2); return (new Matrix3D(_local3, _local4, _local5, _local6, _local7, _local8, _local9, _local10, _local11, _local12, _local13, _local14)); } public static function inverseScaleMatrix(_arg1:Number, _arg2:Number, _arg3:Number):Matrix3D{ return (new Matrix3D((1 / _arg1), 0, 0, 0, 0, (1 / _arg2), 0, 0, 0, 0, (1 / _arg3), 0)); } public static function scaleMatrix(_arg1:Number, _arg2:Number, _arg3:Number):Matrix3D{ return (new Matrix3D(_arg1, 0, 0, 0, 0, _arg2, 0, 0, 0, 0, _arg3, 0)); } public static function transformationMatrix(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0, _arg7:Number=1, _arg8:Number=1, _arg9:Number=1):Matrix3D{ var _local10:Number = Math.cos(_arg4); var _local11:Number = Math.sin(_arg4); var _local12:Number = Math.cos(_arg5); var _local13:Number = Math.sin(_arg5); var _local14:Number = Math.cos(_arg6); var _local15:Number = Math.sin(_arg6); var _local16:Number = (_local14 * _local13); var _local17:Number = (_local15 * _local13); var _local18:Number = (_local12 * _arg7); var _local19:Number = (_local11 * _arg8); var _local20:Number = (_local10 * _arg8); var _local21:Number = (_local10 * _arg9); var _local22:Number = (_local11 * _arg9); return (new Matrix3D((_local14 * _local18), ((_local16 * _local19) - (_local15 * _local20)), ((_local16 * _local21) + (_local15 * _local22)), _arg1, (_local15 * _local18), ((_local17 * _local19) + (_local14 * _local20)), ((_local17 * _local21) - (_local14 * _local22)), _arg2, (-(_local13) * _arg7), (_local12 * _local19), (_local12 * _local21), _arg3)); } public static function product(_arg1:Matrix3D, _arg2:Matrix3D):Matrix3D{ return (new Matrix3D((((_arg1.a * _arg2.a) + (_arg1.b * _arg2.e)) + (_arg1.c * _arg2.i)), (((_arg1.a * _arg2.b) + (_arg1.b * _arg2.f)) + (_arg1.c * _arg2.j)), (((_arg1.a * _arg2.c) + (_arg1.b * _arg2.g)) + (_arg1.c * _arg2.k)), ((((_arg1.a * _arg2.d) + (_arg1.b * _arg2.h)) + (_arg1.c * _arg2.l)) + _arg1.d), (((_arg1.e * _arg2.a) + (_arg1.f * _arg2.e)) + (_arg1.g * _arg2.i)), (((_arg1.e * _arg2.b) + (_arg1.f * _arg2.f)) + (_arg1.g * _arg2.j)), (((_arg1.e * _arg2.c) + (_arg1.f * _arg2.g)) + (_arg1.g * _arg2.k)), ((((_arg1.e * _arg2.d) + (_arg1.f * _arg2.h)) + (_arg1.g * _arg2.l)) + _arg1.h), (((_arg1.i * _arg2.a) + (_arg1.j * _arg2.e)) + (_arg1.k * _arg2.i)), (((_arg1.i * _arg2.b) + (_arg1.j * _arg2.f)) + (_arg1.k * _arg2.j)), (((_arg1.i * _arg2.c) + (_arg1.j * _arg2.g)) + (_arg1.k * _arg2.k)), ((((_arg1.i * _arg2.d) + (_arg1.j * _arg2.h)) + (_arg1.k * _arg2.l)) + _arg1.l))); } public static function rotationMatrix(_arg1:Number, _arg2:Number, _arg3:Number):Matrix3D{ var _local4:Number = Math.cos(_arg1); var _local5:Number = Math.sin(_arg1); var _local6:Number = Math.cos(_arg2); var _local7:Number = Math.sin(_arg2); var _local8:Number = Math.cos(_arg3); var _local9:Number = Math.sin(_arg3); var _local10:Number = (_local8 * _local7); var _local11:Number = (_local9 * _local7); return (new Matrix3D((_local8 * _local6), ((_local10 * _local5) - (_local9 * _local4)), ((_local10 * _local4) + (_local9 * _local5)), 0, (_local9 * _local6), ((_local11 * _local5) + (_local8 * _local4)), ((_local11 * _local4) - (_local8 * _local5)), 0, -(_local7), (_local6 * _local5), (_local6 * _local4), 0)); } } }//package com.alternativagame.type
Section 4
//Point3D (com.alternativagame.type.Point3D) package com.alternativagame.type { import flash.geom.*; import com.alternativagame.utility.*; public final class Point3D { public var x:Number; public var y:Number; public var z:Number; public function Point3D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; } public function floor():void{ x = Math.floor(x); y = Math.floor(y); z = Math.floor(z); } public function add(_arg1:Point3D):void{ x = (x + _arg1.x); y = (y + _arg1.y); z = (z + _arg1.z); } public function toString():String{ return (((((("X: " + x.toFixed(3)) + " Y:") + y.toFixed(3)) + " Z:") + z.toFixed(3))); } public function multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); z = (z * _arg1); } public function transform(_arg1:Matrix3D):void{ var _local2:Number = x; var _local3:Number = y; var _local4:Number = z; x = ((((_arg1.a * _local2) + (_arg1.b * _local3)) + (_arg1.c * _local4)) + _arg1.d); y = ((((_arg1.e * _local2) + (_arg1.f * _local3)) + (_arg1.g * _local4)) + _arg1.h); z = ((((_arg1.i * _local2) + (_arg1.j * _local3)) + (_arg1.k * _local4)) + _arg1.l); } public function get length():Number{ return (Math.sqrt((((x * x) + (y * y)) + (z * z)))); } public function clone():Point3D{ return (new Point3D(x, y, z)); } public function set length(_arg1:Number):void{ var _local2:Number = length; var _local3:Number = ((_local2)!=0) ? (_arg1 / length) : 0; x = (x * _local3); y = (y * _local3); z = (z * _local3); } public function normalize():void{ var _local1:Number = Math.sqrt((((x * x) + (y * y)) + (z * z))); x = (x / _local1); y = (y / _local1); z = (z / _local1); } public function get lengthSqr():Number{ return ((((x * x) + (y * y)) + (z * z))); } public function reset():void{ x = 0; y = 0; z = 0; } public function copy(_arg1:Point3D):void{ x = _arg1.x; y = _arg1.y; z = _arg1.z; } public function invert():void{ x = -(x); y = -(y); z = -(z); } public function subtract(_arg1:Point3D):void{ x = (x - _arg1.x); y = (y - _arg1.y); z = (z - _arg1.z); } public function toPoint():Point{ return (new Point(x, y)); } public function round():void{ x = Math.round(x); y = Math.round(y); z = Math.round(z); } public function equals(_arg1:Point3D, _arg2:Number=0):Boolean{ return (((((((((((((x - _arg1.x) <= _arg2)) && (((x - _arg1.x) >= -(_arg2))))) && (((y - _arg1.y) <= _arg2)))) && (((y - _arg1.y) >= -(_arg2))))) && (((z - _arg1.z) <= _arg2)))) && (((z - _arg1.z) >= -(_arg2))))); } public static function cross(_arg1:Point3D, _arg2:Point3D):Point3D{ return (new Point3D(((_arg1.y * _arg2.z) - (_arg1.z * _arg2.y)), ((_arg1.z * _arg2.x) - (_arg1.x * _arg2.z)), ((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x)))); } public static function cross2D(_arg1:Point3D, _arg2:Point3D):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function angle(_arg1:Point3D, _arg2:Point3D):Number{ var _local3:Number = (_arg1.length * _arg2.length); var _local4:Number = ((_local3)!=0) ? (dot(_arg1, _arg2) / _local3) : 1; return (Math.acos(_local4)); } public static function average(_arg1:Point3D, _arg2:Point3D=null, _arg3:Point3D=null, _arg4:Point3D=null):Point3D{ if (_arg2 == null){ return (_arg1.clone()); }; if (_arg3 == null){ return (new Point3D(((_arg1.x + _arg2.x) * 0.5), ((_arg1.y + _arg2.y) * 0.5), ((_arg1.z + _arg2.z) * 0.5))); }; if (_arg4 == null){ return (new Point3D((((_arg1.x + _arg2.x) + _arg3.x) / 3), (((_arg1.y + _arg2.y) + _arg3.y) / 3), (((_arg1.z + _arg2.z) + _arg3.z) / 3))); }; return (new Point3D(((((_arg1.x + _arg2.x) + _arg3.x) + _arg4.x) * 0.25), ((((_arg1.y + _arg2.y) + _arg3.y) + _arg4.y) * 0.25), ((((_arg1.z + _arg2.z) + _arg3.z) + _arg4.z) / 0.25))); } public static function random(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Point3D{ return (new Point3D(MathUtility.random(_arg1, _arg2), MathUtility.random(_arg3, _arg4), MathUtility.random(_arg5, _arg6))); } public static function interpolate(_arg1:Point3D, _arg2:Point3D, _arg3:Number=0.5):Point3D{ return (new Point3D((_arg1.x + ((_arg2.x - _arg1.x) * _arg3)), (_arg1.y + ((_arg2.y - _arg1.y) * _arg3)), (_arg1.z + ((_arg2.z - _arg1.z) * _arg3)))); } public static function dot(_arg1:Point3D, _arg2:Point3D):Number{ return ((((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y)) + (_arg1.z * _arg2.z))); } public static function sum(_arg1:Point3D, _arg2:Point3D):Point3D{ return (new Point3D((_arg1.x + _arg2.x), (_arg1.y + _arg2.y), (_arg1.z + _arg2.z))); } public static function dot2D(_arg1:Point3D, _arg2:Point3D):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function difference(_arg1:Point3D, _arg2:Point3D):Point3D{ return (new Point3D((_arg1.x - _arg2.x), (_arg1.y - _arg2.y), (_arg1.z - _arg2.z))); } public static function angleFast(_arg1:Point3D, _arg2:Point3D):Number{ var _local3:Number = dot(_arg1, _arg2); if (Math.abs(_local3) > 1){ _local3 = ((_local3)>0) ? 1 : -1; }; return (Math.acos(_local3)); } } }//package com.alternativagame.type
Section 5
//RGB (com.alternativagame.type.RGB) package com.alternativagame.type { import com.alternativagame.utility.*; public final class RGB { public var green:uint;// = 0 public var red:uint;// = 0 public var blue:uint;// = 0 public function RGB(... _args){ if (_args.length > 0){ if (_args.length > 1){ red = _args[0]; green = _args[1]; blue = _args[2]; } else { red = ((_args[0] & 0xFF0000) >>> 16); green = ((_args[0] & 0xFF00) >>> 8); blue = (_args[0] & 0xFF); }; }; } public function add(_arg1:RGB):void{ red = (red + _arg1.red); green = (green + _arg1.green); blue = (blue + _arg1.blue); } public function multiply(_arg1:Number):void{ red = (red * _arg1); green = (green * _arg1); blue = (blue * _arg1); } public function subtract(_arg1:RGB):void{ red = ((red)<_arg1.red) ? 0 : (red - _arg1.red); green = ((green)<_arg1.green) ? 0 : (green - _arg1.green); blue = ((blue)<_arg1.blue) ? 0 : (blue - _arg1.blue); } public function toString():String{ var _local1:String = red.toString(16).toUpperCase(); var _local2:String = green.toString(16).toUpperCase(); var _local3:String = blue.toString(16).toUpperCase(); _local1 = ((_local1.length)==1) ? ("0" + _local1) : _local1; _local2 = ((_local2.length)==1) ? ("0" + _local2) : _local2; _local3 = ((_local3.length)==1) ? ("0" + _local3) : _local3; return ((((("[RGB: " + _local1) + _local2) + _local3) + "]")); } public function copy(_arg1:RGB):void{ red = _arg1.red; green = _arg1.green; blue = _arg1.blue; } public function toInt():uint{ return ((((((red >>> 8)) ? 0xFF : red << 16) + (((green >>> 8)) ? 0xFF : green << 8)) + ((blue >>> 8)) ? 0xFF : blue)); } public function clone():RGB{ return (new RGB(red, green, blue)); } public function equals(_arg1:RGB):Boolean{ return ((((((red == _arg1.red)) && ((green == _arg1.green)))) && ((blue == _arg1.blue)))); } public static function interpolate(_arg1:RGB, _arg2:RGB, _arg3:Number):RGB{ return (new RGB((_arg1.red + ((_arg2.red - _arg1.red) * _arg3)), (_arg1.green + ((_arg2.green - _arg1.green) * _arg3)), (_arg1.blue + ((_arg2.blue - _arg1.blue) * _arg3)))); } public static function random(_arg1:uint=0, _arg2:uint=0xFF, _arg3:uint=0, _arg4:uint=0xFF, _arg5:uint=0, _arg6:uint=0xFF):RGB{ return (new RGB(MathUtility.random(_arg1, _arg2), MathUtility.random(_arg3, _arg4), MathUtility.random(_arg5, _arg6))); } public static function average(_arg1:RGB, _arg2:RGB):RGB{ return (new RGB(((_arg1.red + _arg2.red) >>> 1), ((_arg1.green + _arg2.green) >>> 1), ((_arg1.blue + _arg2.blue) >>> 1))); } } }//package com.alternativagame.type
Section 6
//MathUtility (com.alternativagame.utility.MathUtility) package com.alternativagame.utility { import flash.geom.*; public final class MathUtility { public static const degree60:Number = (Math.PI / 3); private static const toDeg:Number = (180 / Math.PI); public static const degree45:Number = (Math.PI / 4); private static const toRad:Number = (Math.PI / 180); public static const degree180:Number = Math.PI; public static const degree360:Number = (Math.PI + Math.PI); public static const degree90:Number = (Math.PI / 2); public static const degree1:Number = toRad; public static const degree30:Number = (Math.PI / 6); public static const degree10:Number = (Math.PI / 18); public static const degree5:Number = (Math.PI / 36); public static function random(_arg1:Number=0, _arg2:Number=0):Number{ if (arguments.length == 0){ return (Math.random()); }; if (arguments.length == 1){ return ((Math.random() * _arg1)); }; return (((Math.random() * (_arg2 - _arg1)) + _arg1)); } public static function segmentDistance(_arg1:Point, _arg2:Point, _arg3:Point):Number{ var _local4:Number = (_arg2.x - _arg1.x); var _local5:Number = (_arg2.y - _arg1.y); var _local6:Number = (_arg3.x - _arg1.x); var _local7:Number = (_arg3.y - _arg1.y); return ((((_local4 * _local7) - (_local5 * _local6)) / Math.sqrt(((_local4 * _local4) + (_local5 * _local5))))); } public static function randomAngle():Number{ return ((Math.random() * degree360)); } public static function vectorAngleFast(_arg1:Point, _arg2:Point):Number{ var _local3:Number = vectorDot(_arg1, _arg2); if (Math.abs(_local3) > 1){ _local3 = ((_local3)>0) ? 1 : -1; }; return (Math.acos(_local3)); } public static function vectorAngle(_arg1:Point, _arg2:Point):Number{ var _local3:Number = (_arg1.length * _arg2.length); var _local4:Number = ((_local3)!=0) ? (vectorDot(_arg1, _arg2) / _local3) : 1; return (Math.acos(_local4)); } public static function limitAngle(_arg1:Number):Number{ var _local2:Number = (_arg1 % degree360); _local2 = ((_local2)>0) ? ((_local2)>degree180) ? (_local2 - degree360) : _local2 : ((_local2)<-(degree180)) ? (_local2 + degree360) : _local2; return (_local2); } public static function vectorDot(_arg1:Point, _arg2:Point):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function toDegree(_arg1:Number):Number{ return ((_arg1 * toDeg)); } public static function deltaAngle(_arg1:Number, _arg2:Number):Number{ var _local3:Number = (_arg2 - _arg1); if (_local3 > degree180){ return ((_local3 - degree360)); }; if (_local3 < -(degree180)){ return ((_local3 + degree360)); }; return (_local3); } public static function toRadian(_arg1:Number):Number{ return ((_arg1 * toRad)); } public static function vectorCross(_arg1:Point, _arg2:Point):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function triangleHasPoint(_arg1:Point, _arg2:Point, _arg3:Point, _arg4:Point):Boolean{ if (vectorCross(_arg3.subtract(_arg1), _arg4.subtract(_arg1)) <= 0){ if (vectorCross(_arg2.subtract(_arg3), _arg4.subtract(_arg3)) <= 0){ if (vectorCross(_arg1.subtract(_arg2), _arg4.subtract(_arg2)) <= 0){ return (true); }; return (false); } else { return (false); }; //unresolved jump }; return (false); } public static function equals(_arg1:Number, _arg2:Number, _arg3:Number=0):Boolean{ return ((Math.abs((_arg2 - _arg1)) <= _arg3)); } } }//package com.alternativagame.utility
Section 7
//MouseUtility (com.alternativagame.utility.MouseUtility) package com.alternativagame.utility { import flash.geom.*; import flash.display.*; public class MouseUtility { private static var _stage:Stage = null; public static function init(_arg1:Stage):void{ _stage = _arg1; } public static function localCoords(_arg1:DisplayObject):Point{ return (_arg1.globalToLocal(globalCoords())); } public static function globalCoords(_arg1:Boolean=true):Point{ var _local3:int; var _local4:int; var _local2:Point; if (_stage != null){ _local3 = _stage.mouseX; _local4 = _stage.mouseY; if (_arg1){ _local3 = ((_local3)<0) ? 0 : ((_local3)>_stage.stageWidth) ? _stage.stageWidth : _local3; _local4 = ((_local4)<0) ? 0 : ((_local4)>_stage.stageHeight) ? _stage.stageHeight : _local4; }; _local2 = new Point(_local3, _local4); } else { throw (new Error("MouseUtility don't have link to stage. Use MouseUtility.init(stage) before.")); }; return (_local2); } } }//package com.alternativagame.utility
Section 8
//BitmapAsset (mx.core.BitmapAsset) package mx.core { import flash.display.*; public class BitmapAsset extends FlexBitmap implements IFlexAsset, IFlexDisplayObject { mx_internal static const VERSION:String = "3.0.0.0"; public function BitmapAsset(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } public function get measuredWidth():Number{ if (bitmapData){ return (bitmapData.width); }; return (0); } public function get measuredHeight():Number{ if (bitmapData){ return (bitmapData.height); }; return (0); } public function setActualSize(_arg1:Number, _arg2:Number):void{ width = _arg1; height = _arg2; } public function move(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } } }//package mx.core
Section 9
//FlexBitmap (mx.core.FlexBitmap) package mx.core { import flash.display.*; import mx.utils.*; public class FlexBitmap extends Bitmap { mx_internal static const VERSION:String = "3.0.0.0"; public function FlexBitmap(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){ var bitmapData = _arg1; var pixelSnapping = _arg2; var smoothing = _arg3; super(bitmapData, pixelSnapping, smoothing); try { name = NameUtil.createUniqueName(this); } catch(e:Error) { }; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 10
//IFlexAsset (mx.core.IFlexAsset) package mx.core { public interface IFlexAsset { } }//package mx.core
Section 11
//IFlexDisplayObject (mx.core.IFlexDisplayObject) package mx.core { import flash.events.*; import flash.geom.*; import flash.display.*; import flash.accessibility.*; public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher { function get visible():Boolean; function get rotation():Number; function localToGlobal(_arg1:Point):Point; function get name():String; function set width(_arg1:Number):void; function get measuredHeight():Number; function get blendMode():String; function get scale9Grid():Rectangle; function set name(_arg1:String):void; function set scaleX(_arg1:Number):void; function set scaleY(_arg1:Number):void; function get measuredWidth():Number; function get accessibilityProperties():AccessibilityProperties; function set scrollRect(_arg1:Rectangle):void; function get cacheAsBitmap():Boolean; function globalToLocal(_arg1:Point):Point; function get height():Number; function set blendMode(_arg1:String):void; function get parent():DisplayObjectContainer; function getBounds(_arg1:DisplayObject):Rectangle; function get opaqueBackground():Object; function set scale9Grid(_arg1:Rectangle):void; function setActualSize(_arg1:Number, _arg2:Number):void; function set alpha(_arg1:Number):void; function set accessibilityProperties(_arg1:AccessibilityProperties):void; function get width():Number; function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean; function set cacheAsBitmap(_arg1:Boolean):void; function get scaleX():Number; function get scaleY():Number; function get scrollRect():Rectangle; function get mouseX():Number; function get mouseY():Number; function set height(_arg1:Number):void; function set mask(_arg1:DisplayObject):void; function getRect(_arg1:DisplayObject):Rectangle; function get alpha():Number; function set transform(_arg1:Transform):void; function move(_arg1:Number, _arg2:Number):void; function get loaderInfo():LoaderInfo; function get root():DisplayObject; function hitTestObject(_arg1:DisplayObject):Boolean; function set opaqueBackground(_arg1:Object):void; function set visible(_arg1:Boolean):void; function get mask():DisplayObject; function set x(_arg1:Number):void; function set y(_arg1:Number):void; function get transform():Transform; function set filters(_arg1:Array):void; function get x():Number; function get y():Number; function get filters():Array; function set rotation(_arg1:Number):void; function get stage():Stage; } }//package mx.core
Section 12
//IRepeaterClient (mx.core.IRepeaterClient) package mx.core { public interface IRepeaterClient { function get instanceIndices():Array; function set instanceIndices(_arg1:Array):void; function get isDocument():Boolean; function set repeaters(_arg1:Array):void; function initializeRepeaterArrays(_arg1:IRepeaterClient):void; function get repeaters():Array; function set repeaterIndices(_arg1:Array):void; function get repeaterIndices():Array; } }//package mx.core
Section 13
//mx_internal (mx.core.mx_internal) package mx.core { public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal"; }//package mx.core
Section 14
//NameUtil (mx.utils.NameUtil) package mx.utils { import flash.display.*; import mx.core.*; import flash.utils.*; public class NameUtil { mx_internal static const VERSION:String = "3.0.0.0"; private static var counter:int = 0; public static function displayObjectToString(_arg1:DisplayObject):String{ var _local2:String; var _local4:String; var _local5:Array; var _local3:DisplayObject = _arg1; while (_local3 != null) { if (((((_local3.parent) && (_local3.stage))) && ((_local3.parent == _local3.stage)))){ break; }; _local4 = _local3.name; if ((_local3 is IRepeaterClient)){ _local5 = IRepeaterClient(_local3).instanceIndices; if (_local5){ _local4 = (_local4 + (("[" + _local5.join("][")) + "]")); }; }; _local2 = ((_local2 == null)) ? _local4 : ((_local4 + ".") + _local2); _local3 = _local3.parent; }; return (_local2); } public static function createUniqueName(_arg1:Object):String{ if (!_arg1){ return (null); }; var _local2:String = getQualifiedClassName(_arg1); var _local3:int = _local2.indexOf("::"); if (_local3 != -1){ _local2 = _local2.substr((_local3 + 2)); }; var _local4:int = _local2.charCodeAt((_local2.length - 1)); if ((((_local4 >= 48)) && ((_local4 <= 57)))){ _local2 = (_local2 + "_"); }; return ((_local2 + counter++)); } } }//package mx.utils
Section 15
//Test3D (Test3D) package { import flash.events.*; import com.alternativagame.type.*; import flash.geom.*; import flash.display.*; import flash.filters.*; import com.alternativagame.test.*; import com.alternativagame.admin.*; import com.alternativagame.utility.*; import flash.ui.*; public class Test3D extends Sprite { private var container:Sprite; private var contrast:Number;// = 1 private var index:uint;// = 1 private var light:BitmapData; private var result:BitmapData; private var diffuse:BitmapData; private var color:RGB; private var normal:BitmapData; private var lightFilter:ColorMatrixFilter; private var parallaxFilter:DisplacementMapFilter; private var bump:BitmapData; private var lightMatrix:Array; private var needDraw:Boolean;// = false private var resultBitmap:Bitmap; private var direction:Point3D; private static const bump1:BitmapData = new bmpBump1().bitmapData; private static const bump2:BitmapData = new bmpBump2().bitmapData; private static const bump3:BitmapData = new bmpBump3().bitmapData; private static const bump4:BitmapData = new bmpBump4().bitmapData; private static const diffuse1:BitmapData = new bmpDiffuse1().bitmapData; private static const diffuse3:BitmapData = new bmpDiffuse3().bitmapData; private static const diffuse4:BitmapData = new bmpDiffuse4().bitmapData; private static const diffuse2:BitmapData = new bmpDiffuse2().bitmapData; private static const bmpNormal1:Class = Test3D_bmpNormal1; private static const bmpNormal2:Class = Test3D_bmpNormal2; private static const bmpNormal3:Class = Test3D_bmpNormal3; private static const normal2:BitmapData = new bmpNormal2().bitmapData; private static const normal4:BitmapData = new bmpNormal4().bitmapData; private static const bmpNormal4:Class = Test3D_bmpNormal4; private static const normal1:BitmapData = new bmpNormal1().bitmapData; private static const bmpDiffuse1:Class = Test3D_bmpDiffuse1; private static const bmpDiffuse3:Class = Test3D_bmpDiffuse3; private static const bmpDiffuse4:Class = Test3D_bmpDiffuse4; private static const bmpBump3:Class = Test3D_bmpBump3; private static const bmpBump4:Class = Test3D_bmpBump4; private static const normal3:BitmapData = new bmpNormal3().bitmapData; private static const bmpDiffuse2:Class = Test3D_bmpDiffuse2; private static const bmpBump1:Class = Test3D_bmpBump1; private static const bmpBump2:Class = Test3D_bmpBump2; public function Test3D(){ direction = new Point3D(); color = new RGB(0x7F7F7F); parallaxFilter = new DisplacementMapFilter(null, new Point(), BitmapDataChannel.BLUE, BitmapDataChannel.BLUE); lightFilter = new ColorMatrixFilter(); lightMatrix = new Array(); super(); stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.quality = StageQuality.LOW; stage.frameRate = 100; MouseUtility.init(stage); container = new Sprite(); addChild(container); FPS.init(this); var _local1:TestInfo = new TestInfo(); _local1.write("Mouse move — move"); _local1.write("Mouse click — change light color"); _local1.write("Mouse wheel or +/- — change specularity"); _local1.write("Space — change texture"); addChild(_local1); resultBitmap = new Bitmap(); container.addChild(resultBitmap); setTexture(); onResize(null); stage.addEventListener(Event.ENTER_FRAME, onEnterFrame); stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); stage.addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel); stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); stage.addEventListener(Event.RESIZE, onResize); } private function onEnterFrame(_arg1:Event):void{ if (needDraw){ calculate(); needDraw = false; }; } private function onMouseDown(_arg1:MouseEvent):void{ color = RGB.random(); calculate(); } private function onMouseMove(_arg1:MouseEvent):void{ var _local2:Point = MouseUtility.localCoords(container); direction.x = _local2.x; direction.y = _local2.y; direction.z = 200; direction.normalize(); needDraw = true; } private function onKeyDown(_arg1:KeyboardEvent):void{ switch (_arg1.keyCode){ case Keyboard.SPACE: index = ((index)<4) ? (index + 1) : 1; setTexture(); break; case 107: case 187: changeContrast(0.2); break; case 109: case 189: changeContrast(-0.2); break; }; } private function setTexture():void{ switch (index){ case 1: diffuse = diffuse1; normal = normal1; bump = bump1; break; case 2: diffuse = diffuse2; normal = normal2; bump = bump2; break; case 3: diffuse = diffuse3; normal = normal3; bump = bump3; break; case 4: diffuse = diffuse4; normal = normal4; bump = bump4; break; }; result = new BitmapData(diffuse.width, diffuse.height, false, 0); resultBitmap.bitmapData = result; resultBitmap.x = (-(diffuse.width) / 2); resultBitmap.y = (-(diffuse.height) / 2); light = new BitmapData(diffuse.width, diffuse.height, false, 0); parallaxFilter.mapBitmap = bump; calculate(); } private function onResize(_arg1:Event):void{ container.x = (stage.stageWidth / 2); container.y = (stage.stageHeight / 2); } private function changeContrast(_arg1:Number):void{ contrast = (contrast * (1 + _arg1)); contrast = ((contrast)<0.1) ? 0.1 : ((contrast)>10) ? 10 : contrast; calculate(); } private function calculate():void{ var _local1:Number = (contrast / 128); var _local2:Number = (color.red * _local1); var _local3:Number = (color.green * _local1); var _local4:Number = (color.blue * _local1); var _local5:Number = (1 - (contrast * (((0.75 + direction.x) + direction.y) + direction.z))); lightMatrix[0] = (_local2 * direction.x); lightMatrix[1] = (_local2 * direction.y); lightMatrix[2] = (_local2 * direction.z); lightMatrix[3] = 0; lightMatrix[4] = (color.red * _local5); lightMatrix[5] = (_local3 * direction.x); lightMatrix[6] = (_local3 * direction.y); lightMatrix[7] = (_local3 * direction.z); lightMatrix[8] = 0; lightMatrix[9] = (color.green * _local5); lightMatrix[10] = (_local4 * direction.x); lightMatrix[11] = (_local4 * direction.y); lightMatrix[12] = (_local4 * direction.z); lightMatrix[13] = 0; lightMatrix[14] = (color.blue * _local5); lightMatrix[15] = 0; lightMatrix[16] = 0; lightMatrix[17] = 0; lightMatrix[18] = 0; lightMatrix[19] = 0; lightFilter.matrix = lightMatrix; light.applyFilter(normal, normal.rect, new Point(), lightFilter); result.copyPixels(diffuse, diffuse.rect, new Point()); result.draw(light, null, null, BlendMode.HARDLIGHT); parallaxFilter.scaleX = ((direction.x * (1 / direction.z)) * 15); parallaxFilter.scaleY = ((direction.y * (1 / direction.z)) * 15); result.applyFilter(result, result.rect, new Point(), parallaxFilter); } private function onMouseWheel(_arg1:MouseEvent):void{ changeContrast((_arg1.delta / 10)); } } }//package
Section 16
//Test3D_bmpBump1 (Test3D_bmpBump1) package { import mx.core.*; public class Test3D_bmpBump1 extends BitmapAsset { } }//package
Section 17
//Test3D_bmpBump2 (Test3D_bmpBump2) package { import mx.core.*; public class Test3D_bmpBump2 extends BitmapAsset { } }//package
Section 18
//Test3D_bmpBump3 (Test3D_bmpBump3) package { import mx.core.*; public class Test3D_bmpBump3 extends BitmapAsset { } }//package
Section 19
//Test3D_bmpBump4 (Test3D_bmpBump4) package { import mx.core.*; public class Test3D_bmpBump4 extends BitmapAsset { } }//package
Section 20
//Test3D_bmpDiffuse1 (Test3D_bmpDiffuse1) package { import mx.core.*; public class Test3D_bmpDiffuse1 extends BitmapAsset { } }//package
Section 21
//Test3D_bmpDiffuse2 (Test3D_bmpDiffuse2) package { import mx.core.*; public class Test3D_bmpDiffuse2 extends BitmapAsset { } }//package
Section 22
//Test3D_bmpDiffuse3 (Test3D_bmpDiffuse3) package { import mx.core.*; public class Test3D_bmpDiffuse3 extends BitmapAsset { } }//package
Section 23
//Test3D_bmpDiffuse4 (Test3D_bmpDiffuse4) package { import mx.core.*; public class Test3D_bmpDiffuse4 extends BitmapAsset { } }//package
Section 24
//Test3D_bmpNormal1 (Test3D_bmpNormal1) package { import mx.core.*; public class Test3D_bmpNormal1 extends BitmapAsset { } }//package
Section 25
//Test3D_bmpNormal2 (Test3D_bmpNormal2) package { import mx.core.*; public class Test3D_bmpNormal2 extends BitmapAsset { } }//package
Section 26
//Test3D_bmpNormal3 (Test3D_bmpNormal3) package { import mx.core.*; public class Test3D_bmpNormal3 extends BitmapAsset { } }//package
Section 27
//Test3D_bmpNormal4 (Test3D_bmpNormal4) package { import mx.core.*; public class Test3D_bmpNormal4 extends BitmapAsset { } }//package

Library Items

Symbol 1 Bitmap {Test3D_bmpNormal4}
Symbol 2 Bitmap {Test3D_bmpNormal1}
Symbol 3 Bitmap {Test3D_bmpNormal3}
Symbol 4 Bitmap {Test3D_bmpNormal2}
Symbol 5 Bitmap {Test3D_bmpDiffuse4}
Symbol 6 Bitmap {Test3D_bmpBump4}
Symbol 7 Bitmap {Test3D_bmpBump3}
Symbol 8 Bitmap {Test3D_bmpDiffuse3}
Symbol 9 Bitmap {Test3D_bmpDiffuse2}
Symbol 10 Bitmap {Test3D_bmpDiffuse1}
Symbol 11 Bitmap {Test3D_bmpBump2}
Symbol 12 Bitmap {Test3D_bmpBump1}

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1457 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..."
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds
SerialNumber (41)Timeline Frame 1

Labels

"Test3D"Frame 1




http://swfchan.com/4/16338/info.shtml
Created: 1/6 -2019 22:40:54 Last modified: 1/6 -2019 22:40:54 Server time: 06/05 -2024 13:29:59