Figma插件中如何正确监听页面选中元素的变化?
我在开发一个Figma插件,想监听页面上选中的节点变化,但 on(“selectionchange”) 好像没触发。我查了文档,也试了在 ui.html 里加事件监听,但都没反应。是不是我的写法有问题?
这是我在插件主脚本里的代码:
figma.on('selectionchange', () => {
console.log('Selection changed:', figma.currentPage.selection);
figma.ui.postMessage({ type: 'UPDATE_SELECTION', nodes: figma.currentPage.selection });
});
UI那边用的是简单的 HTML 结构:
<body>
<div id="app">当前选中: <span id="count">0</span> 个元素</div>
<script src="ui.js"></script>
</body>
你可以在发送之前将 Node 对象转换为可以序列化的数据,比如只发送 ID 或者 name。还有就是确保你的 UI 脚本正确地接收了消息。
试试改一下你发消息的部分,只发送节点的 ID 列表:
然后在你的 ui.js 中处理接收到的消息:
这样改过之后应该可以正常工作了。如果还是有问题,检查一下控制台有没有错误信息,有时候会有提示的。