最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2021年08月13日 11:26:01   作者:取個(gè)昵稱就那么難  
scratch-blocks是scratch-gui依賴的一個(gè)基本模塊,blocks的作用是通過拖曳的方法組成blocks堆塊,今天通過本文給大家分享scratch3.0二次開發(fā)之scratch-blocks的免編譯修改方法,感興趣的朋友一起看看吧

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

在這里插入圖片描述

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

blocks幾種形狀

blocks塊的形狀有以下幾種:

形狀名稱
shape_statement
shape_hat
shape_end
shape_statement
output_boolean
output_number
output_string

一個(gè)blocks塊的定義

比如一個(gè)右轉(zhuǎn)多少度的塊

在這里插入圖片描述

定義塊的代碼:

Blockly.Blocks['motion_turnright'] = {
  /**
 * Block to turn right.
 * @this Blockly.Block
   */
  init: function() {
    this.jsonInit({
      "message0": “右轉(zhuǎn) %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,//塊歸屬的類,這里是運(yùn)動(dòng)類。
      "extensions": ["colours_motion", "shape_statement"]
    });
  }
};

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

在這里插入圖片描述

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

blocks塊的使用

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

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

motion_turnright 這是剛定義好的塊。value 標(biāo)簽中的name,表示變量名,在scratch-vm里面會(huì)用到,shadow標(biāo)簽這段表示預(yù)先設(shè)置的值,也是預(yù)先設(shè)置的塊。去掉value這段代碼

<block type="motion_turnright"> </block>

它顯示成這樣:

在這里插入圖片描述

scratch-blocks的編譯

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

補(bǔ)充

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

總的思路:

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

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

相關(guān)文章

  • URL 長度有限制嗎?

    URL 長度有限制嗎?

    眾所周知, 傳遞小量參數(shù)(在沒有其他原因,例如隱藏參數(shù)值的情況下)推薦使用GET方法,傳遞大量參數(shù)推薦使用POST方法。原因是什么呢?
    2009-06-06
  • HTTP協(xié)議詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    HTTP協(xié)議詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了HTTP協(xié)議詳解,超文本傳輸協(xié)議(HTTP)是一種通信協(xié)議,它允許將超文本標(biāo)記語言(HTML)文檔從Web服務(wù)器傳送到客戶端的瀏覽器
    2017-07-07
  • 網(wǎng)站性能優(yōu)化之HTTP請(qǐng)求過程簡(jiǎn)述

    網(wǎng)站性能優(yōu)化之HTTP請(qǐng)求過程簡(jiǎn)述

    網(wǎng)站性能優(yōu)化中首要的一條就是要減少HTTP請(qǐng)求,那么為要減少HTTP請(qǐng)求呢?其實(shí)有些HTTP分析工具可以幫我們了解當(dāng)瀏覽器請(qǐng)求一個(gè)資源時(shí)大致需要經(jīng)歷的哪些過程
    2011-12-12
  • vscode怎么編譯運(yùn)行

    vscode怎么編譯運(yùn)行

    本文給大家分享的是vscode怎么一鍵編譯運(yùn)行的方法,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下
    2020-02-02
  • Hybris在idea中debug配置方法詳解

    Hybris在idea中debug配置方法詳解

    這篇文章主要介紹了Hybris在idea中debug配置方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 重裝win10系統(tǒng)超詳細(xì)的圖文教程(適用所有windows系統(tǒng))

    重裝win10系統(tǒng)超詳細(xì)的圖文教程(適用所有windows系統(tǒng))

    這篇文章主要介紹了重裝win10系統(tǒng)超詳細(xì)的圖文教程(適用所有windows系統(tǒng)),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Git基礎(chǔ)學(xué)習(xí)之tag標(biāo)簽操作詳解

    Git基礎(chǔ)學(xué)習(xí)之tag標(biāo)簽操作詳解

    標(biāo)簽對(duì)象(tag?object)?非常類似于一個(gè)提交對(duì)象,它包含一個(gè)標(biāo)簽創(chuàng)建者信息、一個(gè)日期、一段注釋信息,以及一個(gè)指針。本文主要介紹了Git標(biāo)簽tag的一些基礎(chǔ)操作,需要的可以參考一下
    2022-10-10
  • Scala 環(huán)境搭建及IDEA工具的配置使用教程

    Scala 環(huán)境搭建及IDEA工具的配置使用教程

    這篇文章主要介紹了Scala 之 環(huán)境搭建 及 工具IDEA的配置使用,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Websocket直播間聊天室教程  GoEasy快速實(shí)現(xiàn)聊天室

    Websocket直播間聊天室教程 GoEasy快速實(shí)現(xiàn)聊天室

    這篇文章主要介紹了Websocket直播間聊天室教程 GoEasy快速實(shí)現(xiàn)聊天室,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • TCP協(xié)議詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    TCP協(xié)議詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    本文描述了TCP協(xié)議,首先簡(jiǎn)單介紹了TCP完成了一些什么功能;介紹了TCP報(bào)文格式,以及典型報(bào)文的數(shù)據(jù)格式。現(xiàn)在通過本文給大家詳細(xì)介紹,感興趣的的朋友一起看看吧
    2017-07-07

最新評(píng)論

辽中县| 西城区| 扶绥县| 韶关市| 鸡东县| 光山县| 石嘴山市| 紫云| 临沂市| 铜陵市| 白水县| 乐陵市| 富宁县| 富川| 云霄县| 定日县| 固阳县| 屏山县| 循化| 册亨县| 罗甸县| 祁阳县| 枞阳县| 玉溪市| 都江堰市| 兰西县| 三原县| 浏阳市| 东乌珠穆沁旗| 桃园市| 苍南县| 博罗县| 墨竹工卡县| 团风县| 海南省| 沈阳市| 白玉县| 北海市| 嘉善县| 桃源县| 汪清县|