> 

 > 

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>"}

这种情况将防止在显示下面的文本时出现无限循环,输出:

中止控制 发送中止信号 - 输出

目录