虽然 Blockly 提供许多有用的字段,但您的应用可能具有特殊情况。以下是自定义字段的几个步骤:
自定义字段
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-25。
[null,null,["最后更新时间 (UTC):2025-07-25。"],[[["\u003cp\u003eBlockly offers customization options beyond its built-in fields, allowing developers to tailor fields to their specific needs.\u003c/p\u003e\n"],["\u003cp\u003eBefore creating a new field type, explore existing fields, validators, and extension capabilities for potential solutions.\u003c/p\u003e\n"],["\u003cp\u003eLeverage validators to control accepted values, modify input, or trigger actions based on field value changes.\u003c/p\u003e\n"],["\u003cp\u003eExtend existing fields to modify their editor, appearance, or displayed text while inheriting core functionality.\u003c/p\u003e\n"],["\u003cp\u003eCreating a new field type is the most powerful but time-intensive option, reserved for storing new value types.\u003c/p\u003e\n"]]],["Customizing Blockly fields involves several steps: First, review documentation of similar fields for potential customization options. Second, use validators to control accepted values, modify input, or trigger actions upon value changes. Third, extend existing fields by creating subclasses to modify their editor, appearance, or displayed text. Finally, create a new field type for storing novel value types, though this is the most complex option.\n"],null,["# Custom fields\n\nWhile Blockly provides many useful fields, your application may have a\nspecialized case. Here are a few steps to take when customizing fields:\n\n1. Read the documentation of any fields similar to what you require; they may\n provide a useful interface for customization. For example,\n [dropdowns](/blockly/guides/create-custom-blocks/fields/built-in-fields/dropdown) have a lot of hidden functionality.\n\n2. Consider using a [validator](/blockly/guides/create-custom-blocks/fields/validators) to solve your problem.\n Validators allow you to only accept certain values, modify input, or trigger\n functionality when a field's value changes.\n\n3. Consider [extending a field](/blockly/guides/create-custom-blocks/fields/customizing-fields/extending).\n If there is a field that represents the value type you require, but you want to\n modify its [editor](/blockly/guides/create-custom-blocks/fields/anatomy-of-a-field#editor_display), its\n [appearance](/blockly/guides/create-custom-blocks/fields/anatomy-of-a-field#on-block_display), or the\n [text](/blockly/guides/create-custom-blocks/fields/customizing-fields/creating#text) it\n displays, you can [create a subclass](/blockly/guides/create-custom-blocks/fields/customizing-fields/extending#subclassing)\n that inherits the bulk of the functionality, while overriding the specific parts\n you want to change.\n\n4. [Create a new field type](/blockly/guides/create-custom-blocks/fields/customizing-fields/creating).\n While this is the most powerful option, it is also the most time consuming, and\n should generally only be used if you need to store a new value type."]]