如何用Javascript自制Scratch拓展?
請(qǐng)注意:本文已默認(rèn)你了解并掌握J(rèn)avascript基礎(chǔ)知識(shí)
上次我用Javascript制作了一個(gè)Scratch拓展(視頻在這里)
就有很多人會(huì)問(wèn):啊這個(gè)怎么做?。渴遣皇呛軓?fù)雜?。??
額,其實(shí)一點(diǎn)也不(我自己都不咋會(huì)Javascript)難
教程開(kāi)始!
首先你需要一個(gè)模板:
這就是一個(gè)模板,需要往里面加入些東西
首先,往blocks里寫入寫塊,編輯器才能識(shí)別
這是一個(gè)示例的塊,內(nèi)容是'Hello,world!'
但這還沒(méi)完,現(xiàn)在我們只定義了一個(gè)空的“殼”,里面沒(méi)有任何內(nèi)容,編輯器也不知道應(yīng)該做什么,于是報(bào)錯(cuò)。
所以我們還得在 getInfo 的下面寫上函數(shù),讓編輯器(編譯器)識(shí)別他
于是一個(gè)完整的拓展就做好了
示例鏈接:https://turbowarp.org/editor?extension=https://livefile.xesimg.com/programme/python_assets/eb48092d8edfba77ade1fc13db767ca0.js
獲取信息方法
getInfo
是一個(gè)函數(shù),應(yīng)該包含以下內(nèi)容:
id
是一個(gè)字符串,表示此擴(kuò)展使用的唯一 ID。它應(yīng)該只包含字符 a-z ,?0-9以及下劃線。同一擴(kuò)展應(yīng)始終使用相同的 ID,因?yàn)楦乃鼤?huì)破壞現(xiàn)有項(xiàng)目。name
是一個(gè)字符串,告訴 Scratch 要在側(cè)邊欄中顯示什么名稱blocks
是一個(gè)對(duì)象列表,用于定義擴(kuò)展包含哪些塊。type
定義要制作的輸入形狀。請(qǐng)注意,無(wú)論此處設(shè)置何種類型,都不能保證實(shí)際傳遞給塊的值被強(qiáng)制轉(zhuǎn)換為正確的類型。例如,您應(yīng)該手動(dòng)將參數(shù)轉(zhuǎn)換為數(shù)字,因?yàn)樗鼈兺ǔ?huì)作為字符串傳遞。Scratch.BlockType.REPORTER
制作數(shù)字或字符串返回塊Scratch.BlockType.BOOLEAN
制作布爾返回塊Scratch.BlockType.COMMAND
制作控制塊defaultValue
是從庫(kù)創(chuàng)建塊時(shí)的初始值(默認(rèn)值)arguments
是一個(gè)對(duì)象,用于定義塊接受的參數(shù)。每個(gè)參數(shù)都有:Scratch.ArgumentType.STRING
對(duì)于字符串輸入Scratch.ArgumentType.NUMBER
用于數(shù)字輸入Scratch.ArgumentType.BOOLEAN
對(duì)于布爾輸入(無(wú)默認(rèn)值)Scratch.ArgumentType.ANGLE
對(duì)于角度Scratch.ArgumentType.COLOR
對(duì)于顏色(#123abc格式)Scratch.ArgumentType.MATRIX
對(duì)于 5x5 矩陣(以 11101010101... 字符串格式傳遞)Scratch.ArgumentType.NOTE
對(duì)于音符(音樂(lè)模塊)
(轉(zhuǎn)自docs.turbowarp.org/development/custom-extensions)
下面有一個(gè)傳參的樣例:
示例鏈接:https://turbowarp.org/editor?extension=https://livefile.xesimg.com/programme/python_assets/980a0f1406c6d2bdef35471ed06f0cd3.js
如果導(dǎo)入時(shí)沒(méi)有成顯示拓展,請(qǐng)打開(kāi)開(kāi)發(fā)者模式進(jìn)行排錯(cuò)
要說(shuō)的就這么多,下期再見(jiàn)~