Click here to Skip to main content
15,896,912 members

creend - Professional Profile



Summary

    Blog RSS
45
Authority
-22
Debator
0
Enquirer
32
Organiser
389
Participant
0
Author
0
Editor
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Reputation

Weekly Data. Recent events may not appear immediately. For information on Reputation please see the FAQ.

Privileges

Members need to achieve at least one of the given member levels in the given reputation categories in order to perform a given action. For example, to store personal files in your account area you will need to achieve Platinum level in either the Author or Authority category. The "If Owner" column means that owners of an item automatically have the privilege. The member types column lists member types who gain the privilege regardless of their reputation level.

ActionAuthorAuthorityDebatorEditorEnquirerOrganiserParticipantIf OwnerMember Types
Have no restrictions on voting frequencysilversilversilversilver
Bypass spam checks when posting contentsilversilversilversilversilversilvergoldSubEditor, Mentor, Protector, Editor
Store personal files in your account areaplatinumplatinumSubEditor, Editor
Have live hyperlinks in your profilebronzebronzebronzebronzebronzebronzesilverSubEditor, Protector, Editor
Have the ability to include a biography in your profilebronzebronzebronzebronzebronzebronzesilverSubEditor, Protector, Editor
Edit a Question in Q&AsilversilversilversilverYesSubEditor, Protector, Editor
Edit an Answer in Q&AsilversilversilversilverYesSubEditor, Protector, Editor
Delete a Question in Q&AYesSubEditor, Protector, Editor
Delete an Answer in Q&AYesSubEditor, Protector, Editor
Report an ArticlesilversilversilversilverSubEditor, Mentor, Protector, Editor
Approve/Disapprove a pending ArticlegoldgoldgoldgoldSubEditor, Mentor, Protector, Editor
Edit other members' articlesSubEditor, Protector, Editor
Create an article without requiring moderationplatinumSubEditor, Mentor, Protector, Editor
Approve/Disapprove a pending QuestionProtector
Approve/Disapprove a pending AnswerProtector
Report a forum messagesilversilverbronzeProtector, Editor
Approve/Disapprove a pending Forum MessageProtector
Have the ability to send direct emails to members in the forumsProtector
Create a new tagsilversilversilversilver
Modify a tagsilversilversilversilver

Actions with a green tick can be performed by this member.


 
GeneralSpringGraphRoamer Pin
creend17-Nov-11 20:06
creend17-Nov-11 20:06 
XML
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
	xmlns:fc="http://www.adobe.com/2006/fc"
	creationComplete="init(event)"
	backgroundGradientColors="[#f8f8f8,#ebf3ee]">

	<mx:CheckBox x="10" y="5" label="显示历史" fontSize="12" selected="true"
				 change="showHistory(event)"/>
	<mx:Label x="100" y="8" text="连线长度:"  fontSize="12" color="#000000" visible="false" />
	<mx:HSlider visible="false"  x="160" y="5" width="133" id="repulsion" value="{roamer.repulsionFactor}" minimum="0.01" maximum="1.5" liveDragging="true" />
	
	<mx:Image source="{GetImageURL(100)}" x="10" y="40" />
	<mx:Label x="28" y="37" text="{GetImageTitle(100)}"  fontSize="12"/>
	<mx:Image source="{GetImageURL(101)}" x="10" y="70" />
	<mx:Label x="28" y="67" text="{GetImageTitle(101)}"  fontSize="12"/>
	<mx:Image source="{GetImageURL(102)}" x="10" y="100" />
	<mx:Label x="28" y="97" text="{GetImageTitle(102)}"  fontSize="12"/>
	<mx:Image source="{GetImageURL(103)}" x="10" y="130" />
	<mx:Label x="28" y="127" text="{GetImageTitle(103)}"  fontSize="12"/>
	
	<fc:Roamer id="roamer"
			   bottom="0"
			   itemRenderer="render.ItemRender"
			   repulsionFactor="0.04"
			   maxDistanceFromCurrent="2"
			   autoFit="true"
			   motionThreshold="0.1"
			   right="0" left="0" top="20"
			   itemLimit="150">
		<fc:removeItemEffect>
			<mx:Fade alphaFrom="1" alphaTo="0" duration="1000"/>				
		</fc:removeItemEffect>
		
		<fc:addItemEffect>
			<mx:Fade alphaFrom="0" alphaTo="1" duration="1000"/>
		</fc:addItemEffect>
	</fc:Roamer>
	
	<mx:Script>
		<![CDATA[
			import com.adobe.flex.extras.controls.springgraph.Graph;
			import com.adobe.flex.extras.controls.springgraph.GraphDataProvider;
			import com.adobe.flex.extras.controls.springgraph.Item;
			import com.adobe.flex.extras.controls.springgraph.SpringGraph;
			
			import mx.collections.ArrayList;
			import mx.controls.Button;
			import mx.controls.Image;
			import mx.events.FlexEvent;
			import mx.rpc.events.ResultEvent;

			[Bindable]
			public var graphData:Graph=new Graph();
			
			public var edgeColor:uint;
			
			public var overedData:ArrayList=new ArrayList();
			
			//根图片
			public var mainImage:Image=new Image();
			//当前节点图片
			public var currentResourceImage:Image=new Image();
			//相关节点图片
			public var relationResourceImage:Image=new Image();
			//被关联节点图片
			public var byRelationResourceImage:Image=new Image();
			//链接图片
			public var linkIcon:Image=new Image();
			
			public function itemDoubleClick(event: Event,item:Item): void {
				parentItem=roamer.currentItem;
				var curData:XML=item.data as XML;
				var curId:String=curData.attribute("id");
				this.GetData(curId,curData.toXMLString());
				roamer.currentItem = item;
			}
			//父节点
			public var parentItem:Item;
			//当前节点未显示的节点
			public var hideItem:Item;
			//初始化
			protected function init(event:FlexEvent):void
			{
				//首先加载图片
				mainImage.load(this.GetImageURL(0));
				mainImage.addEventListener(Event.COMPLETE,image_completeHandler);
				
				currentResourceImage.load(this.GetImageURL(1));
				currentResourceImage.addEventListener(Event.COMPLETE,image_completeHandler);

				relationResourceImage.load(this.GetImageURL(2));
				relationResourceImage.addEventListener(Event.COMPLETE,image_completeHandler);
				
				byRelationResourceImage.load(this.GetImageURL(3));
				byRelationResourceImage.addEventListener(Event.COMPLETE,image_completeHandler);

				linkIcon.load(this.GetImageURL(-1));
				linkIcon.addEventListener(Event.COMPLETE,image_completeHandler);
			}
			//图片URL
			public function GetImageURL(imageType:int):String
			{
				var imageUrl:String=ExternalInterface.call("FlashRoamerGetImageUrl",imageType);
				return imageUrl;
			}
			//图片说明
			public function GetImageTitle(imageType:int):String
			{
				var imageTitle:String=ExternalInterface.call("FlashRoamerGetImageTitle",imageType);
				return imageTitle;
			} 
			//取得节点数据
			public function GetData(parentId:String,nodexml:String):void
			{
				var isOvered:Boolean=overedData.getItemIndex(parentId)<0;
				if(isOvered)
				{
					overedData.addItem(parentId);
					var initXml:String=null;
					initXml=ExternalInterface.call("FlashRoamerGetData",parentId,nodexml);
					if(initXml==null)
					{
						return;
					}
					var xml:XML=new XML(initXml);
					var item:Item;
					for each(var node:XML in xml..node){
						if(!graphData.hasNode(node.@id))
						{
							item=new Item(node.@id);
							item.data=node;
							//如果当前节点的被关联知识中,包含父节点,那么在显示历史的情况下,是不需要显示的
							if(parentItem!=null&&node.@riid==parentItem.data.@riid)
							{
								this.hideItem=item;	
							}
							else
							{
								graphData.add(item);
							}
						}
					}
					for each(var edge:XML in xml..edge){
						loadEdge(edge);
					}
				}
			}
			//加入线
			public function loadEdge(edge:XML):void
			{
				var fromID:String=edge.@fromID;
				var toID:String=edge.@toID;
				var orderString:String=edge.@order;
				//var infoString:String=edge.@number;
				//var colorString:String=edge.@color;
					
				var fromItem:Item=graphData.find(fromID);
				var toItem:Item=graphData.find(toID);
				if(fromItem!=null&&toItem!=null)
				{
					var data:Object={settings:{alpha:0.2,color:edgeColor,tooltip:"相关知识",info:"",thickness:orderString}};
				
					graphData.link(fromItem,toItem,data);
				}
			}
			//取得图片内容
			public function itemImage(type:int):Image
			{
				
				var image:Image=currentResourceImage;
				switch(type)
				{
					case 0:
						image=mainImage;
						break;
					case 1:
						image=currentResourceImage;
						break;
					case 2:
						image=relationResourceImage;
						break;
					case 3:
						image=byRelationResourceImage;
						break;
					case -1:
						image=linkIcon;
						break;
					default:
						break;
				}
				
				return image;
			}
			//图片加载
			public var imageLoadCompleteCount:int=0;
			protected function image_completeHandler(event:Event):void
			{
				// TODO Auto-generated method stub
				imageLoadCompleteCount=imageLoadCompleteCount+1;
				if(imageLoadCompleteCount>=5)
				{
					roamer.repulsionFactor = 0.4;
					roamer.motionThreshold=0.001;
					roamer.showHistory=true;
					//增加JS调用的接口
					//ExternalInterface.addCallback("jsFunction",jsFunction);
					//调用JS方法
					this.GetData("-","");
					roamer.resetHistory();
					roamer.resetShowHide();
					//roamer.xmlNames = ['node','edge','fromID','toID'];
					roamer.dataProvider = graphData;
				}
			}
			//浏览知识
			public function openResource(node:XML):void{
				ExternalInterface.call("FlashRoamerBrowse",node.toXMLString());
			}
			protected function showHistory(event:Event):void
			{
				roamer.showHistory = event.currentTarget.selected;
			}
			
		]]>
	</mx:Script>
	
</mx:Application>
XML
<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
		 add="addedHandler(event)" 
		 creationComplete="creationCompleteHandler(event)"
		 styleName="vbox"
		 filters="{calcFilters(app().roamer.currentItem, data as Item)}" >
	<mx:Style>
		.vbox
		{
			text-align:center;
			vertical-align:middle;
		}
		.hbox
		{
			text-align:center;
		}
	</mx:Style>
	<mx:Script>
		<![CDATA[
			import flash.net.navigateToURL;
			import com.adobe.flex.extras.controls.springgraph.Graph;
			import com.adobe.flex.extras.controls.springgraph.Item;
			
			import mx.controls.Alert;
			import mx.controls.Image;
			import mx.core.Application;
			import mx.effects.Glow;
			import mx.events.FlexEvent;
			
			//宽度
			public var itemHeight:int=0;
			//高度
			public var itemWidth:int=0;
			//链接宽度
			public var itemLinkWidth:int=0;
			//链接高度
			public var itemLinkHeight:int=0;

			//链接图片
			[Bindable]
			public var linkIconImageUrl:String;
			
			public var currentItem:Item;
			
			public function doubleClick(event: Event): void {
				currentItem=data as Item;
				app().itemDoubleClick(event,data as Item);
			}
			
			private function app(): main {
				return Application.application as main;
			}
			
			//初始化事件
			protected function addedHandler(event:Event):void
			{
				// 画背景图片和高度
				var item:Item=data as Item;
				currentItem=item;
				var itemType:int= item.data.@itemtype;
				var image:Image=app().itemImage(itemType);
				
				itemWidth=image.contentWidth;
				itemHeight=image.contentHeight;
				
				this.width=itemWidth;
				this.height=itemHeight;
				
				/*
				var bitMap:Bitmap=image.content as Bitmap;

				var mtr:Matrix=new Matrix();
				mtr.tx=itemWidth;
				mtr.ty=itemHeight;
				graphics.beginBitmapFill(bitMap.bitmapData,mtr);
				graphics.drawRect(0,0,itemWidth,itemHeight);
				graphics.endFill();
				*/
				var currentItem:Item= app().roamer.currentItem;
				this.setStyle("backgroundImage",app().GetImageURL(itemType));
				//linkIconImage=(app().itemImage(-1)).content;
				linkIconImageUrl= app().GetImageURL(-1);
			}

			//加载完成时间
			protected function creationCompleteHandler(event:FlexEvent):void
			{
				//宽度
				//itemText.width=itemWidth-linkIcon.width-10;
				var text:String=(data as Item).data.@prop;
				var maxFontLength:int=7;
				var tempText:String=text;
				if(text.length>maxFontLength)
				{
					tempText= text.substr(0,maxFontLength);
					tempText+="...";
				}
				itemText.text= tempText;
			}
			protected function linkIcon_clickHandler(event:MouseEvent,item:Item):void
			{
			    app().openResource(item.data as XML);
			}
			private function calcFilters(currentItem: Item, item: Item): Array {
				if(app().roamer.currentItem == item) {
					this.setStyle("backgroundImage",app().GetImageURL(1));
				} 
				else  {
					var itemType:int= item.data.@itemtype;
					this.setStyle("backgroundImage",app().GetImageURL(itemType));
				} 
				return null;
			}
		]]>
	</mx:Script>
	<mx:HBox styleName="hbox">
		<mx:Spacer width="100%" />
		<mx:Image id="linkIcon" click="linkIcon_clickHandler(event,data as Item)" verticalAlign="middle" 
			source="{linkIconImageUrl}" toolTip="点击浏览知识" buttonMode="true" useHandCursor="true"  />
		<mx:Text fontSize="13" id="itemText" textAlign="left" toolTip="{data.data.@prop}" 
			color="#ffffff" fontWeight="bold" selectable="false"/>
		<mx:Spacer width="100%" />
	</mx:HBox>
</mx:VBox>

JavaScript
/*
*
* RelationViewer constructor (name of swf, name of placeholder)
*
*/

window.RelationViewer = function(swfname, placeholder) {
    //暂不使用
    var swfVersionStr = "9.0.0";
    var xiSwfUrlStr = "playerProductInstall.swf";
    var flashvars = {};
    var params = {};
    params.quality = "high";
    params.bgcolor = "#ffffff";
    params.allowscriptaccess = "sameDomain";
    params.allowfullscreen = "true";
    var attributes = {};
    attributes.id = "Main";
    attributes.name = "Main";
    attributes.align = "middle";
    swfobject.embedSWF(
                swfname, placeholder,
                "100%", "100%",
                swfVersionStr, xiSwfUrlStr,
                flashvars, params, attributes);
    swfobject.createCSS("#" + placeholder, "display:block;text-align:left;");

};
window.FlashRoamerGetData = function(parentId, nodeXml) {
    var xmlInfo = "<graph>";
    var riId = "";
    if (parentId == "-") {
        var title = "附件测试";//unescape($request("RITitle"));
        riId = "86b20851-6788-4d01-ace5-3401c332eb96";//$request("RIId")
        xmlInfo += '<node id="-" prop="' + title + '" itemtype="0" riid="'+riId+'"/>';
    }
    else {
        var xmlDoc = new XMLDOMDocument();
        xmlDoc.loadXML(nodeXml);
        riId = unescape(xmlDoc.documentElement.getAttribute("riid"));
    }
    var respone = DisplayAjax.RelationResource(riId);
    if (respone.error) {
        alert(respone.error);
    }
    else {
        if (respone.value != null) {
            var result = eval("(" + respone.value + ")");
            var relationDt = result.relation;

            for (var i = 0; i < relationDt.Rows.length; i++) {
                var random = (new Date()).getTime();
                var row = relationDt.Rows[i];
                var resourceid = unescape(row.resourceid);
                var resourcename = unescape(row.resourcename);
                xmlInfo += '<node id="' + random + "_" + resourceid + '" prop="' + resourcename + '" itemtype="2" riid="' + resourceid + '" />';
                xmlInfo += '<edge fromID="' + parentId + '" toID="' + random + "_" + resourceid + '" />';

            }
            var byRelationDt = result.byrelation;
            
            for (var i = 0; i < byRelationDt.Rows.length; i++) {
                var random = (new Date()).getTime();
                var row = byRelationDt.Rows[i];
                var resourceid = unescape(row.resourceid);
                var resourcename = unescape(row.resourcename);
                xmlInfo += '<node id="' + random + "_" + resourceid + '" prop="' + resourcename + '" itemtype="3" riid="' + resourceid + '" />';
                xmlInfo += '<edge fromID="' + parentId + '" toID="' + random + "_" + resourceid + '" />';

            }
            
        }
    }
    xmlInfo += "</graph>";
    return xmlInfo;
}
window.FlashRoamerGetDataExample = function(parentId) {
    var xmlInfo = "<graph>";
    if (parentId == "-") {
        xmlInfo += '<node id="-" prop="中华人民共和国" itemtype="0"/>' +
							'<node id="2" prop="北京" itemtype="2" />' +
							'<node id="3" prop="上海" itemtype="2" />' +
							'<node id="4" prop="天津" itemtype="3" />' +
							'<node id="5" prop="河南" itemtype="2"/>' +
							'<node id="6" prop="澳门" itemtype="3"/>' +
							'<node id="7" prop="香港" itemtype="3"/>' +
							'<edge fromID="-" toID="2"/>' +
							'<edge fromID="-" toID="3"/>' +
							'<edge fromID="-" toID="4" />' +
							'<edge fromID="-" toID="5" />' +
							'<edge fromID="-" toID="6" />' +
							'<edge fromID="-" toID="7" />';
    }
    else {
        xmlInfo += '<node id="' + parentId + '_1" prop="青州" itemtype="2"/>' +
							'<node id="' + parentId + '_2" prop="沧州" itemtype="2"/>' +
							'<node id="' + parentId + '_3" prop="孟州" itemtype="3"/>' +
							'<node id="' + parentId + '_4" prop="徐州" itemtype="3"/>' +
							'<edge fromID="' + parentId + '" toID="' + parentId + '_1" />' +
							'<edge fromID="' + parentId + '" toID="' + parentId + '_2" />' +
							'<edge fromID="' + parentId + '" toID="' + parentId + '_3" />' +
							'<edge fromID="' + parentId + '" toID="' + parentId + '_4" />';
    }
    xmlInfo += "</graph>";
    return xmlInfo;
}
window.FlashRoamerGetImageUrl = function(type) {
    var url = document.location.protocol + "//" + document.location.host;
    switch (type) {
        case -1:
            //链接图片
            url += "/App_Skins/Common/RMS/browse_file.gif";
            break;
        case 0:
            //根图片
            url += "/App_Skins/Common/RMS/bg01.gif";
            break; 
        case 1:
            //当前图片
            url += "/App_Skins/Common/RMS/bg02.gif";
            break;
        case 2:
            //相关
            url += "/App_Skins/Common/RMS/bg03.gif";
            break;
        case 3:
            //被关联
            url += "/App_Skins/Common/RMS/bg04.gif";
            break;
       	case 100:
       		url += "/App_Skins/Common/RMS/color01.gif";
       		break;
       	case 101:
       		url += "/App_Skins/Common/RMS/color02.gif";
       		break;
       	case 102:
       		url += "/App_Skins/Common/RMS/color03.gif";
       		break;
       	case 103:
       		url += "/App_Skins/Common/RMS/color04.gif";
       		break;
        default:
            break;
    }
    return url;
}
window.FlashRoamerGetImageTitle=function(type)
{
	var title="";
    switch (type) {
       	case 100:
       		title="根元素";
       		break;
       	case 101:
       		title="当前元素";
       		break;
       	case 102:
       		title="关联元素";
       		break;
       	case 103:
       		title="被关联元素";
       		break;
        default:
            break;
    }
    return title;
}
window.FlashRoamerBrowse = function(nodeXml) {
    alert("浏览知识" + nodeXml);
} 
 //取得顶层窗口
    if(!window.$request) 
    {
        window.$request = function(name)
        {
            try
            {
                var reg = new RegExp("(^|&)" + name+ "=([^&]*)(&|$)","i");
                var r = window.location.search.substr(1).match(reg);
                if(r!=null)
                {
                    return unescape(r[2]);
                }
            }
            catch(e){}
            return null;
        }
    };    
    
//-------------------------------------------------
//-- 说明:浏览器DOM对象
//-------------------------------------------------
window.XMLDOMDocumentLastClsID = null;
if(!window.XMLDOMDocument) {

	function getXmlDOMDocument(clsid) {
		var xmlDoc = null;
		try {
			xmlDoc = new ActiveXObject(clsid);
			window.XMLDOMDocumentLastClsID = clsid;
		} catch(ex) {};
		return xmlDoc;
	};
	
	window.XMLDOMDocument = function() {
	    var xmlDoc = null;
	    if (window.ActiveXObject) 
	    {
		    if(window.XMLDOMDocumentLastClsID != null) {
			    return getXmlDOMDocument(window.XMLDOMDocumentLastClsID);
		    }
		    var clsids = [
 						    "MSXML2.DOMDocument",
						    "Microsoft.XmlDom"
					     ];

		    for(var i=0; i<clsids.length && xmlDoc == null; i++) {
			    xmlDoc = getXmlDOMDocument(clsids[i]);
		    }
		}
	    else 
	    {
		    if (document.implementation&&document.implementation.createDocument)
		    {
				xmlDoc =  document.implementation.createDocument("","",null);
			}
		}
		if(xmlDoc == null) {
			alert("XML is not installed");
			return null;
		}
 	    xmlDoc.async = false;
	    //为了和FireFox一至,这里不能改为False;
	    xmlDoc.preserveWhiteSpace=true;

 		return xmlDoc;
	};
};

Generalencoding2 Pin
creend9-Feb-11 21:07
creend9-Feb-11 21:07 
Generalencoding Pin
creend9-Feb-11 16:16
creend9-Feb-11 16:16 
Generalwindow.open post Pin
creend5-Jul-10 22:29
creend5-Jul-10 22:29 
Generalsc Pin
creend3-Nov-09 19:40
creend3-Nov-09 19:40 
GeneralRe: sc Pin
creend28-Jan-10 16:38
creend28-Jan-10 16:38 
GeneralTJ2R3-WHW22-B848T-B78YJ-HHJWJ Pin
creend9-Sep-09 21:32
creend9-Sep-09 21:32 
Generalhttp://go2.microsoft.com/fwlink/?LinkID=87096&amp;errorID=1603&amp;component=dev Pin
creend26-Jul-09 19:43
creend26-Jul-09 19:43 
GeneralAboutScript Pin
creend1-Jul-09 23:16
creend1-Jul-09 23:16 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.