论坛首页 编程语言技术论坛

flex与java通信 实现动态birdeye

浏览 9735 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2011-12-01  
大家好,我是个javaer,现在项目需求有个flex拓补图,我用的是birdeye.查找了半天,找到了相关源码
protected function nodeDoubleClick(e:MouseEvent):void {
			var comp:UIComponent;
			var vnode:IVisualNode;
			
			/* get the view object that was klicked on (actually
			* the one that has the event handler registered, which
			* is the VNode's view */
			comp = (e.currentTarget as UIComponent);
			
			/* get the associated VNode */
			vnode = lookupNode(comp);
			currentNodeId = vnode.node.id;
			//Alert.show(currentNodeId.toString(),"提示");
			var evt:VisualNodeEvent = new VisualNodeEvent(VisualNodeEvent.DOUBLE_CLICK, vnode.node,e.ctrlKey);
			dispatchEvent(evt);
			//LogUtil.debug(_LOG, "double click!");
			
			/* Now we change the root node, we go through
			* our public setter method to get all associated
			* updates done. */
			this.currentRootVNode = vnode;
			//Alert.show("测试双击1","提示");
			//trace("测试双击");
			//LogUtil.debug(_LOG, "currentVNode:"+this.currentRootVNode.id);
			
			/* here we still want to implicitly redraw */
			draw();
		}

这是节点双击事件,其中分发了visualnode双击事件
var evt:VisualNodeEvent = new VisualNodeEvent(VisualNodeEvent.DOUBLE_CLICK, vnode.node,e.ctrlKey);
			dispatchEvent(evt);

以上birdeye源码到里应该很清楚怎么做了
我在传入所需xml字符串里的节点增加监听命令,然后添加方法
"<Node id=\"1\" name=\"wwww\" nodeDoubleClick=\"testdouble(event)\" nodeColor=\"0xaf3a99\" nodeSize=\"30\" nodeIcon=\"center\" />"

protected function testdouble(event:VisualNodeEvent):void
			{
                             //将节点id传给java然后再组成新的xml字符串传给flex,应该就可以实现了动态的birdeye
				Alert.show(event.node.id.toString(),"rjfi");
				
			}



问题是testdouble没有响应,没有alert,为什么?请flex兄弟给小弟解答一下,十分感谢!
   发表时间:2011-12-01  
啊,哈哈,我自己搞定了
0 请登录后投票
   发表时间:2012-02-28  
  你那个是怎么弄的啊。。可以发份给我吗?
我现在也需要搞这个,谢谢,可以发份给我(huxiaolong19870704@163.com)
0 请登录后投票
   发表时间:2012-03-05  
zhtking120 写道
  你那个是怎么弄的啊。。可以发份给我吗?
我现在也需要搞这个,谢谢,可以发份给我(huxiaolong19870704@163.com)

呵呵,你只需要分发节点双击事件。birdeye的节点双击事件叫DisualNodeEvent.DOUBLE_CLICK,方式是
vgraph.addEventListener(VisualNodeEvent.DOUBLE_CLICK,nodeDoubleClick);
然后编写nodeDoubleClick的方法就行了
0 请登录后投票
   发表时间:2012-05-24  
高手。如何将节点设置在指定X,Y 位置啊,图形出来了,都是居中的。
0 请登录后投票
   发表时间:2012-05-26  
vgraph.graph = graph;
layouter = new CircularLayouter(vgraph);
vgraph.layouter = layouter;

这段代码就是指定graph是以什么样式进行展现。除了circularLayouter外,还有其它的方式,你可以在源代码和文档里找找,一一试下。
位于org.un.cava.birdeye.ravis.graphLayout.layout
0 请登录后投票
   发表时间:2012-05-26  
yuqihui 写道
高手。如何将节点设置在指定X,Y 位置啊,图形出来了,都是居中的。

vgraph.graph = graph;
layouter = new CircularLayouter(vgraph);
vgraph.layouter = layouter;

这段代码就是指定graph是以什么样式进行展现。除了circularLayouter外,还有其它的方式,你可以在源代码和文档里找找,一一试下。
位于org.un.cava.birdeye.ravis.graphLayout.layout
0 请登录后投票
   发表时间:2012-05-27  
多谢 试试看
0 请登录后投票
   发表时间:2012-11-15  
jinsm 写道
zhtking120 写道
  你那个是怎么弄的啊。。可以发份给我吗?
我现在也需要搞这个,谢谢,可以发份给我(huxiaolong19870704@163.com)

呵呵,你只需要分发节点双击事件。birdeye的节点双击事件叫DisualNodeEvent.DOUBLE_CLICK,方式是
vgraph.addEventListener(VisualNodeEvent.DOUBLE_CLICK,nodeDoubleClick);
然后编写nodeDoubleClick的方法就行了


大侠,我想问一下啊,如果我想注销节点的双击事件,该怎么做啊?
0 请登录后投票
   发表时间:2012-11-16  
你好,为了不让节点显示的那么密,我想采用同心圆分层显示,如下图,那么我如何来控制节点之间连线的长度呢?

  • 大小: 39.4 KB
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics