View unanswered posts | View active topics It is currently 2019-10-19 1:22



Reply to topic  [ 5 posts ] 
 有没有通过右击菜单,给当前节点添加连线的DEMO 
Author Message
新手上路

Joined: 2019-02-24 11:25
Posts: 9
Post 有没有通过右击菜单,给当前节点添加连线的DEMO
右击node出现添加连线菜单,点击菜单后,移动鼠标出现一条连线,一端和刚才所点的节点相连,一端跟随鼠标移动,再次点击另一个节点,捕获起始节点,然后再创建连线,这个效果该怎么实现?????为什么都没有开发人员回答我?买了产品,怎么才可以受到技术支持呢? :sigh: :sigh: :sigh:


2019-03-05 12:14
Profile
新手上路

Joined: 2019-02-24 11:25
Posts: 9
Post Re: 有没有通过右击菜单,给当前节点添加连线的DEMO
按照这个思路,获取起始节点,自定义菜单,绑定事件,对我来说都没有问题,我想知道点击添加连线按钮怎么能实现像工具栏中添加连线的效果(移动鼠标出现一条连线,一端和刚才所点的节点相连,一端跟随鼠标移动,再次点击另一个节点,捕获起始节点,然后再创建连线)


2019-03-05 12:17
Profile
TWaver开发组
User avatar

Joined: 2018-04-16 16:11
Posts: 164
Post Re: 有没有通过右击菜单,给当前节点添加连线的DEMO
您好!

您是在论坛上进行提问的吗?我看了一下您的发帖记录,您的每个帖子下面,都有技术人员针对您提出的问题的回复记录,并没有出现您说的问了问题一直没人回复的情况。

而且,处理问题一般是有时效性的。

正常情况下,我们一般会在 3 个工作日内给出回复。因为有些问题处理起来没有表面上看起来那么简单,我们需要通过不断的尝试,找出最优的解决方案,然后才能提供给您,希望您谅解。

————————

至于您这个贴子中提出的问题,解决方式如下:

1. 点击对应菜单按钮的时候,开启连线模式:
Code:
network.setCreateLinkInteractions(twaver.Link);


2. 拿到对应的 CreateLinkInteraction 的实例:
Code:
// 获取 createLinkInteractionInstance 实例
    function getCreateLinkInteractionInstance(arr) {
        var target;
        arr.forEach(function(element, index) {
            if (element instanceof twaver.vector.interaction.CreateLinkInteraction) {
                target = element;
            }
        })

        return target;
    }


3. 然后将上一个方法获取的 LinkInteractionInstance 实例的 fromNode 设置为 目标网元
Code:
instance.fromNode = target;


4. 然后就会出来了默认的那种效果,之后点击 toNode,创建完连线以后,将 interaction 重置回 defaultInteractions,通过监听
Code:
box.addDataBoxChangeListener(function(e) {
    let { kind, data } = e;
    // 如果是添加
    if (kind === "add") {
        if(getCreateLinkInteractionInstance(network.getInteractions()) && data instanceof twaver.Link){
            network.setDefaultInteractions();
        }
    }
})


2019-03-05 14:58
Profile
新手上路

Joined: 2019-02-24 11:25
Posts: 9
Post Re: 有没有通过右击菜单,给当前节点添加连线的DEMO
不好意思,3-->4步骤,我不是很清楚你描述的,3中instance是怎么拿到的?4中你说的,出来默认的效果,是指连线一端在起始节点上,另一段跟随鼠标吗?我结合了你跟我发的邮件,基本实现了想要的效果,目前效果是这样的:我右击节点,出现了菜单,点击菜单,然后点击节点,出现连线一端在起始节点上,另一段跟随鼠标,然后点击另一个节点,创建了连线,
但是我想要的是:右击节点,出现菜单,然后点击菜单之后,就出现连线一端在刚才的右击节点上,另一段跟随鼠标,然后点击另一个节点,创建连线,
也就是说,希望点击菜单之后,就直接选使用当前节点作为起始节点,而不用再次点击该节点

非常感谢你的回复,谢谢


2019-03-06 11:39
Profile
TWaver开发组
User avatar

Joined: 2018-04-16 16:11
Posts: 164
Post Re: 有没有通过右击菜单,给当前节点添加连线的DEMO
huozming wrote:
不好意思,3-->4步骤,我不是很清楚你描述的,3中instance是怎么拿到的?4中你说的,出来默认的效果,是指连线一端在起始节点上,另一段跟随鼠标吗?我结合了你跟我发的邮件,基本实现了想要的效果,目前效果是这样的:我右击节点,出现了菜单,点击菜单,然后点击节点,出现连线一端在起始节点上,另一段跟随鼠标,然后点击另一个节点,创建了连线,
但是我想要的是:右击节点,出现菜单,然后点击菜单之后,就出现连线一端在刚才的右击节点上,另一段跟随鼠标,然后点击另一个节点,创建连线,
也就是说,希望点击菜单之后,就直接选使用当前节点作为起始节点,而不用再次点击该节点

非常感谢你的回复,谢谢


您好!

第三步中的 instance 就是 createLinkInteractions 的实例,也就是通过第二步里面的方法拿到的,返回的 target 就是这个 instance。

直接将目标节点设为这个 instance 上的 fromNode 属性,就会省去点击起始节点这一步骤,这一步就是在设置起始节点。


2019-03-06 12:32
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 5 posts ] 

Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron