import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.utils.*;
import flash.ui.*;
import flash.text.*;
import flash.geom.*;
import flash.filters.*;
import flash.xml.*;
public class Contact extends MovieClip {
private var stageX:uint;
private var stageWidth:uint;
private var stageHeight:uint;
private var myXML:XML;
private var XML_URL:String;
private var myXMLURL:URLRequest;
private var myLoader:URLLoader;
private var _conf:Array;
private var _title:Array;
private var _people:Array;
private var _connection:Array;
private var _URL:Array;
private var thisNum:uint;
//
private var _allCircle=[];
private var _circle=[];
private var _center=[];
private var circleTxt:TextField;
private var _tips=[];
private var scaleNum:Array;
private var _line:Sprite;
private var _lineChild=[];
private var ok:uint;
private var variable:Number;
private var variableScale:Number;
private var lineStart:Array;
private var lineEnd:Array;
private var lineTxt:Array;
private var my_url:Array;
private var _listBG:Sprite;
private var _searchBG:Sprite;
private var _searchTxt:TextField;
private var fullTxt:TextField;
//
public function Contact() {
//初始化
stageX=this.stage.stageWidth;
stageWidth=1000;
stageHeight=600;
//读取XML文档
ReadXML();
}
private function ReadXML() {
//初始化XML地址
XML_URL="Contact.xml";
//创建URLRequest。
myXMLURL=new URLRequest(XML_URL);
//使用URLLoader导入数据。
myLoader=new URLLoader(myXMLURL);
//根据页面,添加侦听器
myLoader.addEventListener(Event.COMPLETE,xmlLoaded);
}
//读取XML数据,赋值给数组
private function xmlLoaded(evt:Event):void {
//读取XML值,赋给数组
myXML=new XML(evt.target.data);
//配置
_conf=new Array();
_conf[0]=myXML.conf.titleFont.toString();
_conf[1]=uint(myXML.conf.titleColor);
_conf[2]=uint(myXML.conf.titleSize);
_conf[3]=myXML.conf.headFont.toString();
_conf[4]=uint(myXML.conf.headColor);
_conf[5]=uint(myXML.conf.headSize);
_conf[6]=myXML.conf.txtFont.toString();
_conf[7]=uint(myXML.conf.txtColor);
_conf[8]=uint(myXML.conf.txtSize);
_conf[9]=uint(myXML.conf.radius);
_conf[10]=uint(myXML.conf.lineColor);
//以标题为搜索,建立数组
_title=new Array();
var num=myXML.items.item.length();
for (var i=0; i<num; i++) {
_title[i]=myXML.items.item[i].people[0].toString();
}
//所有成员属性
_people=new Array();
var numChild=0;
for (i=0; i<num; i++) {
_people[i]=new Array();
numChild=myXML.items.item[i].people.length();
for (var j=0; j<numChild; j++) {
_people[i][j]=new Array();
_people[i][j][0]=myXML.items.item[i].people[j].toString();
_people[i][j][1]=Number(myXML.items.item[i].people[j].attribute("scale"));
_people[i][j][2]=Number(myXML.items.item[i].people[j].attribute("coordinateX"));
_people[i][j][3]=Number(myXML.items.item[i].people[j].attribute("coordinateY"));
//_people[i][j][4]=(myXML.items.item[i].people[j].attribute("relation").toString());
trace(_people[i][j]);
}
}
//关系连线参数
_connection=new Array();
_URL=new Array();
for (i=0; i<num; i++) {
_connection[i]=myXML.items.item[i].connection.toString();
}
//开始
thisNum=0;
ok=0;
Circle(thisNum,stageWidth/2,stageHeight/2,1);
//搜索
Search();
}
private function Circle(num:uint,objX:Number,objY:Number,scale:Number) {
//初始化变量
scaleNum=new Array();
for (var n=0; n<_people[num].length; n++) {
scaleNum[n]=100;
}
//绘制精灵
_allCircle[num]=new Sprite();
_allCircle[num].name="_allCircle"+num;
_allCircle[num].x=objX;
_allCircle[num].y=objY;
_allCircle[num].scaleX=scale;
_allCircle[num].scaleY=scale;
this.addChild(_allCircle[num]);
//外面带透明度的环
for (var i=0; i<_people[num].length; i++) {
var whiteColor=0xffffff;
var multiples:Number;
_circle[i]=new Sprite();
}
//添加连线
Line(thisNum);
//缩放对象
for (i=0; i<_people[num].length; i++) {
_center[i]=new Sprite();
_center[i].name="_center"+i;
_center[i].scaleX=_circle[i].scaleX;
_center[i].scaleY=_circle[i].scaleY;
_center[i].x=_circle[i].x;
_center[i].y=_circle[i].y;
_allCircle[num].addChild(_center[i]);
//添加中间方块
var circleMin:Sprite=new Sprite();
circleMin.graphics.lineStyle();
circleMin.graphics.beginFill(258369126,1);
circleMin.graphics.drawRoundRect(-20,-10,_conf[9]+10,20,5);
circleMin.graphics.endFill();
// circleMin.filters=[new ColorMatrixFilter([0.4,0,0,0,0,0,0.4,0,0,0,0,0,0.4,0,0,0,0,0,1,0])];
_center[i].addChild(circleMin);
_center[i].buttonMode=true;
// TransformColor(circleMin,_people[num][i][2],_people[num][i][3]);
//中间文字
circleTxt=new TextField();
circleTxt.autoSize="left";
circleTxt.text=_people[num][i][0];
FmtTxt(circleTxt,_conf[0],_conf[1],_conf[2],true);
circleTxt.x=-circleTxt.width/2;
circleTxt.y=-circleTxt.height/2;
_center[i].addChild(circleTxt);
//透明按钮
var circleBtn=new Sprite();
circleBtn.graphics.beginFill(whiteColor,1);
circleBtn.graphics.drawCircle(0,0,_conf[9]/2+2);
circleBtn.graphics.endFill();
_center[i].addChild(circleBtn);
circleBtn.alpha=0;
//添加监听器
_center[i].mouseChildren = false;
_center[i].addEventListener(MouseEvent.MOUSE_OVER,OverCircle);
_center[i].addEventListener(MouseEvent.MOUSE_OUT,OutCircle);
_center[i].addEventListener(MouseEvent.CLICK,ClickCircle);
circleBtn.addEventListener(Event.ENTER_FRAME,CircleAlpha);
}
_allCircle[num].addEventListener(Event.ENTER_FRAME,CircleScale);
_allCircle[num].addEventListener(Event.ENTER_FRAME,CircleCoordinate);
//滑轮
stage.addEventListener(MouseEvent.MOUSE_WHEEL ,onMouseWheelHandler);
stage.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDownHandler);
stage.addEventListener(MouseEvent.MOUSE_UP,onMouseUpHandler);
}
//还原_allCircle的大小
private function CircleScale(event:Event):void {
var scale=(1-event.target.scaleX)/10;
event.target.scaleX+=scale;
event.target.scaleY+=scale;
if (event.target.scaleX>0.995&&event.target.scaleX<1.005) {
event.target.scaleX=1;
event.target.scaleY=1;
event.target.removeEventListener(Event.ENTER_FRAME,CircleScale);
}
}
//还原_allCircle的位置
private function CircleCoordinate(event:Event):void {
var objX=(stageWidth/2-event.target.x)/10;
var objY=(stageHeight/2-event.target.y)/10;
event.target.x+=objX;
event.target.y+=objY;
if ((event.target.x>stageWidth/2-1&&event.target.x<stageWidth/2+2)&&(event.target.y>stageHeight/2-1&&event.target.y<stageHeight/2+2)) {
event.target.x=stageWidth/2;
event.target.y=stageHeight/2;
event.target.removeEventListener(Event.ENTER_FRAME,CircleCoordinate);
}
}
//圆最上面白色遮罩加深
private function CircleAlpha(event:Event):void {
event.target.alpha+=0.3;
if (event.target.alpha>=0.7) {
event.target.removeEventListener(Event.ENTER_FRAME,CircleAlpha);
event.target.addEventListener(Event.ENTER_FRAME,AlphaFrame);
event.target.parent.addEventListener(Event.ENTER_FRAME,MoveFrame);
}
}
//改变圆环透明度
private function AlphaFrame(event:Event):void {
event.target.alpha-=0.15;
if (event.target.alpha<=0) {
event.target.removeEventListener(Event.ENTER_FRAME,AlphaFrame);
}
}
//移动圆环
private function MoveFrame(event:Event):void {
var childNum=event.target.name.slice(7);
event.target.x-=(event.target.x-_people[thisNum][childNum][2])/3;
event.target.y-=(event.target.y+_people[thisNum][childNum][3])/3;
if (Math.abs(event.target.x-_people[thisNum][childNum][2])<=1&&Math.abs(event.target.y+_people[thisNum][childNum][3])<=1) {
event.target.x=_people[thisNum][childNum][2];
event.target.y=-_people[thisNum][childNum][3];
event.target.removeEventListener(Event.ENTER_FRAME,MoveFrame);
ok++;
if (ok==_people[thisNum].length) {
_line.addEventListener(Event.ENTER_FRAME,LineFrame);
}
_circle[childNum].alpha=1;
}
_circle[childNum].x=event.target.x;
_circle[childNum].y=event.target.y;
_circle[childNum].alpha+=0.1;
if (_circle[childNum].alpha>=1) {
_circle[childNum].alpha=1;
}
}
//鼠标滑上
private function OverCircle(event:MouseEvent):void {
OverTips(event.target);
event.target.removeEventListener(Event.ENTER_FRAME,OutFrame);
event.target.addEventListener(Event.ENTER_FRAME,OverFrame);
}
//缓冲扩大
private function OverFrame(event:Event):void {
var childNum=event.target.name.slice(7);
var scale=_people[thisNum][childNum][1]*100+45;
if ((scaleNum[childNum]<scale-1)) {
scaleNum[childNum]+=Math.ceil((scale-scaleNum[childNum])/2);
} else {
scaleNum[childNum]=scale;
event.target.removeEventListener(Event.ENTER_FRAME,OverFrame);
}
event.target.scaleX=scaleNum[childNum]/100;
event.target.scaleY=scaleNum[childNum]/100;
}
//点击提示
private function OverTips(obj:Object) {
var childNum=obj.name.slice(7);
_tips[childNum]=new Sprite();
_tips[childNum].graphics.lineStyle(1,0x999999,0.5);
_tips[childNum].graphics.beginFill(0x000000,0.5);
_tips[childNum].graphics.drawRoundRect(0,0,56,17,15);
_tips[childNum].graphics.endFill();
_tips[childNum].x=obj.x+obj.width/2;
_tips[childNum].y=obj.y-_tips[childNum].height/2;
//obj.parent.addChild(_tips[childNum]);
var txt:TextField=new TextField();
txt.autoSize="left";
txt.text="";
FmtTxt(txt,_conf[0],0xffffff,11,false);
txt.x=(_tips[childNum].width-txt.width)/2;
txt.y=(_tips[childNum].height-txt.height)/2;
_tips[childNum].addChild(txt);
}
//鼠标移出
private function OutCircle(event:MouseEvent):void {
//OutTips(event.target);
event.target.removeEventListener(Event.ENTER_FRAME,OverFrame);
event.target.addEventListener(Event.ENTER_FRAME,OutFrame);
}
//缓冲缩小
private function OutFrame(event:Event):void {
var childNum=event.target.name.slice(7);
var scale=_people[thisNum][childNum][1]*100;
if (scaleNum[childNum]>scale+1) {
scaleNum[childNum]-=Math.ceil((scaleNum[childNum]-scale)/2);
} else {
scaleNum[childNum]=scale;
event.target.removeEventListener(Event.ENTER_FRAME,OutFrame);
}
event.target.scaleX=scaleNum[childNum]/100;
event.target.scaleY=scaleNum[childNum]/100;
}
//删除点击提示
private function OutTips(obj:Object) {
var childNum=obj.name.slice(7);
_tips[childNum].parent.removeChild(_tips[childNum]);
}
//鼠标点击
private function ClickCircle(event:MouseEvent):void {
event.target.removeEventListener(MouseEvent.CLICK,ClickCircle);
var childNum=event.target.name.slice(7);
var keyword:String=_people[thisNum][childNum][0];
Remove(keyword);
}
//缩小圆环,最后移除
private function RemoveFrame(event:Event):void {
var num=event.target.name.slice(10);
event.target.scaleX-=0.2;
event.target.scaleY-=0.2;
event.target.alpha-=0.2;
if (event.target.scaleX<=0.3) {
this.removeChild(_allCircle[num]);
event.target.removeEventListener(Event.ENTER_FRAME,RemoveFrame);
}
}
//添加连线
private function Line(num:uint) {
var startNum:uint;
var endNum:uint;
_line=new Sprite();
_allCircle[num].addChild(_line);
//获取直线相关数据
var childLine:Array= _connection[num].split(",");
lineStart=new Array();
lineEnd=new Array();
lineTxt=new Array();
my_url=new Array();
for (var i=0; i<childLine.length; i++) {
var point:uint=0;
var slash:int=childLine[i].indexOf("/");
var colon:int=childLine[i].indexOf(":");
var _url:int=childLine[i].indexOf(".");
lineStart[i]=childLine[i].slice(0,slash);
lineEnd[i]=childLine[i].slice(slash+1,colon);
lineTxt[i]=childLine[i].slice(colon+1);
my_url[i]=childLine[i].slice(_url+1);
for (var j=0; j<_people[num].length; j++) {
if (lineStart[i]==_people[num][j][0]) {
startNum=j;
point++;
} else if (lineEnd[i]==_people[num][j][0]) {
endNum=j;
point++;
}
if (point==2) {
break;
}
}
_lineChild[i]=new Sprite();
_lineChild[i].name="_lineChild"+i;
_lineChild[i].graphics.lineStyle(10,0x000000,0,true);
_lineChild[i].graphics.moveTo(_people[num][startNum][2],-_people[num][startNum][3]);
_lineChild[i].graphics.lineTo(_people[num][endNum][2],-_people[num][endNum][3]);
//
_lineChild[i].graphics.lineStyle(1,0x000000,1,true);
_lineChild[i].graphics.moveTo(_people[num][startNum][2],-_people[num][startNum][3]);
_lineChild[i].graphics.lineTo(_people[num][endNum][2],-_people[num][endNum][3]);
_lineChild[i].filters=[new ColorMatrixFilter([1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0])];
_lineChild[i].buttonMode=true;
_lineChild[i].addEventListener(MouseEvent.MOUSE_OVER,OverLine);
_lineChild[i].addEventListener(MouseEvent.MOUSE_OUT,OutLine);
_lineChild[i].addEventListener(MouseEvent.CLICK,ClickLine);
_line.addChild(_lineChild[i]);
}
_line.alpha=0;
}
//慢慢显示连线
private function LineFrame(event:Event):void {
_line.alpha+=0.06;
if (_line.alpha>=0.4) {
_line.removeEventListener(Event.ENTER_FRAME,LineFrame);
}
}
//滑入连线
private function OverLine(event:MouseEvent):void {
event.target.alpha=10;
}
//滑出连线
private function OutLine(event:MouseEvent):void {
event.target.alpha=1;
}
//点击连线
private function ClickLine(event:MouseEvent):void {
var num=event.target.name.slice(10);
//说明列表
var _listSprite:Sprite=new Sprite();
_listSprite.x=mouseX+10;
_listSprite.y=mouseY;
this.addChild(_listSprite);
//标题
var listTitle:TextField=new TextField();
listTitle.width=120;
listTitle.autoSize="left";
listTitle.wordWrap=true;
listTitle.text=lineStart[num]+", "+lineEnd[num];
FmtTxt(listTitle,_conf[3],_conf[4],_conf[5],true);
listTitle.x=7;
listTitle.y=7;
//正文
var listTxt:TextField=new TextField();
listTxt.width=230;
listTxt.autoSize="left";
listTxt.wordWrap=true;
listTxt.text=lineTxt[num];
FmtTxt(listTxt,_conf[6],_conf[7],_conf[8],false);
listTxt.x=7;
listTxt.y=listTitle.y+listTitle.height;
listTxt.wordWrap=true;
listTxt.multiline = true;
//访问按钮
var F_Text:TextField=new TextField();
var circleMin:MovieClip=new MovieClip();
F_Text.autoSize = TextFieldAutoSize.LEFT;
F_Text.text="直接访问";
F_Text.mouseEnabled=false;
circleMin.addChild(F_Text);
circleMin.buttonMode=true;
circleMin.addEventListener(MouseEvent.MOUSE_OVER,mouse_Over);
circleMin.addEventListener(MouseEvent.MOUSE_OUT,mouse_Out);
circleMin.addEventListener(MouseEvent.MOUSE_DOWN,mosueDown(num));
circleMin.src=num;
F_Text.x=circleMin.x;
F_Text.y=circleMin.y;
//说明背景
_listBG=new Sprite();
_listBG.graphics.beginFill(0xeeeeee,1);
_listBG.graphics.drawRoundRect(0,0,listTxt.width,listTxt.y+listTxt.height+30,15);
_listBG.graphics.endFill();
_listSprite.addChild(_listBG);
_listBG.addChild(listTitle);
_listBG.addChild(listTxt);
_listSprite.addChild(circleMin);
circleMin.x=_listBG.width-circleMin.width-100;
circleMin.y=_listBG.height-circleMin.height-5;
//关闭按钮
var listClose:Sprite=new Sprite();
listClose.graphics.beginFill(0xffffff,0);
listClose.graphics.drawRoundRect(0,0,20,20,15);
listClose.graphics.endFill();
listClose.graphics.lineStyle(1,0x666666,1,true);
listClose.graphics.moveTo(7,7);
listClose.graphics.lineTo(13,13);
listClose.graphics.moveTo(13,7);
listClose.graphics.lineTo(7,13);
listClose.x=_listBG.width-listClose.width-5;
_listSprite.addChild(listClose);
listClose.buttonMode=true;
//
_listBG.mouseChildren = false;
stage.addEventListener(MouseEvent.MOUSE_DOWN,ClickStage);
}
private function mosueDown(i:int):Function {
var Fun:Function=function(e:MouseEvent){
stage.removeEventListener(MouseEvent.MOUSE_DOWN,ClickStage);
i=e.currentTarget.src;
var url:URLRequest=new URLRequest(my_url[i]);
navigateToURL(url,"_blank")
};
return Fun;
}
private function mouse_Over(e:MouseEvent) {
stage.removeEventListener(MouseEvent.MOUSE_DOWN,ClickStage);
}
private function mouse_Out(e:MouseEvent) {
stage.addEventListener(MouseEvent.MOUSE_DOWN,ClickStage);
}
private function ClickStage(event:MouseEvent):void {
if (event.target!=_listBG) {
this.removeChild(_listBG.parent);
stage.removeEventListener(MouseEvent.MOUSE_DOWN,ClickStage);
}
}
private function ArrowUp(event:MouseEvent):void {
_allCircle[thisNum].removeEventListener(Event.ENTER_FRAME,CircleCoordinate);
removeEventListener(Event.ENTER_FRAME,OffsetX);
variable=50;
addEventListener(Event.ENTER_FRAME,OffsetY);
}
private function ArrowDown(event:MouseEvent):void {
_allCircle[thisNum].removeEventListener(Event.ENTER_FRAME,CircleCoordinate);
removeEventListener(Event.ENTER_FRAME,OffsetX);
variable=-50;
addEventListener(Event.ENTER_FRAME,OffsetY);
}
private function ArrowLeft(event:MouseEvent):void {
_allCircle[thisNum].removeEventListener(Event.ENTER_FRAME,CircleCoordinate);
removeEventListener(Event.ENTER_FRAME,OffsetY);
variable=50;
addEventListener(Event.ENTER_FRAME,OffsetX);
}
private function ArrowRight(event:MouseEvent):void {
_allCircle[thisNum].removeEventListener(Event.ENTER_FRAME,CircleCoordinate);
removeEventListener(Event.ENTER_FRAME,OffsetY);
variable=-50;
addEventListener(Event.ENTER_FRAME,OffsetX);
}
private function Enlarge(event:MouseEvent):void {
_allCircle[thisNum].removeEventListener(Event.ENTER_FRAME,CircleScale);
variableScale=0.3;
addEventListener(Event.ENTER_FRAME,Scale);
}
private function Narrow(event:MouseEvent):void {
_allCircle[thisNum].removeEventListener(Event.ENTER_FRAME,CircleScale);
variableScale=-0.4;
addEventListener(Event.ENTER_FRAME,Scale);
}
//偏移Y
private function OffsetY(event:Event):void {
var number=variable/4;
_allCircle[thisNum].y+=number;
variable-=number;
if (Math.abs(variable)<=1) {
variable=0;
removeEventListener(Event.ENTER_FRAME,OffsetY);
}
}
//偏移X
private function OffsetX(event:Event):void {
var number=variable/4;
_allCircle[thisNum].x+=number;
variable-=number;
if (Math.abs(variable)<=1) {
variable=0;
removeEventListener(Event.ENTER_FRAME,OffsetX);
}
}
//缩放
private function Scale(event:Event):void {
if (_allCircle[thisNum].scaleX<0.2&&variableScale<0) {
removeEventListener(Event.ENTER_FRAME,Scale);
} else if (_allCircle[thisNum].scaleX>1.8&&variableScale>0) {
removeEventListener(Event.ENTER_FRAME,Scale);
} else {
var number=variableScale/4;
_allCircle[thisNum].scaleX+=number;
_allCircle[thisNum].scaleY+=number;
variableScale-=number;
if (Math.abs(variableScale)<=0.01) {
variableScale=0;
removeEventListener(Event.ENTER_FRAME,Scale);
}
}
}
//鼠标滑轮滚动
private function onMouseWheelHandler(_evt:MouseEvent ):void {
_allCircle[thisNum].removeEventListener(Event.ENTER_FRAME,CircleScale);
if (_evt.delta>0) {
variableScale=0.4;
addEventListener(Event.ENTER_FRAME,Scale);
} else {
variableScale=-0.4;
addEventListener(Event.ENTER_FRAME,Scale);
}
}
private function onMouseDownHandler(_evt:MouseEvent ):void {
_allCircle[thisNum].removeEventListener(Event.ENTER_FRAME,CircleCoordinate);
removeEventListener(Event.ENTER_FRAME,OffsetX);
removeEventListener(Event.ENTER_FRAME,OffsetY);
_allCircle[thisNum].startDrag();
}
private function onMouseUpHandler(_evt:MouseEvent ):void {
_allCircle[thisNum].stopDrag();
}
private function Search() {
//
_searchBG=new Sprite();
_searchBG.graphics.lineStyle();
_searchBG.graphics.beginFill(255013683,0.3);
_searchBG.graphics.drawRoundRect(0,0,256,40,10);
_searchBG.graphics.endFill();
_searchBG.x=(stageWidth-_searchBG.width)/2;
_searchBG.y=0;
this.addChild(_searchBG);
//
var white=new Sprite();
white.graphics.lineStyle();
white.graphics.beginFill(0xffffff,1);
white.graphics.drawRoundRect(0,0,200,20,5);
white.graphics.endFill();
white.x=7;
white.y=13;
_searchBG.addChild(white);
//
_searchTxt=new TextField();
_searchTxt.type=TextFieldType.INPUT;
_searchTxt.width=white.width;
_searchTxt.height=white.height;
var fmt=new TextFormat;
fmt.font=_conf[0];
fmt.color=0x999999;
fmt.size=12;
//应用以上设置的格式
_searchTxt.defaultTextFormat=fmt;
_searchTxt.x=white.x;
_searchTxt.y=white.y;
_searchBG.addChild(_searchTxt);
//
var button=new Sprite();
button.graphics.lineStyle();
button.graphics.beginFill(261724569,1);
button.graphics.drawRoundRect(0,0,35,white.height,5);
button.graphics.endFill();
button.x=white.x+white.width+7;
button.y=white.y;
_searchBG.addChild(button);
button.buttonMode=true;
button.mouseChildren = false;
button.addEventListener(MouseEvent.CLICK,SearchFun);
//
var btnTxt:TextField=new TextField();
btnTxt.autoSize="left";
btnTxt.text="搜索";
FmtTxt(btnTxt,_conf[0],0xffffff,12,false);
btnTxt.x=(button.width-btnTxt.width)/2;
btnTxt.y=(button.height-btnTxt.height)/2;
button.addChild(btnTxt);
}
private function SearchFun(evt:MouseEvent ):void {
var keyword:String=_searchTxt.text;
Remove(keyword);
}
//移除
private function Remove(word:String) {
var scale:Number=_allCircle[thisNum].scaleX;
var objX:Number=_allCircle[thisNum].x;
var objY:Number=_allCircle[thisNum].y;
for (var i=0; i<_title.length; i++) {
if (_title[i]==word&&_title[i]!=_title[thisNum]) {
//
_allCircle[thisNum].removeChild(_line);
for (var j=0; j<_people[thisNum].length; j++) {
_center[j].removeEventListener(Event.ENTER_FRAME,MoveFrame);
_allCircle[thisNum].removeChild(_center[j]);
}
_line.removeEventListener(Event.ENTER_FRAME,LineFrame);
_allCircle[thisNum].addEventListener(Event.ENTER_FRAME,RemoveFrame);
thisNum=i;
ok=0;
Circle(thisNum,objX,objY,scale);
_searchBG.parent.setChildIndex(_searchBG,numChildren-1);
break;
}
}
}
//格式化文本
private function FmtTxt(childTxt,childFont,childColor,childSize,childBold) {
childTxt.selectable=false;
var fmt=new TextFormat;
fmt.font=childFont;
fmt.color=childColor;
fmt.size=childSize;
fmt.bold=childBold;
//应用以上设置的格式
childTxt.setTextFormat(fmt);
}
//根据角度,添加色彩
private function TransformColor(obj:Object,objX:Number,objY:Number) {
var w=objX;
var h=objY;
var degrees=Math.atan2(h,w)*180/Math.PI;
var red=0;
var green=0;
var blue=0;
if (degrees>=0&°rees<60) {
red=1;
blue=degrees*1/60;
} else if (degrees>=60&°rees<120) {
blue=1;
red=1-(degrees-60)*1/60;
} else if (degrees>=120&°rees<=180) {
blue=1;
green=(degrees-120)*1/60;
} else if (degrees>=-180&°rees<-120) {
green=1;
blue=1-(degrees+180)*1/60;
} else if (degrees>=-120&°rees<-60) {
green=1;
red=(degrees+120)*1/60;
} else if (degrees>=-60&°rees<0) {
red=1;
green=1-(degrees+60)*1/60;
}
var color:ColorTransform=obj.transform.colorTransform;
color.redMultiplier=red;
color.greenMultiplier=green;
color.blueMultiplier=blue;
obj.transform.colorTransform=color;
}
//设置饱和度
private function Saturation(obj:Object,num:Number) {
var value=num;
var red=0.3086;
var green=0.6094;
var blue=0.0820;
var a=(1-value)*red+value;
var b=(1-value)*green;
var c=(1-value)*blue;
var d=(1-value)*red;
var e=(1-value)*green+value;
var f=(1-value)*blue;
var g=(1-value)*red;
var h=(1-value)*green;
var i=(1-value)*blue+value;
obj.filters=[new ColorMatrixFilter([a,b,c,0,0,d,e,f,0,0,g,h,i,0,0,0,0,0,1,0])];
}
}
}
Contact.xml
<Contact>
<conf>
<titleFont>微软雅黑</titleFont>
<titleColor>0xffffff</titleColor>
<titleSize>13</titleSize>
<headFont>宋体</headFont>
<headColor>0x000000</headColor>
<headSize>12</headSize>
<txtFont>宋体</txtFont>
<txtColor>0x666666</txtColor>
<txtSize>12</txtSize>
<radius>30</radius>
<lineColor>0xffffff</lineColor>
</conf>
<items>
<item>
<people scale="1.4" coordinateX="0" coordinateY="-0.5">富士通</people>
<people scale="1.1" coordinateX="-200" coordinateY="-10">中国</people>
<people scale="1.1" coordinateX="-150" coordinateY="-70">北京</people>
<people scale="1.1" coordinateX="-80" coordinateY="-90">沈阳</people>
<people scale="1.3" coordinateX="-20" coordinateY="-150">日本</people>
<people scale="1.1" coordinateX="80" coordinateY="-100">E</people>
<people scale="1.1" coordinateX="150" coordinateY="90">F</people>
<people scale="1.2" coordinateX="220" coordinateY="-80">G</people>
<people scale="1.2" coordinateX="0" coordinateY="130">H</people>
<people scale="1.1" coordinateX="150" coordinateY="-100">I</people>
<people scale="1.3" coordinateX="100" coordinateY="20">J</people>
<people scale="1.1" coordinateX="-160" coordinateY="120">K</people>
<people scale="1.3" coordinateX="-130" coordinateY="40">L</people>
<people scale="1.3" coordinateX="150" coordinateY="-20">M</people>
<people scale="1.3" coordinateX="60" coordinateY="-165">N</people>
<people scale="1.1" coordinateX="100" coordinateY="-50">O</people>
<people scale="1.2" coordinateX="15" coordinateY="-90">P</people>
<people scale="1.1" coordinateX="180" coordinateY="-150">Q</people>
<connection>富士通/中国:富士通研究开发中心在中国北京.http://www.baidu.com,富士通/北京:北京富士通研究开发中心有限公司成立十周年.http://www.sina.com,沈阳/富士通:阿.http://www.google.cn,日本/富士通:22.http://www.sohu.com,E/富士通:我为.http://www.qq.com,F/富士通:谔谔.http://www.qq.com,G/富士通:555.http://www.soopat.com,H/富士通:888.http://www.qq.com,I/富士通:777.http://www.qq.com,J/富士通:445.http://www.qq.com,K/富士通:789.http://www.qq.com,L/富士通:789564.http://www.qq.com,M/富士通:78464.http://www.qq.com,N/富士通:78964.http://www.qq.com,O/富士通:7894.http://www.qq.com,P/富士通:789564.http://www.qq.com,Q/富士通:78954.http://www.qq.com,北京/沈阳:沈阳至北京.http://www.qq.com,北京/中国:13,G/I:666.http://www.qq.com,P/Q:789464.http://www.qq.com,P/O:78956464.http://www.qq.com,G/Q:78956464.http://www.qq.com,N/Q:7954.http://www.qq.com,N/M:789464.http://www.qq.com,E/N:eeeeeeeee.http://www.qq.com,I/Q:ddddddddddd.http://www.qq.com,P/N:GSSDFS.http://www.qq.com,J/O:DBBDFBDF.http://www.qq.com,M/G:FSDGFDGE.http://www.qq.com,I/N:fgfg.http://www.qq.com,M/I:HERGR.http://www.qq.com,O/G:FBFDGSDFS.http://www.qq.com,O/F:ERVF.http://www.qq.com,E/Q:TEGEFGER.http://www.qq.com,P/E:ERGERF.http://www.qq.com,P/J:VVS.http://www.qq.com,P/G:BERGER.http://www.qq.com</connection>
</item>
</items>
</Contact>