blockly和Java交互_blockly 基础学习(一)
構建一個Blockly應用一般包括以下步驟:集成Blockly編輯器 - 最簡單的Blockly編輯器包含了一個“工具箱”來存儲的塊(block)類型,和一個用于安裝塊的“工作區”。詳細集成方法請參考使用 Blockly,或官方文檔Web和Android
創建應用塊 - 集成Blockly后,就需要創建一些用戶代碼塊,并將其添加到Blockly“工具箱”。創建自定義塊參考官方文檔Create Custom Blocks Overview
構建應用的其余部分 - Blockly只是解決一代碼生成的部分,而應用的核心是如何使用代碼,這部分還需要開發者自行實現
開始:
1.下載源碼
2. 注入 Blockly
安裝 Blockly 并驗證其可用后,就可以引入 Blockly。如,將 Blockly 在Web頁面的一個固定尺寸的div:
3. 配置
上面的示例的Blockly.inject行中,第二個參數是一個鍵/值對字典。其用于配置Blockly,可用的配置項有:collapse - boolean。允許“塊”折疊或展開。如果工具箱有類別,默認為true;其它情況為false
comments - boolean。允許“塊”有注釋。如果工具箱有類別,默認為true;其它情況為false
css - boolean。如果設置false,則不注入 CSS;默認為true
disable - boolean。使“塊”不可用。如果工具箱有類別,默認為true;其它情況為false
grid - object。配置一個網格,使塊可以捕獲到。見Grid
horizontalLayout - boolean。設置true則工具箱使用水平布局;false則使用垂直布局。默認為false
maxBlocks - number。最大可創建的“塊”數量。默認為Infinity
media - string。Blockly 媒體文件目錄路徑。默認為"https://blockly-demo.appspot.com/static/media/"
oneBasedIndex - boolean。設置為true則字符串操作索引會從1開始;false則從0開始。默認為true
readOnly - boolean。設置為true,則禁止用戶編輯。影響“工具箱”和“垃圾桶”。默認為false
rtl - boolean。設置為true,則鏡像化編輯器。默認為false。見RTL Demo
scrollbars - boolean。設置工作區是否可滾動。如果工具箱有類別,默認為true;其它情況為false
sounds - boolean。設置為false,則點擊或刪除時不會播放聲音。默認為true
toolbox - XML節點或string。用戶可用“分類”和“塊”的結構樹。
toolboxPosition - string。設置為start,則工具箱在上部(水平顯示時)或左則(垂直顯示時)或右則(垂直LTR顯示時)。設置為end,則在相對僧。默認為start
trashcan - boolean。顯示或隱藏“垃圾桶”。如果工具箱有類別,默認為true;其它情況為false
zoom - object。工作區縮放配置。見Zoom
在以上配置中,最重要的選項是toolbox。它是一個XML節點樹,用于指定工具箱中有哪些可用的“塊”、塊如何分布、及是否有類別。
另外,除 Blockly 的默認“塊”外,定義塊需要通過調用你Web應用的API來構建。
4. 代碼生成
Blockly 是編程語言,也就不能“運行” Blockly 程序。但是你可以將 Blockly 轉為用戶所需要的JavaScript、Python、PHP、Dart或其它語言
5. “塊”的導入、導出
如果你需要將“塊”導出,以在其它應用中使用或在以后還原。可以調用以下XML:
var xml = Blockly.Xml.workspaceToDom(workspace);
var xml_text = Blockly.Xml.domToText(xml);
調用后,會生成一個最小化的包含用戶“塊”的XML。如果想使導出的XML更可讀,那么可以使用Blockly.Xml.domToPrettyText來代替上面方法。
恢復己導出的XML,像下面這樣即可:
var xml = Blockly.Xml.textToDom(xml_text);
Blockly.Xml.domToWorkspace(xml, workspace);
6. 云存儲
Blockly 帶有一個可選的云存儲功能。它允許用戶保存、加載、共享和發布程序。如果你的項目是在云端托管,那么你可以利用此服務的優勢。
總結
以上是生活随笔為你收集整理的blockly和Java交互_blockly 基础学习(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: class_10作业
- 下一篇: java任何表达式都可以当作语句_在Ja