研究调查问卷:请告诉我们您使用 Blockly 的体验
开始调查问卷
创建自定义渲染程序
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
如需创建自定义渲染程序,您需要对 Renderer
类进行子类化。如需详细了解渲染程序的定义及其用途,请参阅渲染程序概念文档。
class CustomRenderer extends Blockly.blockRendering.Renderer {
constructor() {
super();
}
}
未进行任何自定义时,默认渲染程序如下所示:
您还可以对其他某个内置渲染程序进行子类化,然后替换其部分内容。
class CustomRenderer extends Blockly.thrasos.Renderer {
constructor() {
super();
}
}
派生其他渲染程序组件
块的实际形状由渲染程序的子组件决定。
默认情况下,Renderer
类提供所有渲染程序组件的有效版本。这样,您就可以修改单个组件,而无需担心其他组件。
例如,如果您想更改连接的形状,可以替换常量,而无需更改其他组件。
如需详细了解每个单独组件的作用,请参阅渲染程序组件文档。
替换工厂方法
在对渲染程序组件进行子类化后,您需要为您子类化的组件替换 Renderer
的工厂方法。这样,渲染程序就可以正确地将不同的组件连接在一起。
每种组件都有对应的方法:
注册渲染程序
最后,完成自定义渲染程序的创建后,您需要对其进行注册。这会将渲染程序与字符串相关联,以便您将其传递给配置选项。
Blockly.blockRendering.register('custom_renderer', CustomRenderer);
const workspace = Blockly.inject(blocklyDiv, {
renderer: 'custom_renderer',
});
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-06-13。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-06-13。"],[[["To create custom renderers in Blockly, you need to subclass the `Renderer` class and potentially its subcomponents like constants, render info, path objects, and drawers."],["Custom renderers allow you to change the visual appearance of blocks, including connection shapes and overall block structure, by overriding factory methods for specific components."],["After creating the custom renderer, register it with a unique string using `Blockly.blockRendering.register()` to use it within your workspace configuration."],["Before starting with custom renderers, it's recommended to review the renderer concept documentation and complete the custom renderers codelab for foundational knowledge."]]],[]]