📄 panel3.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 + -