濮阳杆衣贸易有限公司

主頁 > 知識庫 > 詳解scratch3.0二次開發(fā)之scratch-blocks中的blocks的類型、定義和使用方法

詳解scratch3.0二次開發(fā)之scratch-blocks中的blocks的類型、定義和使用方法

熱門標簽:谷歌地圖標注日期 外呼系統(tǒng)怎么群發(fā)短信 400電話辦理費用低 宿遷怎么辦理400電話 聯(lián)通外呼系統(tǒng)電腦app軟件 蘇州呼叫中心外呼系統(tǒng)哪家強 地圖標注項目幾個月 400電話申請到底哪家好 鶴壁高頻外呼系統(tǒng)多少錢一個月

scratch-blocks是scratch-gui依賴的一個基本模塊。它的作用是生成gui界面上的blocks。(有關scratch-blocks的方法可以看我上一篇博客《scratch3.0二次開發(fā)之scratch-blocks的免編譯修改方法》)。blocks的作用是通過拖曳的方法組成blocks堆塊,點擊greenflag控件,舞臺區(qū)(stage)會有相應的變化。

scratch-gui的blocks的生成文件在scratch-blocks\blocks_vertical里。

blocks幾種形狀

blocks塊的形狀有以下幾種:

形狀名稱
shape_statement
shape_hat
shape_end
shape_statement
output_boolean
output_number
output_string

一個blocks塊的定義

比如一個右轉多少度的塊

定義塊的代碼:

Blockly.Blocks['motion_turnright'] = {
  /**
 * Block to turn right.
 * @this Blockly.Block
   */
  init: function() {
    this.jsonInit({
      "message0": “右轉 %1 %2 度”,
      "args0": [
        {
          "type": "field_image",
          "src": Blockly.mainWorkspace.options.pathToMedia + "rotate-right.svg",
          "width": 24,
          "height": 24
        },
        {
          "type": "input_value",
          "name": "DEGREES"
        }
      ],
      "category": Blockly.Categories.motion,//塊歸屬的類,這里是運動類。
      "extensions": ["colours_motion", "shape_statement"]
    });
  }
};

“message0“:表示塊里顯示的字符串,%1,%2表示塊里的字段field,塊里有1個field是%1,有兩個field是按先后順序設為%1,%2,以此類推,
”args0”:里面的數(shù)組元素對應上面設置的field,args0[0]對應%1,args0[1]對應%2,…。每個元素對象表示設置了的field的類型。

“extensions”:"colours_motion"設置塊的顏色,"shape_statement"設置了塊的形狀;

blocks塊的使用

定義好的block塊,使用的時候要把加到xml文件里,文件地址:scratch-gui\src\lib\make-toolbox-xml.js,找到對應的類,這里是motion.

block type="motion_turnright">
            value name="DEGREES">
                shadow type="math_number">
                    field name="NUM">15/field>
                /shadow>
            /value>
        /block>

motion_turnright 這是剛定義好的塊。value 標簽中的name,表示變量名,在scratch-vm里面會用到,shadow標簽這段表示預先設置的值,也是預先設置的塊。去掉value這段代碼

block type="motion_turnright"> /block>

它顯示成這樣:

scratch-blocks的編譯

scratch-blocks修改后的文件,只有編譯壓縮后才能生效。但是按照官方的方法,windows下很難編譯成功。如果是定義blocks塊,可以參考上篇博客里介紹的方法《scratch3.0二次開發(fā)之scratch-blocks的免編譯修改方法》

補充

下面看下scratch3.0二次開發(fā)之blocks生成代碼思路

總的思路:

  1. 引入一個生成代碼的文件,比如要生成arduino代碼,就要引入生成arduino代碼的文件,要生成python代碼,就要引入python文件。
  2. 如果scratch-block中沒有自己要的blocks塊,就定義一個blocks塊用來生成代碼。(生成的方法可以看我之前的文章《[scratch3.0二次開發(fā)之scratch-blocks中的blocks的類型、定義和使用方法])》
  3. 給每個blocks定義要生成的代碼。
  4. 把生成代碼的代碼blocks塊加入make-toolbox-xml 中。
  5. 在gui中設置一個代碼編輯區(qū),用來顯示生成的代碼。

到此這篇關于scratch3.0二次開發(fā)之scratch-blocks的免編譯修改方法的文章就介紹到這了,更多相關scratch blocks的免編譯內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • scratch3.0二次開發(fā)之用blocks生成python代碼
  • Scratch3.0二次開發(fā)之windows環(huán)境下打包成exe的流程
  • Scratch3.0 頁面初始化同時加載sb3文件的操作代碼
  • 解析scratch3.0二次開發(fā)之scratch-blocks免編譯修改問題

標簽:鄂爾多斯 雙鴨山 莆田 丹東 襄陽 遵義 哈爾濱 錫林郭勒盟

巨人網(wǎng)絡通訊聲明:本文標題《詳解scratch3.0二次開發(fā)之scratch-blocks中的blocks的類型、定義和使用方法》,本文關鍵詞  詳解,scratch3.0,二次,開,發(fā)之,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解scratch3.0二次開發(fā)之scratch-blocks中的blocks的類型、定義和使用方法》相關的同類信息!
  • 本頁收集關于詳解scratch3.0二次開發(fā)之scratch-blocks中的blocks的類型、定義和使用方法的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    乡城县| 额敏县| 沙雅县| 四子王旗| 连州市| 罗城| 临西县| 佳木斯市| 临泽县| 龙江县| 荃湾区| 大洼县| 周口市| 靖安县| 施甸县| 河曲县| 淳安县| 罗定市| 怀宁县| 桐柏县| 方正县| 凉城县| 合川市| 洞头县| 肥西县| 昭平县| 栾城县| 沁阳市| 台中市| 仪陇县| 苏尼特右旗| 南阳市| 淮安市| 赤城县| 桃江县| 班玛县| 罗平县| 广西| 沙洋县| 安平县| 岳西县|