EB指南(com.ed 6.8)脚本引擎报告“预期'Function()void'但出现'Error'

时间:2019-09-20 14:29:24

标签: scripting

我正在尝试使用脚本在eb指南中启动动画(状态输入操作)。脚本引擎报告错误:

Expected 'Function () : void' but got 'Error'

我该如何解决?

使用的脚本是:

function()
{
   f:animation_play(this->"View 1"->"Animation 1")
}

我尝试获得类似于Sprite animation in eb guide (community ed)中描述的动画,但是它将在进入状态时开始。 使用的版本是eb guide 6.8社区版。

1 个答案:

答案 0 :(得分:2)

脚本有两个问题:

  1. 函数返回错误的类型:

    脚本引擎始终将最后一条命令的返回值用作函数的返回值。

    在这种情况下,f:animation_play没有获得有效的参数(请参见下面的2.),该参数被解释为Error的返回值。如果参数正确,则返回值仍将不正确,因为animation_play返回布尔值(请参阅EB GUIDE Studio手册)。要返回void,请在脚本的最后一行中使用关键字unit

  2. 状态输入操作尝试开始动画

    进入状态或离开状态时执行的脚本无法访问该状态的子级,因为它们尚未创建(或在状态离开时已经销毁)。

    要进入状态时开始动画,有两种可能性(我建议使用第一种):

    • 使用以下代码将脚本移动到动画小部件(将条件脚本作为用户定义的属性添加):
    {
     f:animation_play(v:this)
     false
    }
    

    请注意false关键字,该关键字可确保返回布尔值。一旦输入当前状态并初始化所有小部件,该脚本就会自动运行一次。

    • 在输入动作脚本中触发事件;另一个脚本可以对此事件做出反应以启动动画。如果您不想直接启动动画但会有一些延迟,这将很有帮助。否则,第一种方法会更简单。