建立新的轉譯器

如要建立自訂轉譯器,您必須將 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',
});