高级 | Advanced

使用这些拼图可以在应用中实现高级功能,如网络、与JavaScript代码的交互、数据转换、状态保存/恢复等。

内容

拼图参考

comment(注释)

这个拼图除了放置一个注释行,可用于解释拼图的含义,并不产生其他作用。此拼图同时会在 visual_logic.js 生成一行JavaScript注释。

exec script(可执行脚本)

此拼图执行指定的javascript代码。 使用 Ace编辑器 显示和编辑其中的代码内容。 请查看相关的键盘快捷键简介: 默认键盘快捷键。 可调整大小,以更改编辑器的宽度和高度。

您可以使用以下内置变量。

关于 "Init" 和其他标签,使用内置插件的具体细节

call external function(调用外部函数)

执行一个在应用的JavaScript代码中指定的函数。可以选择传递参数,作为函数参数使用。

为了在JavaScript代码中添加一个函数,用任何文本编辑器打开应用 .js 文件(例如, my_awesome_app.js 位于 verge3d/applications/my_awesome_app)。搜索 "prepareExternalInterface" 并在该声明中添加您的函数(在大括号之间),这样它看起来像这样。

function prepareExternalInterface(app) { app.ExternalInterface.myJSFunction = function(numericArg, textArg) { alert('Got some params from Puzzles: ' + numericArg + ' and ' + textArg); } }

load data(载入数据)

试图从一个指定的位置加载数据。不管尝试是否成功,"once ready do" 槽中的拼图都会被解释。检索到的数据可以通过 加载数据 拼图进行访问。

如果请求不应被缓存,请单击齿轮图标并激活 "disable caching" 选项以禁用缓存。拼图中的缓存逻辑:当一个url第一次用于缓存——它将被缓存,并且所有后续使用缓存的url都将使用保存的缓存,如果url与禁用缓存一起使用——它既不会创建缓存也不会使用已保存的缓存。

浏览器尝试保留资产的本地副本以进行优化。 为避免浏览器缓存,每次发出请求时可以使用一个附加参数来更改 URL。 要添加此参数,请使用 set URL param(设置URL参数)elapsed total(总耗时) 拼图:

send data(发送数据)

试图使用异步的 POST HTTP 请求将指定的数据发送到一个远程位置。不管尝试是否成功,"once ready do" 槽中的拼图都会被解释。如果有任何响应数据,可以通过 loaded data 拼图访问。

浏览器尝试保留资产的本地副本以进行优化。 为避免浏览器缓存,每次发出请求时可以使用一个附加参数来更改 URL。 要添加此参数,请使用 set URL param(设置URL参数)elapsed total(总耗时) 拼图:

loaded data(已加载的数据)

返回由 加载数据发送数据 拼图获取的数据。

read JSON(读取JSON)

将文本(或 数据URI)解释为 JavaScript Object Notation 数据,并以字典形式返回。

read CSV(读取CSV)

将文本(或 数据URI)解释为 逗号分隔的值。返回一个表格行的列表,每行表示为一个值的列表。分隔符可以通过下拉选择,以对应CSV文件的导出设置。"From row" 值表示从顶部开始跳过多少行。

表的行和值是通过它们的数字索引从0开始访问的。

save state(保存状态)

保存指定对象的状态和/或由其名称指定的变量值。对象被克隆并存储在内存中。变量的值被检索并存储在内存中,每个指定的变量名称都是如此。

如果此拼图被多次调用,那么这些状态将被依次保存,这样就可以通过 undo state(撤销状态) 拼图返回到之前的任一状态。

undo state(撤销状态)

恢复用 save state(保存状态) 拼图保存的对象和/或变量的状态。

如果这个拼图被多次调用,状态会从保存的序列中恢复(如果有的话),这使得我们可以从堆栈中返回到任何先前保存的状态。有时您需要解决诸如撤消历史记录中没有保存状的情况,例如在UI中进行更改等。为此,请使用状态计数器变量:

all variable names(所有变量名称)

返回一个包含拼图中使用的所有变量名称的列表。

variable value by name(对应名称的变量的值)

返回指定名称的变量的值。此拼图的工作方式与标准的变量值拼图类似,但不需要从预定义的下拉菜单中选择一个变量。

JavaScript object(JavaScript对象)

返回一个给定的JavaScript对象。

使用此拼图可获得以下JavaScript对象。

window(窗口)
返回顶层的window对象作为字典值。
arguments(参数)
返回当前执行的函数的参数列表。可以用来获取拼图过程的参数或者传递给拼图内部回调的额外参数(见下文)。
this
JavaScript中的this值。

arguments选项可以用来获取额外的拼图选项。例如,当使用 when click(当点击...时) 拼图时,您可以使用在do插槽后面被执行的回调的第一个参数来获得触发拼图逻辑的内部JavaScript事件。在下面的例子中,我们使用这一事件来获取鼠标指针的X和Y坐标。

以下拼图支持高级选项。

wait promise(等待promise)

等待promise被解析或被拒绝,并在 promise value 拼图中返回其值(或拒绝原因)。

这个拼图可被用于获取 导出到gltfgenerate normal map(生成法线贴图) 的值。作为一个异步拼图,这些拼图不会立即返回解析值。相反,它们会返回 promise 值,这些值在它们被用作输入的拼图中被解析。但在少数情况下,这种解析并没有发生。在这些情况下,您应该使用 wait promise 来解析promise值。

promise值

已解析的promise值(在已实现promise的情况下)或错误字符串(在已拒绝promise的情况下)。

get procedure(获取过程)

此拼图可用于获取拼图中定义的 过程 。 返回的值可以分配给一个变量或作为参数传递给另一个过程, 然后通过 call procedure(调用过程) 拼图稍后执行。

call procedure(调用过程)

执行通过get procedure 拼图获得的拼图的过程。 可选地传递要用作过程参数的参数。 “call procedure(调用过程)” 拼图有 2 种变体 - 有或没有返回值。

connector(连接器)

这个拼图可建立拼图之间的连接, 以便于移动、删除和在其他拼图中使用拼图组。 典型应用是将 load sound(加载声音)load video(加载视频) 的拼图连接成一个组, 用以组织应用中预加载媒体资源。

add event listener(添加事件监听器)

为指定的事件类型添加一个监听器,即在引发指定的事件类型时执行通过get procedure 拼图获得的拼图的过程。

remove event listener(移除事件监听器)

从指定的事件类型中删除侦听器,即从事件类型侦听器中删除给定的过程。

dispatch event(调度事件)

触发指定类型的事件。 可选地传递参数(parameters)以用作过程参数(arguments),即每个过程的参数(arguments)相同。

在使用拼图时遇到困难?

欢迎您随时在 论坛上提问!您还可以加入中文用户社区QQ群(171678760),在线寻求帮助。