⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 panel3.as

📁 flash编程实例
💻 AS
字号:
class Scene.Manage.Panels.Group1.Panel3 extends MovieClip{
	var List:MovieClip;//0
	var TabBase:MovieClip;//1
	var head_tab:MovieClip;//2
	var SubBase:MovieClip;//3
	var Tab:MovieClip;//4
	var DataGrid:MovieClip;//5
	var Button1:MovieClip;//6
	var DTree:MovieClip;//7
	var UserInfo:MovieClip;//8
	var infoMask:MovieClip;//9
	var ClientTypeController:MovieClip;//10
	var ArgumentsText:MovieClip;//11
	var Button2:MovieClip;//12
	//Interval for updating info in view
	var intervalID:Number;
	//
	var PageAssets:Array;
	var onResult:Function;
	var userRef:Object;
	//
	var __w:Number;
	var __h:Number;
	//Unknown and i cudent be botherd finding out - Im not a lazy developer lol im just tired right now
	var baseNode;
	var unBaseNode;
	var SelectedUser;
	//Used for removing nodes when a user vanashes
	var CRefID:Object;
	var ClientType:Number = 0;
	//
	function Panel3(){
		//Instanciate objects
		CRefID = new Object();
		//Attach UI
		attachMovie("List", "List", 0);
		attachMovie("tab_base", "TabBase", 1);
		attachMovie("TabBar", "head_tab", 2);
		//
		attachMovie("DataGrid", "DataGrid", 5);
		attachMovie("Button", "Button1", 6);
		attachMovie("DumpableTree", "DTree", 7);
		attachMovie("UPanel_CI", "UserInfo", 8);
		//
		createEmptyMovieClip("infoMask", 9);
		attachMovie("Panel3_UCB", "ClientTypeController", 10);
		attachMovie("TextInput", "ArgumentsText", 11);
		attachMovie("Button", "Button2", 12);
		//All of that little sub tab thing
		//
		//Work UI
		ClientTypeController._x = 15;
		ClientTypeController._y = 16;
		//
		List._x = 15;
		List._y = 35;
		//
		TabBase._y = 45;
		//
		head_tab._y = 15;
		//
		head_tab.addItem("Info");
		head_tab.addItem("Streams");
		head_tab.addItem("Methods");
		head_tab.addItem("Members");
		head_tab.addItem("Storage");
		head_tab.selectedIndex = 0;
		//
		List.addEventListener("change", this);
		//
		PageAssets = new Array();
		PageAssets[0] = [UserInfo];
		PageAssets[1] = [DataGrid];
		PageAssets[2] = [DataGrid, Button1, ArgumentsText, Button2];
		PageAssets[3] = [DTree, Button1];
		PageAssets[4] = [DTree, Button1];
		//
		var p:MovieClip = this;
		var e:Object = new Object();
		e.change = function(){
			p.setPage(p.head_tab.selectedIndex);
		}
		head_tab.addEventListener("change", e);
		//
		e.click = function(evt){
			p["update_p_"+p.head_tab.selectedIndex]();
		}
		//
		ArgumentsText.text = "Arguments";
		ArgumentsText.addEventListener("focusIn", this);
		ArgumentsText.addEventListener("focusOut", this);
		//
		Button1.addEventListener("click", e);
		//
		Button2.label = "Call";
		Button2.setSize(40, 22);
		//
		Button2.addEventListener("click", this);
		//
		DataGrid.resizableColumns = false;
		//
		setClientMode(0);
		//
		userRef = new Object();
		//
		setPage(0);
	}
	function click(){
		//Do a call
		if(DataGrid.selectedItem.Method && SelectedUser){
			var args = _global.ArgumentsParsor.GetArgumentes(ArgumentsText.text);
			_global.Connection.AppNet.call("clientCall", null, SelectedUser, DataGrid.selectedItem.Method, args);
		}
	}
	function focusIn(){
		if(ArgumentsText.text == "Arguments"){
			ArgumentsText.text = "";
		}
	}
	function focusOut(){
		if(ArgumentsText.text == ""){
			ArgumentsText.text = "Arguments";
		}
	}
	function change(){
		if(ClientType == 0){
			if(List.selectedItem){
				setUser(List.selectedItem.label);
			}
		}else{
			if(List.selectedItem){
				setUser(List.selectedItem.id);
			}
		}
	}
	//Skeliton
	function activate(){
		//getUsers();
		intervalID = setInterval(doUpdate, 900, this);
		setPage(0);
	}
	function deactivate(){
		clearInterval(intervalID);
	}
	//Sub Tab Population methods
	function setUser(userID){
		SelectedUser = userID;
		UserInfo.unvar = "User "+userID;
		if(head_tab.selectedIndex == 4){
			populateStorage(SelectedUser);
		}else if(head_tab.selectedIndex == 3){
			populateData(SelectedUser);
		}
		this["start_"+head_tab.selectedIndex]();
	}
	function doUpdate(p:MovieClip){
		if(p.ClientType == 0){
			p.getUsers();
		}else{
			p.getUserNames();
		}
		p["update_"+p.head_tab.selectedIndex]();
	}
	function setPage(i:Number){
		head_tab.selectedIndex = i;
		for(var k=0;k<PageAssets.length;k++){
			if(k != i){
				for(var l=0;l<PageAssets[k].length;l++){
					PageAssets[k][l]._visible = false;
				}
			}
		}
		for(var j=0;j<PageAssets[i].length;j++){
			var m = PageAssets[i][j];
			m._visible = true;
		}
		this["start_"+i](__w, __h);
		this["resize_"+i](__w, __h);
	}
	//Called by the tab to set the mode of clients to show
	function setClientMode(t:Number){
		List.removeAll();
		CRefID = new Object();
		ClientType = t;
		if(t == 0){
			getUsers();
			ClientTypeController.b1.gotoAndStop(1);
			ClientTypeController.b2.gotoAndStop(2);
		}else{
			getUserNames();
			ClientTypeController.b1.gotoAndStop(2);
			ClientTypeController.b2.gotoAndStop(1);
		}
	}
	//UI
	function setSize(w:Number, h:Number){
		var p = Math.round(w/100);
		List.setSize(p*30, h-50);
		TabBase._x = List._width+25;
		TabBase.setSize(w-(List._width+40), h-60);
		head_tab._x = TabBase._x;
		head_tab.setSize(TabBase._width, 30);
		//
		var ph = Math.round(h/100);
		//
		var ExploreX:Number = TabBase._x + 15;
		var ExploreY:Number = (TabBase._y+TabBase._height)-(ph*80)-15;
		var ExploreW:Number = TabBase._width - 30;
		var ExploreH:Number = ph*80;
		//
		SubBase._x = ExploreX;
		//
		SubBase.setSize(ExploreW, ExploreH);
		SubBase._y = ExploreY;
		//
		Tab._x = ExploreX;
		Tab._y = ExploreY - 30;
		Tab.setSize(ExploreW, 30);
		//These assets have the exact same position and size coz they
		//are the two different contents for the various tabs
		
		//
		__w = w;
		__h = h;
		//
		this["resize_"+head_tab.selectedIndex](w, h);
	}
	//
	//Size Specific panels
	//Resizors
	function resize_0(w:Number, h:Number){
		UserInfo._x = TabBase._x + 10;
		UserInfo._y = TabBase._y + 10;
		//
		//Mask it off :P
		infoMask._x = TabBase._x;
		infoMask._y = TabBase._y;
		//
		infoMask.clear();
		infoMask.moveTo(0, 0);
		infoMask.beginFill(0x000000, 0);
		infoMask.lineTo(0, 0);
		infoMask.lineTo(0, TabBase._height);
		infoMask.lineTo(TabBase._width, TabBase._height);
		infoMask.lineTo(TabBase._width, 0);
		infoMask.lineTo(0, 0);
		infoMask.endFill();
		//
		UserInfo.setMask(infoMask);
		//Size all the text fields in the pane
		var xo:Number = 41;
		UserInfo.t1._width = (TabBase._width - 20)-xo;
		//
		UserInfo.t2._width = (TabBase._width - 20)-xo;
		UserInfo.t3._width = (TabBase._width - 20)-xo;
		UserInfo.t4._width = (TabBase._width - 20)-xo;
		UserInfo.t5._width = (TabBase._width - 20)-xo;
		//
		xo = 65;
		UserInfo.t6._width = (TabBase._width - 20)-xo;
		UserInfo.t7._width = (TabBase._width - 20)-xo;
		UserInfo.t8._width = (TabBase._width - 20)-xo;
	}
	//
	function resize_1(w:Number, h:Number){
		DataGrid._x = Button1._x = TabBase._x + 10;
		DataGrid._y = TabBase._y + 10;
		//
		DataGrid.setSize(TabBase._width - 20, TabBase._height - 20);
		//
	}
	function resize_2(w:Number, h:Number){
		DataGrid._x = Button1._x = TabBase._x + 10;
		DataGrid._y = TabBase._y + 10;
		//
		DataGrid.setSize(TabBase._width - 20, TabBase._height - 50);
		//
		Button2._y = Button1._y = TabBase._y + TabBase._height - 32;
		//
		ArgumentsText._x = TabBase._x + 115;
		ArgumentsText._y = TabBase._y + TabBase._height - 32;
		//
		ArgumentsText.setSize(DataGrid._width - (ArgumentsText._x-DataGrid._x)-50, 22);
		//
		Button2._x = ArgumentsText._x + ArgumentsText._width +5;
		//populateMethods(SelectedUser);
	}
	function resize_3(w:Number, h:Number){
		DTree._x = Button1._x = TabBase._x + 10;
		DTree._y = TabBase._y + 10;
		//
		DTree.setSize(TabBase._width - 20, TabBase._height - 50);
		//
		Button1._y = TabBase._y + TabBase._height - 32;
	}
	function resize_4(w:Number, h:Number){
		resize_3(w, h);
	}
	//Initalizers
	function start_1(){
		DataGrid.removeAll();
		DataGrid.removeAllColumns();
		//
		populateStreams(SelectedUser);
	}
	function start_2(){
		DataGrid.removeAll();
		DataGrid.removeAllColumns();
		//
		populateMethods(SelectedUser);
		Button1.label = "Refresh";
	}
	function start_3(){
		DTree.dataProvider = {};
		Button1.label = "Refresh";
		populateData(SelectedUser);
	}
	function start_4(){
		DTree.dataProvider = {};
		Button1.label = "Refresh";
		populateStorage(SelectedUser);
	}
	//Updators
	function update_0(){
		getStat(SelectedUser);
	}
	function update_1(){
		populateStreams(SelectedUser);
	}
	function update_p_2(){
		populateMethods(SelectedUser);
	}
	function update_p_3(){
		populateData(SelectedUser);
	}
	function update_p_4(){
		populateStorage(SelectedUser);
	}
	//Flashcom shitty get in the way ugly return in a new function wrapped in an onresult based methods
	//Client Storage
	function getStatResult(p:MovieClip){
		this.onResult = function(result){
			if(result.data.connect_time != undefined){
				p.UserInfo.t2.text = result.data.connect_time;
				p.UserInfo.t3.text = result.data.protocol;
				p.UserInfo.t4.text = "In: "+result.data.msg_in+" Out: "+result.data.msg_out+" Drop: "+result.data.msg_dropped;
				p.UserInfo.t5.text = "Bytes In: "+result.data.bytes_in+"\nBytes Out: "+result.data.bytes_out;
				//
				p.UserInfo.t6.text = result.data.msg_queue.video;
				p.UserInfo.t7.text = result.data.msg_queue.audio;
				p.UserInfo.t8.text = result.data.msg_queue.other;
			}
		}
	}
	function getStat(userID){
		_global.Connection.Net.call("getUserStats", new getStatResult(this), _global.selectedApplication, userID);
	}
	function populateStorage(userID){
		_global.Connection.AppNet.call("getStorage", new GCDRes(this), userID);
	}
	//Client Data
	function GCDRes(p:MovieClip){
		this.onResult = function(result){
			_root.log.text = result.AdminID;
			//
			p.DTree.dataProvider = result;
		}
	}
	function populateData(userID){
		_global.Connection.AppNet.call("getClientData", new GCDRes(this), userID);
	}
	//
	function GCMRes(p:MovieClip){
		this.onResult = function(result){
			p.DataGrid.removeAll();
			p.DataGrid.removeAllColumns();
			//
			for(var i=0;i<result.length;i++){
				p.DataGrid.addItem(result[i]);
			}
			//
		}
	}
	function populateMethods(userID){
		_global.Connection.AppNet.call("getMethods", new GCMRes(this), userID);
	}
	//
	function getUserNames(){
		_global.Connection.AppNet.call("getClientUN", new getUserNameRes(this));
	}
	function getUserNameRes(p:MovieClip){
		this.onResult = function(result){
			var sel = p.List.selectedIndex;
			p.List.removeAll();
			//
			for(var i in result){
				var id = result[i].id;
				//
				p.List.addItem({label:result[i].un, id:id});
			}
			//
			p.List.selectedIndex = sel;
		}
	}
	function getUsers(){
		_global.Connection.Net.call("getUsers", new getUsersResult(this), _global.selectedApplication);
	}
	function getUsersResult(p:MovieClip){
		this.onResult = function(result){
			//Make an old list to compare when we need to remove clients
			var oldClients:Object = new Object();
			for(var i in p.CRefID){
				oldClients[i] = true;
			}
			//
			for(var i in result.data){
				var id = result.data[i];
				//
				if(!oldClients[id]){
					p.CRefID[id] = true;
					p.List.addItem(id);
				}
				oldClients[id] = false;
			}
			//Work out lost clients
			for(var i in oldClients){
				if(oldClients[i] == true){
					for(var j=0;j<p.List.length;j++){
						if(p.List.getItemAt(j).label == i){
							p.List.removeItemAt(j);
							break;
						}
					}
				}
			}
		}
	}
	//Stream getter methods requites two calls bah!
	function onGetNetStreamStats(p:MovieClip) {
		this.onResult = function(result) {
			//_root.log.text = "Result";
			var StreamArray = new Array();
			if (result.level == "status") {
				var count = 0;
				for (var prop in result.data) {
					var stat = "";
					if (typeof (result.data[prop]) == "object") {
						if (result.data[prop].stream_id>0) {
							count++;
							StreamArray.push(result.data[prop]);
						}
					}
				}
				p.DataGrid.dataProvider = StreamArray;
			} else if (result.code == "NetConnection.Call.BadValue") {
			}
		};
	}
	function WorkStreams(data){
		_global.Connection.Net.call("getNetStreamStats", new onGetNetStreamStats(this), _global.selectedApplication, data.data.stream_ids);
	}
	function GUSResult(p:MovieClip){
		this.onResult = function(result){
			p.WorkStreams(result);
		}
	}
	function populateStreams(userID){
		_global.Connection.Net.call("getUserStats", new GUSResult(this), _global.selectedApplication, userID);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -