📄 stats.as
字号:
titleField.x = 22; titleField.y = 4; displayMenu.addChild(titleField); // fps var fpst:TextField = new TextField(); fpst.defaultTextFormat = new TextFormat("Verdana", 10, 0x000000, true); fpst.text = "FPS:"; fpsLabel = new TextField(); fpsLabel.defaultTextFormat = defautTF; displayMenu.addChild(fpst); displayMenu.addChild(fpsLabel); fpst.x = 3; fpst.y = fpsLabel.y = 30; fpst.autoSize = "left"; fpsLabel.x = fpst.x+fpst.width-2; //average perf var afpst:TextField = new TextField(); afpst.defaultTextFormat = new TextFormat("Verdana", 10, 0x000000, true); afpst.text = "AFPS:"; avfpsLabel = new TextField(); avfpsLabel.defaultTextFormat = defautTF; displayMenu.addChild(afpst); displayMenu.addChild(avfpsLabel); afpst.x = 52; afpst.y = avfpsLabel.y = fpsLabel.y; afpst.autoSize = "left"; avfpsLabel.x = afpst.x+afpst.width-2; //Max peak var peakfps:TextField = new TextField(); peakfps.defaultTextFormat = new TextFormat("Verdana", 10, 0x000000, true); peakfps.text = "Max:"; peakLabel = new TextField(); peakLabel.defaultTextFormat = defautTF; displayMenu.addChild(peakfps); displayMenu.addChild(peakLabel); peakfps.x = 107; peakfps.y = peakLabel.y = avfpsLabel.y; peakfps.autoSize = "left"; peakLabel.x = peakfps.x+peakfps.width-2; //MS var pfps:TextField = new TextField(); pfps.defaultTextFormat = new TextFormat("Verdana", 10, 0x000000, true); pfps.text = "MS:"; perfLabel = new TextField(); perfLabel.defaultTextFormat = defautTF; displayMenu.addChild(pfps); displayMenu.addChild(perfLabel); pfps.x = 177; pfps.y = perfLabel.y = fpsLabel.y; pfps.autoSize = "left"; perfLabel.x = pfps.x+pfps.width-2; //ram usage var ram:TextField = new TextField(); ram.defaultTextFormat = new TextFormat("Verdana", 10, 0x000000, true); ram.text = "RAM:"; ramLabel = new TextField(); ramLabel.defaultTextFormat = defautTF; displayMenu.addChild(ram); displayMenu.addChild(ramLabel); ram.x = 3; ram.y = ramLabel.y = 46; ram.autoSize = "left"; ramLabel.x = ram.x+ram.width-2; //meshes count var meshc:TextField = new TextField(); meshc.defaultTextFormat = new TextFormat("Verdana", 10, 0x000000, true); meshc.text = "MESHES:"; meshLabel = new TextField(); meshLabel.defaultTextFormat = defautTF; displayMenu.addChild(meshc); displayMenu.addChild(meshLabel); meshc.x = 90; meshc.y = meshLabel.y = ramLabel.y; meshc.autoSize = "left"; meshLabel.x = meshc.x+meshc.width-2; //swf framerate var rate:TextField = new TextField(); rate.defaultTextFormat = new TextFormat("Verdana", 10, 0x000000, true); rate.text = "SWF FR:"; swfframerateLabel = new TextField(); swfframerateLabel.defaultTextFormat = defautTF; displayMenu.addChild(rate); displayMenu.addChild(swfframerateLabel); rate.x = 170; rate.y = swfframerateLabel.y = ramLabel.y; rate.autoSize = "left"; swfframerateLabel.x = rate.x+rate.width-2; //faces var faces:TextField = new TextField(); faces.defaultTextFormat = new TextFormat("Verdana", 10, 0x000000, true); faces.text = "T FACES:"; faceLabel = new TextField(); faceLabel.defaultTextFormat = defautTF; displayMenu.addChild(faces); displayMenu.addChild(faceLabel); faces.x = 3; faces.y = faceLabel.y = 62; faces.autoSize = "left"; faceLabel.x = faces.x+faces.width-2; //shown faces var facesrender:TextField = new TextField(); facesrender.defaultTextFormat = new TextFormat("Verdana", 10, 0x000000, true); facesrender.text = "R FACES:"; faceRenderLabel = new TextField(); faceRenderLabel.defaultTextFormat = defautTF; displayMenu.addChild(facesrender); displayMenu.addChild(faceRenderLabel); facesrender.x = 105; facesrender.y = faceRenderLabel.y = faceLabel.y; facesrender.autoSize = "left"; faceRenderLabel.x = facesrender.x+facesrender.width-2; } public function updateStats(renderedfaces:int, camera:Camera3D):void { var now:int = getTimer(); var perf:int = now - lastrender; lastrender = now; if (perf < 1000) { var fps:int = int(1000 / (perf+0.001)); fpstotal += fps; refreshes ++; var average:int = fpstotal/refreshes; bestfps = (fps>bestfps)? fps : bestfps; lowestfps = (fps<lowestfps)? fps : lowestfps; var w:int = barscale*fps; bar.width = (w<=barwidth)? w : barwidth; } //color var procent:int = (bar.width/barwidth)*100; var colorTransform:ColorTransform = bar.transform.colorTransform; colorTransform.color = 255-(2.55*procent) << 16 | 2.55*procent << 8 | 40; bar.transform.colorTransform = colorTransform; if(displayState == 0){ avfpsLabel.text = ""+average; ramLabel.text = ""+int(System.totalMemory/1024/102.4)/10+"MB"; peakLabel.text = lowestfps+"/"+bestfps; fpsLabel.text = "" + fps; perfLabel.text = "" + perf; faceLabel.text = ""+totalFaces; faceRenderLabel.text = ""+renderedfaces; meshLabel.text = ""+meshes; swfframerateLabel.text = ""+stageframerate; } else if(displayState == 1){ var caminfo:String = ""; for(var i:int = 0;i<camProp.length;i++){ try{ if(i>12){ caminfo += String(camera[camProp[i]])+"\n"; } else { var info:String = String(camera[camProp[i]]); caminfo += info.substring(0, 19)+"\n"; } } catch(e:Error){ caminfo += "\n"; } } camLabel.text = caminfo; } else if(displayState == 2){ geomDetailsLabel.text = stats; geomDetailsLabel.scrollV = geomDetailsLabel.maxScrollV; } } //clear peaks private function clearStats():void { fpstotal = 0; refreshes = 0; bestfps = 0; lowestfps = 999; } //geometrie info private function showGeomInfo():void { if(geomMenu == null){ createGeometryMenu(); } else{ displayMenu.addChild(geomMenu); geomMenu.y = 26; } } private function hideGeomInfo():void { if(geomMenu != null){ displayMenu.removeChild(geomMenu); } } private function createGeometryMenu():void{ geomMenu = new Sprite(); var myMatrix:Matrix = new Matrix(); myMatrix.rotate(90 * Math.PI/180); geomMenu.graphics.beginGradientFill("linear", [0x333366, 0xCCCCCC], [1,1], [0,255], myMatrix, "pad", "rgb", 0); geomMenu.graphics.drawRect(0, 0, 250, 200); displayMenu.addChild(geomMenu); geomMenu.y = 26; geomDetailsLabel = new TextField(); geomDetailsLabel.x = 3; geomDetailsLabel.y = 3; geomDetailsLabel.defaultTextFormat = defautTF; geomDetailsLabel.text = stats; geomDetailsLabel.height = 200; geomDetailsLabel.width = 235; geomDetailsLabel.multiline = true; geomDetailsLabel.selectable = true; geomDetailsLabel.wordWrap = true; geomMenu.addChild(geomDetailsLabel); } //cam info private function showCamInfo():void { if(camMenu == null){ createCamMenu(); } else{ displayMenu.addChild(camMenu); camMenu.y = 26; } } private function hideCamInfo():void { if(camMenu != null){ displayMenu.removeChild(camMenu); } } // cam info menu private function createCamMenu():void { camMenu = new Sprite(); var myMatrix:Matrix = new Matrix(); myMatrix.rotate(90 * Math.PI/180); camMenu.graphics.beginGradientFill("linear", [0x333366, 0xCCCCCC], [1,1], [0,255], myMatrix, "pad", "rgb", 0); camMenu.graphics.drawRect(0, 0, 250, 220); displayMenu.addChild(camMenu); camMenu.y = 26; camLabel = new TextField(); camLabel.height = 210; camLabel.width = 170; camLabel.x = 100; camLabel.multiline = true; var tf:TextFormat = defautTF; tf.leading = 1.5; camLabel.defaultTextFormat = tf; camLabel.wordWrap = true; camMenu.addChild(camLabel); camLabel.x = 100; camLabel.y = 3; camProp = ["x","y","z","zoom","focus","distance","panangle","tiltangle","targetpanangle","targettiltangle","mintiltangle","maxtiltangle","steps","target"]; //props var campropfield:TextField = new TextField(); tf = new TextFormat("Verdana", 10, 0x000000, true); tf.leading = 1.5; tf.align = "right"; campropfield.defaultTextFormat = tf; campropfield.x = campropfield.y = 3; campropfield.multiline = true; campropfield.selectable = false; campropfield.autoSize = "left"; campropfield.height = 210; for(var i:int = 0;i<camProp.length;i++){ campropfield.appendText(camProp[i]+":\n"); } camMenu.addChild(campropfield); } private function displayPicto():void { var logo:Sprite = new Sprite(); var graphic:Graphics = logo.graphics; //graphic.beginFill(0x666666); graphic.beginFill(0x000000); graphic.drawRect(0, 0, 18, 17); var arr:Array = image; for(var i:int = 0;i<arr.length;i++){ graphic.beginFill(Number(arr[i][2])); graphic.drawRect(arr[i][0], arr[i][1], 1, 1); } graphic.endFill(); displayMenu.addChild(logo); logo.x = logo.y = 4; } private function get image():Array { return [[7,1,262151],[8,1,3215136],[9,1,2033436],[10,1,1],[7,2,2098723],[8,2,5908501],[9,2,4922400],[10,2,720913],[6,3,327691],[7,3,6957102],[8,3,5975556],[9,3,6368779],[10,3,4789809],[11,3,2],[6,4,2361127],[7,4,10833686],[8,4,4926728],[9,4,6239495],[10,4,9190690],[11,4,1114647],[5,5,786453],[6,5,7088423],[7,5,14055707],[8,5,2103310],[9,5,3877139],[10,5,13134098],[11,5,5577773],[12,5,131077],[4,6,1],[5,6,3608110],[6,6,11227664],[7,6,12748351],[8,6,65793],[9,6,986379],[10,6,14980667],[11,6,10044437],[12,6,2230306],[4,7,1179676],[5,7,8007967],[6,7,14911011],[7,7,6509633],[10,7,9138771],[11,7,13989655],[12,7,7350824],[13,7,327689],[3,8,262153],[4,8,4592689],[5,8,12016138],[6,8,15774570],[7,8,855309],[10,8,2434083],[11,8,16233056],[12,8,11489803],[13,8,3345958],[3,9,1966887],[4,9,8665113],[5,9,15636021],[6,9,6773581],[11,9,9140836],[12,9,15240489],[13,9,8467743],[14,9,852240],[2,10,458767],[3,10,5774639],[4,10,13265683],[5,10,10845518],[6,10,257],[11,10,657931],[12,10,14396016],[13,10,12739344],[14,10,5184297],[15,10,2],[2,11,2557230],[3,11,10307863],[4,11,12548133],[5,11,723464],[12,11,1512721],[13,11,14651446],[14,11,10307352],[15,11,1508630],[1,12,983068],[2,12,7154221],[3,12,9522185],[4,12,1314568],[6,12,131586],[7,12,921102],[8,12,1710618],[9,12,1513239],[10,12,657930],[13,12,2892051],[14,12,12610067],[15,12,7220009],[16,12,196614],[1,13,3936052],[2,13,5908749],[3,13,1773570],[4,13,4402968],[5,13,10714191],[6,13,12884326],[7,13,14396274],[8,13,15053429],[9,13,14790257],[10,13,13935206],[11,13,12159571],[12,13,9265971],[13,13,2759432],[14,13,2561537],[15,13,8601360],[16,13,3346464],[1,14,3938326],[2,14,5712395],[3,14,10900499],[4,14,11951126],[5,14,11490833],[6,14,11358991],[7,14,11227662],[8,14,11161870],[9,14,11030286],[10,14,10964497],[11,14,10898963],[12,14,10833429],[13,14,11096344],[14,14,8797973],[15,14,4595726],[16,14,4594459],[17,14,327941],[1,15,2296596],[2,15,3280925],[3,15,2821148],[4,15,2624284],[5,15,2558749],[6,15,2624031],[7,15,2558496],[8,15,2558498],[9,15,2492705],[10,15,2361630],[11,15,2361374],[12,15,2295839],[13,15,2295840],[14,15,2427171],[15,15,2624036],[16,15,1377300]]; } internal var type:String; internal var facecount:int; internal var url:String; public var stats:String = ""; public function clearObjects():void { stats = ""; totalFaces = 0; meshes = 0; geomLastAdded = ""; } // registration faces and types public function addObject(node:BaseMesh):void { type = node.type; if (node is Mesh) facecount = (node as Mesh).faces.length; else facecount = 0; url = node.url; if (type != null && facecount != 0) { stats += " - " + type + " , faces: " + facecount + ", url: " + url + "\n"; geomLastAdded = " - " + type + " , faces: " + facecount + ", url: " + url + "\n"; totalFaces += facecount; meshes += 1; } else { stats += " - " + type + " , url: " + url + "\n"; geomLastAdded = " - " + type + " , url: " + url + "\n"; } } //TODO: generateClipBoardInfo not implemented yet /* private function generateClipBoardInfo():void{ var strReport:String = "-- AWAY3D STATS REPORT --\n\n"; strReport+= "GEOMETRY:\n"; strReport+= stats ; strReport+= "\nCAMERA:\n"; var camera:Camera3D = scopeMenu.camera; //System.setClipboard(strReport); } */ }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -