> 

 > 

4. 以積木式編程製作網絡應用程式
任務
任務

該文件涵蓋了管理基於時間的任務的方法,包括安排操作、分解任務和使用信號終止操作。

幾秒鐘後執行任務

在具有中止控制的 ms 之後運行

{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><block type=\"Task_runAfter\"><value name=\"ms\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow></value></block></xml>"}

此塊用於在幾毫秒後執行一些操作,然後立即停止該操作。

參數:

  • 條件:數字(預設值:0)
  • 任務

輸出: N/A
範例代碼:

{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable>mainLayout</variable><variable>mainScreen</variable></variables><block type=\"pxt-on-start\" x=\"0\" y=\"0\"><statement name=\"HANDLER\"><block type=\"variables_set\"><field name=\"VAR\">mainLayout</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"ScreenItem_createLayout\"/></value><next><block type=\"variables_set\"><field name=\"VAR\">mainScreen</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"Screen_create\"><value name=\"label\"><shadow type=\"text\"><field name=\"TEXT\">Main</field></shadow></value><value name=\"layout\"><block type=\"variables_get\"><field name=\"VAR\">mainLayout</field></block></value></block></value><next><block type=\"Task_runAfter\"><value name=\"ms\"><shadow type=\"math_number\"><field name=\"NUM\">5000</field></shadow></value><value name=\"abortSignal\"><block type=\"Task_createAbortControl\"/></value><statement name=\"HANDLER\"><block type=\"ScreenItem_Layout_add\"><value name=\"this\"><block type=\"variables_get\"><field name=\"VAR\">mainLayout</field></block></value><value name=\"item\"><block type=\"Control_createTextBlock\"><mutation xmlns=\"http://www.w3.org/1999/xhtml\" _expanded=\"1\" _input_init=\"true\"></mutation><value name=\"text\"><shadow type=\"text\"><field name=\"TEXT\">After 5 seconds, it will show this message.</field></shadow></value></block></value></block></statement></block></next></block></next></block></statement></block></xml>"}

在 5 秒之前,輸出:

在具有中止控制的 ms 之後運行 - 在輸出之前

5秒后,輸出:

使用 ms 控制在 ms 之後運行 - 輸出後

中斷幾秒鐘

暫停毫秒

{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><block type=\"Task_sleep\"><value name=\"ms\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow></value></block></xml>"}

此塊用於停止某些操作。

參數: 條件:數字(預設值:0)
輸出: N/A
範例代碼:

1000ms 表示 1 秒。

{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable>mainLayout</variable><variable>mainScreen</variable></variables><block type=\"pxt-on-start\" x=\"0\" y=\"0\"><statement name=\"HANDLER\"><block type=\"variables_set\"><field name=\"VAR\">mainLayout</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"ScreenItem_createLayout\"/></value><next><block type=\"variables_set\"><field name=\"VAR\">mainScreen</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"Screen_create\"><value name=\"label\"><shadow type=\"text\"><field name=\"TEXT\">Main</field></shadow></value><value name=\"layout\"><block type=\"variables_get\"><field name=\"VAR\">mainLayout</field></block></value></block></value><next><block type=\"ScreenItem_Layout_add\"><value name=\"this\"><block type=\"variables_get\"><field name=\"VAR\">mainLayout</field></block></value><value name=\"item\"><block type=\"Control_createTextBlock\"><mutation xmlns=\"http://www.w3.org/1999/xhtml\" _expanded=\"1\" _input_init=\"true\"></mutation><value name=\"text\"><shadow type=\"text\"><field name=\"TEXT\">Before 1 second.</field></shadow></value></block></value><next><block type=\"Task_sleep\"><value name=\"ms\"><shadow type=\"math_number\"><field name=\"NUM\">1000</field></shadow></value><next><block type=\"ScreenItem_Layout_add\"><value name=\"this\"><block type=\"variables_get\"><field name=\"VAR\">mainLayout</field></block></value><value name=\"item\"><block type=\"Control_createTextBlock\"><mutation xmlns=\"http://www.w3.org/1999/xhtml\" _expanded=\"1\" _input_init=\"true\"></mutation><value name=\"text\"><shadow type=\"text\"><field name=\"TEXT\">After 1 second.</field></shadow></value></block></value></block></next></block></next></block></next></block></next></block></statement></block></xml>"}

在1000ms之前,輸出:

暫停 ms - 輸出之前

1000ms后,輸出:

暫停 ms - 輸出後

終止操作

創建中止控制

{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><block type=\"Task_createAbortControl\"/></xml>"}

此塊用於終止某些操作。

參數: N/A
輸出: 中止控制
範例代碼:

{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable>mainLayout</variable><variable>mainScreen</variable><variable>imageModel</variable><variable>cameraControl</variable><variable>selectedCameras</variable><variable>recentlySelectedCameras</variable><variable>recentlyUnselectedCameras</variable><variable>value2</variable><variable>abortControl</variable><variable>result</variable></variables><block type=\"pxt-on-start\" x=\"0\" y=\"0\"><statement name=\"HANDLER\"><block type=\"variables_set\"><field name=\"VAR\">mainLayout</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"ScreenItem_createLayout\"/></value><next><block type=\"variables_set\"><field name=\"VAR\">mainScreen</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"Screen_create\"><value name=\"label\"><shadow type=\"text\"><field name=\"TEXT\">Main</field></shadow></value><value name=\"layout\"><block type=\"variables_get\"><field name=\"VAR\">mainLayout</field></block></value></block></value><next><block type=\"variables_set\"><field name=\"VAR\">imageModel</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"TeachableMachine_loadImageModel\"><value name=\"baseUrl\"><shadow type=\"text\"><field name=\"TEXT\">https://teachablemachine.withgoogle.com/models/tghdF3FXI/</field></shadow></value></block></value><next><block type=\"Camera_enableCameraFeature\"><value name=\"enable\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">TRUE</field></shadow></value><next><block type=\"variables_set\"><field name=\"VAR\">cameraControl</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"Camera_getCameraControl\"/></value><next><block type=\"Control_OptionList_setMultiple\"><value name=\"this\"><block type=\"variables_get\"><field name=\"VAR\">cameraControl</field></block></value><value name=\"isMultiple\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">TRUE</field></shadow></value><next><block type=\"ScreenItem_Layout_add\"><value name=\"this\"><block type=\"variables_get\"><field name=\"VAR\">mainLayout</field></block></value><value name=\"item\"><block type=\"variables_get\"><field name=\"VAR\">cameraControl</field></block></value><next><block type=\"Camera_setOnCameraControlChanged\"><value name=\"HANDLER_DRAG_PARAM_selectedCameras\"><shadow type=\"variables_get_reporter\"><field name=\"VAR\">selectedCameras</field></shadow></value><value name=\"HANDLER_DRAG_PARAM_recentlySelectedCameras\"><shadow type=\"variables_get_reporter\"><field name=\"VAR\">recentlySelectedCameras</field></shadow></value><value name=\"HANDLER_DRAG_PARAM_recentlyUnselectedCameras\"><shadow type=\"variables_get_reporter\"><field name=\"VAR\">recentlyUnselectedCameras</field></shadow></value><statement name=\"HANDLER\"><block type=\"pxt_controls_for_of\"><value name=\"VAR\"><shadow type=\"variables_get_reporter\"><field name=\"VAR\">value2</field></shadow></value><value name=\"LIST\"><block type=\"variables_get\"><field name=\"VAR\">recentlySelectedCameras</field></block></value><statement name=\"DO\"><block type=\"ScreenItem_Layout_add\"><value name=\"this\"><block type=\"variables_get\"><field name=\"VAR\">mainLayout</field></block></value><value name=\"item\"><block type=\"variables_get\"><field name=\"VAR\">value2</field></block></value><next><block type=\"TeachableMachine_ImageModel_continuouslyPredict\"><value name=\"this\"><block type=\"variables_get\"><field name=\"VAR\">imageModel</field></block></value><value name=\"video\"><block type=\"variables_get\"><field name=\"VAR\">value2</field></block></value><value name=\"abortControl\"><block type=\"variables_get\"><field name=\"VAR\">abortControl</field></block></value><value name=\"HANDLER_DRAG_PARAM_result\"><shadow type=\"variables_get_reporter\"><field name=\"VAR\">result</field></shadow></value><statement name=\"HANDLER\"><block type=\"ScreenItem_Layout_add\"><value name=\"this\"><block type=\"variables_get\"><field name=\"VAR\">mainLayout</field></block></value><value name=\"item\"><block type=\"Control_createTextBlock\"><mutation xmlns=\"http://www.w3.org/1999/xhtml\" _expanded=\"1\" _input_init=\"true\"></mutation><value name=\"text\"><shadow type=\"text\"><field name=\"TEXT\">This is example of Json Value result:</field></shadow></value></block></value><next><block type=\"Task_AbortControl_abort\"><value name=\"this\"><block type=\"variables_get\"><field name=\"VAR\">abortControl</field></block></value><next><block type=\"ScreenItem_Layout_add\"><value name=\"this\"><block type=\"variables_get\"><field name=\"VAR\">mainLayout</field></block></value><value name=\"item\"><block type=\"Control_createTextBlock\"><mutation xmlns=\"http://www.w3.org/1999/xhtml\" _expanded=\"1\" _input_init=\"true\"></mutation><value name=\"text\"><block type=\"Json_JsonValue_stringify\"><mutation xmlns=\"http://www.w3.org/1999/xhtml\" _expanded=\"0\" _input_init=\"false\"></mutation><value name=\"jsonValue\"><block type=\"TeachableMachine_ImagePredictionResult_getResultAsJsonValue\"><value name=\"this\"><block type=\"variables_get\"><field name=\"VAR\">result</field></block></value></block></value></block></value></block></value></block></next></block></next></block></statement></block></next></block></statement></block></statement><next><block type=\"variables_set\"><field name=\"VAR\">abortControl</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"Task_createAbortControl\"/></value></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></xml>"}

在 1 秒之前,輸出:

創建中止控件 - 輸出之前

1秒后,輸出:

創建中止控制件 - 輸出之後

發送信號以終止動作

中產控制發送中止信號

{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><block type=\"Task_AbortControl_abort\"><value name=\"this\"><block type=\"variables_get\"><field name=\"VAR\">abortControl</field></block></value></block></xml>"}

該塊用於發送信號以終止動作並防止無限迴圈。

參數: 中止控制
輸出: N/A
範例代碼:

{"blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable>mainLayout</variable><variable>mainScreen</variable><variable>imageModel</variable><variable>cameraControl</variable><variable>selectedCameras</variable><variable>recentlySelectedCameras</variable><variable>recentlyUnselectedCameras</variable><variable>value2</variable><variable>abortControl</variable><variable>result</variable></variables><block type=\"pxt-on-start\" x=\"0\" y=\"0\"><statement name=\"HANDLER\"><block type=\"variables_set\"><field name=\"VAR\">mainLayout</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"ScreenItem_createLayout\"/></value><next><block type=\"variables_set\"><field name=\"VAR\">mainScreen</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"Screen_create\"><value name=\"label\"><shadow type=\"text\"><field name=\"TEXT\">Main</field></shadow></value><value name=\"layout\"><block type=\"variables_get\"><field name=\"VAR\">mainLayout</field></block></value></block></value><next><block type=\"variables_set\"><field name=\"VAR\">imageModel</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"TeachableMachine_loadImageModel\"><value name=\"baseUrl\"><shadow type=\"text\"><field name=\"TEXT\">https://teachablemachine.withgoogle.com/models/tghdF3FXI/</field></shadow></value></block></value><next><block type=\"Camera_enableCameraFeature\"><value name=\"enable\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">TRUE</field></shadow></value><next><block type=\"variables_set\"><field name=\"VAR\">cameraControl</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"Camera_getCameraControl\"/></value><next><block type=\"Control_OptionList_setMultiple\"><value name=\"this\"><block type=\"variables_get\"><field name=\"VAR\">cameraControl</field></block></value><value name=\"isMultiple\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">TRUE</field></shadow></value><next><block type=\"ScreenItem_Layout_add\"><value name=\"this\"><block type=\"variables_get\"><field name=\"VAR\">mainLayout</field></block></value><value name=\"item\"><block type=\"variables_get\"><field name=\"VAR\">cameraControl</field></block></value><next><block type=\"Camera_setOnCameraControlChanged\"><value name=\"HANDLER_DRAG_PARAM_selectedCameras\"><shadow type=\"variables_get_reporter\"><field name=\"VAR\">selectedCameras</field></shadow></value><value name=\"HANDLER_DRAG_PARAM_recentlySelectedCameras\"><shadow type=\"variables_get_reporter\"><field name=\"VAR\">recentlySelectedCameras</field></shadow></value><value name=\"HANDLER_DRAG_PARAM_recentlyUnselectedCameras\"><shadow type=\"variables_get_reporter\"><field name=\"VAR\">recentlyUnselectedCameras</field></shadow></value><statement name=\"HANDLER\"><block type=\"pxt_controls_for_of\"><value name=\"VAR\"><shadow type=\"variables_get_reporter\"><field name=\"VAR\">value2</field></shadow></value><value name=\"LIST\"><block type=\"variables_get\"><field name=\"VAR\">recentlySelectedCameras</field></block></value><statement name=\"DO\"><block type=\"ScreenItem_Layout_add\"><value name=\"this\"><block type=\"variables_get\"><field name=\"VAR\">mainLayout</field></block></value><value name=\"item\"><block type=\"variables_get\"><field name=\"VAR\">value2</field></block></value><next><block type=\"TeachableMachine_ImageModel_continuouslyPredict\"><value name=\"this\"><block type=\"variables_get\"><field name=\"VAR\">imageModel</field></block></value><value name=\"video\"><block type=\"variables_get\"><field name=\"VAR\">value2</field></block></value><value name=\"abortControl\"><block type=\"variables_get\"><field name=\"VAR\">abortControl</field></block></value><value name=\"HANDLER_DRAG_PARAM_result\"><shadow type=\"variables_get_reporter\"><field name=\"VAR\">result</field></shadow></value><statement name=\"HANDLER\"><block type=\"ScreenItem_Layout_add\"><value name=\"this\"><block type=\"variables_get\"><field name=\"VAR\">mainLayout</field></block></value><value name=\"item\"><block type=\"Control_createTextBlock\"><mutation xmlns=\"http://www.w3.org/1999/xhtml\" _expanded=\"1\" _input_init=\"true\"></mutation><value name=\"text\"><shadow type=\"text\"><field name=\"TEXT\">This is example of Json Value result:</field></shadow></value></block></value><next><block type=\"Task_AbortControl_abort\"><value name=\"this\"><block type=\"variables_get\"><field name=\"VAR\">abortControl</field></block></value><next><block type=\"ScreenItem_Layout_add\"><value name=\"this\"><block type=\"variables_get\"><field name=\"VAR\">mainLayout</field></block></value><value name=\"item\"><block type=\"Control_createTextBlock\"><mutation xmlns=\"http://www.w3.org/1999/xhtml\" _expanded=\"1\" _input_init=\"true\"></mutation><value name=\"text\"><block type=\"Json_JsonValue_stringify\"><mutation xmlns=\"http://www.w3.org/1999/xhtml\" _expanded=\"0\" _input_init=\"false\"></mutation><value name=\"jsonValue\"><block type=\"TeachableMachine_ImagePredictionResult_getResultAsJsonValue\"><value name=\"this\"><block type=\"variables_get\"><field name=\"VAR\">result</field></block></value></block></value></block></value></block></value></block></next></block></next></block></statement></block></next></block></statement></block></statement><next><block type=\"variables_set\"><field name=\"VAR\">abortControl</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"Task_createAbortControl\"/></value></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></xml>"}

這種情況將防止在顯示下面的文字時出現無限循環,輸出:

中止控制 發送中止信號 - 輸出

目録