婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 解析scratch3.0二次開發之scratch-blocks免編譯修改問題

解析scratch3.0二次開發之scratch-blocks免編譯修改問題

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

scratch-blocks編譯的時候會出現的問題:scratch-gui依賴的scratch-blocks模塊在安裝的時候編譯會報錯。

原因:scratch-blocks編譯時要調用的build.py文件運行時發生錯誤。windowst系統下,代碼壓縮的過程是build.py通過一個closure-library的插件處理后,發送到谷歌的服務器進行壓縮,返回的結果會生成blocks_compressed.js,blocks_compressed_horizontal.js,blocks_compressed_vertical.js這幾個文件。(linux系統下,有網友反映會編譯成功的。)build.py運行時,因為window系統在574行處要處理大量的信息流,所以導致錯誤發生。但即便成功,因為之后要把代碼發送到國內經常訪問不到的谷歌服務器,所以也會經常編譯失敗。這種方法每修改一次代碼就要編譯一次,效率比較低,比較耗時。

有沒有種方法不用編譯,就能修改scratch-blocks代碼,而且能即時生效呢?答案是,有的。

scratch3.0是怎么引進scratch-blocks的呢?在scratch-gui的源文件src\containers\blocks.jsx中,引入了scratch-blocks,

import VMScratchBlocks from '../lib/blocks';

嗯…這是經過修改后的blocks,我們再順著調用的路徑,打開文件src\lib\blocks.js,這文件的作用是修改對應的角色(target)塊的菜單項。

第一步,引入scratch-blocks,這是已經編譯好的文件

import ScratchBlocks from 'scratch-blocks';

第二步,根據vm的數據修改blocks的菜單項。比如looks_costume塊的修改代碼如下:

 ScratchBlocks.Blocks.looks_costume.init = function () {
        const json = jsonForMenuBlock('COSTUME', costumesMenu, looksColors, []);
        this.jsonInit(json);
    };

在修改之前,looks_costume塊的菜單項這樣子的:

菜單項是原來在scratch-blocks里定義的,沒有變化。

修改后是這樣子的:

看到沒?菜單項的數據和vm聯系起來了。

再舉個例子吧,比如修改workspace界面在block上右鍵彈出菜單項,我要保留'添加注釋',然后把其他兩項去掉,修改前,右鍵彈出菜單是這樣子的:

在src\lib下創建scratch-blocks-modify文件夾,文件夾里創建了blocks_svg.js文件,從scratch-blocks的core文件夾中找到blocks_svg.js,把其中需要修改的函數代碼復制過來。
修改的blocks_svg.js文件代碼如下 :

export default function(Blockly){
    Blockly.BlockSvg.prototype.showContextMenu_ = function(e) {
        if (this.workspace.options.readOnly || !this.contextMenu) {
            return;
        }
        // Save the current block in a variable for use in closures.
        var block = this;
        var menuOptions = [];
        if (this.isDeletable()  this.isMovable()  !block.isInFlyout) {
            //menuOptions.push(
             //   Blockly.ContextMenu.blockDuplicateOption(block, e)); 這是注釋掉的代碼
            if (this.isEditable()  this.workspace.options.comments) {
                menuOptions.push(Blockly.ContextMenu.blockCommentOption(block));
            }
            //menuOptions.push(Blockly.ContextMenu.blockDeleteOption(block));這是注釋掉的代碼
        } else if (this.parentBlock_  this.isShadow_) {
            this.parentBlock_.showContextMenu_(e);
            return;
        }

        // Allow the block to add or modify menuOptions.
        if (this.customContextMenu) {
            this.customContextMenu(menuOptions);
        }
        Blockly.ContextMenu.show(e, menuOptions, this.RTL);
        Blockly.ContextMenu.currentBlock = this;
    };
}

注意:現在可以使用es6來編寫代碼了。

然后在src\lib\blocks.js文件引入 :

blockSvgModify是導入的函數變量。

最后刷新下界面,修改生效:

方法:知道要修改的scratch-blocks的代碼,然后把代碼復制到一個js文件中修改,作為一個函數導出來,再把ScratchBlock作為參數傳進去,函數返回的就是改過后的scratch-block文件了。

小結:我們可以通過引入scratch-block到一個文件中,在這個文件中修改我們想要修改的scratch-block函數、屬性和方法,再導出來,實現我們想要的效果。而且這種方法是熱修改。和修改react一樣,每次修改會引起gui界面相應的變化,避免反復編譯源文件繁瑣的過程。

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

您可能感興趣的文章:
  • 詳解scratch3.0二次開發之scratch-blocks中的blocks的類型、定義和使用方法
  • scratch3.0二次開發之用blocks生成python代碼
  • Scratch3.0二次開發之windows環境下打包成exe的流程
  • Scratch3.0 頁面初始化同時加載sb3文件的操作代碼

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

巨人網絡通訊聲明:本文標題《解析scratch3.0二次開發之scratch-blocks免編譯修改問題》,本文關鍵詞  解析,scratch3.0,二次,開,發之,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《解析scratch3.0二次開發之scratch-blocks免編譯修改問題》相關的同類信息!
  • 本頁收集關于解析scratch3.0二次開發之scratch-blocks免編譯修改問題的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲精品视频自拍| 国产精品久久精品日日| 国内精品在线播放| 亚洲大片免费看| 一区二区在线观看视频| 一卡二卡三卡日韩欧美| 一区二区三区丝袜| 日本不卡一区二区| 国产一二三精品| 国产精品18久久久久久vr| 国精产品一区一区三区mba视频| 国产亚洲婷婷免费| 国产欧美日韩综合| 国产精品久久久久久久久久免费看 | 欧美性色黄大片| 国产高清亚洲一区| 国产69精品久久久久毛片| 99r国产精品| 99re热视频这里只精品| 欧美日本一区二区在线观看| 欧美性色黄大片| 日韩一区二区免费在线电影| 国产日韩欧美综合一区| 亚洲丶国产丶欧美一区二区三区| 久久国产麻豆精品| 在线一区二区视频| 国产人久久人人人人爽| 热久久免费视频| 欧美日韩在线一区二区| 国产精品狼人久久影院观看方式| 午夜影视日本亚洲欧洲精品| 国产精品夜夜嗨| 666欧美在线视频| 亚洲最新视频在线播放| 成人97人人超碰人人99| 日本一区二区三区在线观看| 久久综合综合久久综合| 欧美男女性生活在线直播观看| 中文字幕亚洲视频| www.欧美精品一二区| 国产精品天干天干在观线| 国产在线不卡视频| 久久综合国产精品| 丰满亚洲少妇av| 亚洲人妖av一区二区| 不卡一二三区首页| 一区二区三区国产| 在线成人小视频| 乱一区二区av| 中文子幕无线码一区tr| 91色porny蝌蚪| 日韩精品电影在线观看| 欧美白人最猛性xxxxx69交| 国产在线精品不卡| 亚洲精品欧美综合四区| 91麻豆精品国产91久久久资源速度| 日韩不卡一区二区三区| 精品国产伦一区二区三区观看方式 | 欧美无砖砖区免费| 麻豆一区二区99久久久久| 日本一区免费视频| 69久久99精品久久久久婷婷| 国产乱码精品一区二区三区av| 国产精品久久久久久久久搜平片 | 国产精品系列在线| 欧美老人xxxx18| 99在线热播精品免费| 亚洲成人在线免费| 中文字幕成人在线观看| 欧美日产国产精品| 欧洲另类一二三四区| 国产精品夜夜爽| 免费久久精品视频| 性做久久久久久免费观看| 国产精品乱码一区二三区小蝌蚪| 欧美精三区欧美精三区| 91麻豆.com| 成人激情动漫在线观看| 丝袜美腿亚洲一区二区图片| 欧美高清在线视频| 国产亚洲综合在线| 久久网站热最新地址| 欧美成人伊人久久综合网| 久久女同性恋中文字幕| 精品久久久久久综合日本欧美| 欧美亚洲日本国产| 欧美最猛性xxxxx直播| 色综合咪咪久久| 色婷婷亚洲综合| 欧美亚洲综合一区| 51午夜精品国产| 久久久久久久网| 国产精品久久久久国产精品日日| 国产精品视频一二| 综合欧美一区二区三区| 一区二区三区在线观看欧美| 亚洲美女视频在线观看| 一区二区在线免费| 麻豆精品久久精品色综合| 成人黄色777网| 欧美女孩性生活视频| 欧美一区二区不卡视频| 国产精品你懂的| 青青草原综合久久大伊人精品优势| 亚洲成人自拍一区| 懂色av噜噜一区二区三区av| 一本到三区不卡视频| 久久婷婷成人综合色| 亚洲欧美日韩在线| 粉嫩av一区二区三区| 欧美亚洲高清一区| 中国av一区二区三区| 麻豆一区二区99久久久久| 91同城在线观看| 欧美va在线播放| 性做久久久久久免费观看| 不卡影院免费观看| 精品成a人在线观看| 日韩国产在线一| 在线影视一区二区三区| 亚洲婷婷国产精品电影人久久| 国产一区二三区| 久久综合九色综合欧美98| 久草精品在线观看| 56国语精品自产拍在线观看| 亚洲欧美怡红院| 国产成人精品一区二区三区四区| 欧美va亚洲va香蕉在线| 国产一区二区三区四区在线观看| 欧美巨大另类极品videosbest | 国产一区二区三区免费看 | 黄一区二区三区| 国产日韩欧美麻豆| 成人av网站免费| 日韩高清不卡一区二区三区| 337p日本欧洲亚洲大胆色噜噜| 国产麻豆视频精品| 亚洲激情图片一区| 欧美精品一区二区在线播放| 久久99精品网久久| 国产精品国产三级国产aⅴ原创| 盗摄精品av一区二区三区| 亚洲视频你懂的| 欧美一级午夜免费电影| 国产精品12区| 亚洲成人av在线电影| 成人一区在线观看| 亚洲va欧美va国产va天堂影院| 日本道免费精品一区二区三区| 美女视频网站黄色亚洲| 亚洲人成精品久久久久久 | 中文字幕精品在线不卡| 欧美精品xxxxbbbb| 国产91精品免费| 精品一区二区免费| 日韩中文字幕区一区有砖一区| 国产欧美日韩中文久久| 欧美亚洲综合色| 91亚洲精品久久久蜜桃网站 | 久久综合色8888| 制服.丝袜.亚洲.另类.中文| 91一区二区三区在线播放| 福利电影一区二区| 99精品一区二区三区| 国产白丝精品91爽爽久久| 久久精品99国产精品| 激情小说亚洲一区| 国产精品69久久久久水密桃| 国产麻豆9l精品三级站| 久久99国产精品久久99果冻传媒| 日韩成人av影视| 国模少妇一区二区三区| 国产精品一区在线观看乱码| 国产成人综合在线| 粉嫩在线一区二区三区视频| 97久久精品人人做人人爽 | 久久蜜桃av一区二区天堂| 精品久久国产老人久久综合| 久久嫩草精品久久久精品一| 国产亚洲人成网站| 天天影视网天天综合色在线播放| 亚洲一区二区欧美激情| 美女视频免费一区| 成人黄色av电影| 日韩免费观看高清完整版| 中文字幕乱码亚洲精品一区| 亚洲一区在线观看免费 | 欧美日韩国产一二三| 久久亚洲私人国产精品va媚药| 国产精品女人毛片| 日韩福利电影在线| 不卡av电影在线播放| 欧美卡1卡2卡| 性做久久久久久久久| 成人性生交大片免费看视频在线| 欧美色欧美亚洲另类二区| 日本一区二区在线不卡| 极品尤物av久久免费看| 欧美日本高清视频在线观看| 中文字幕一区不卡|