【问题标题】:How add event listener to Figma currentPage如何将事件监听器添加到 Figma currentPage
【发布时间】:2019-12-27 17:36:26
【问题描述】:

我使用 figma-api 和 TypeScript 为 Figma 编写了带有 UI 的插件。 项目由两个主要文件组成:

  • code.ts 用于呼叫figma-api

  • ui.html<script>...</script> 与插件的用户界面。

我的插件正在处理当前页面上的选择数据,所以我从code.ts 发送到ui 例如这个对象的数据:

figma.currentPage.selection[0]

如何将事件监听器添加到figma.currentPage?例如,如果用户在 figma board 上选择了其他元素,figma.currentPage.selection 将发生变化,我想将新数据发送到ui

你有什么想法吗?

【问题讨论】:

标签: typescript dom-events figma-api


【解决方案1】:

我想这就是答案。

figma.on('selectionchange', () => {
  console.log(figma.currentPage.selection);
});

https://www.figma.com/plugin-docs/api/properties/figma-on/

【讨论】:

    【解决方案2】:

    可能不是最好的方法,而是一种有效的快速破解方法。我正在寻找相同的答案,但现在,我这样做了。

    基本上,分配一个初始变量层。然后,每隔几秒钟检查一次更改,如果 var 与以前的 var 不同,则分配一个新的。

    我希望这会有所帮助,直到我们找到一种正常的方法。

        var selected;
    
        selected = figma.currentPage.selection[0];
    
        setInterval(() => {
    
          var selectedNew = figma.currentPage.selection[0];
    
          if (selected != selectedNew) {
    
            selected = selectedNew;
    
          }
    
        }, 3000)
    

    【讨论】:

    • 是的,我也想过,目前看来只能这样了。但我希望有可能以某种方式将其与onclick 联系起来,而无需setInterval
    • 是的,你完全正确。我确实查看了运行应用程序时使用的资源,而且还不错。
    【解决方案3】:

    最好的方法是使用

    figma.on("selectionchange" , () => {
    // insert your code here
    })
    
    

    【讨论】:

    猜你喜欢
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    • 2020-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多