我正在尝试使用脚本(状态输入操作)在 eb Guide 中启动动画。脚本引擎报告错误:
Expected 'Function () : void' but got 'Error'
我该如何解决这个问题?
使用的脚本是:
function()
{
f:animation_play(this->"View 1"->"Animation 1")
}
我尝试获得类似于 Sprite animation in eb guide (community ed) 中描述的动画。 ,但应在进入状态时启动。 使用的版本是ebguide 6.8社区版。
最佳答案
脚本存在两个问题:
函数返回错误类型:
脚本引擎总是将最后一个命令的返回值作为函数的返回值。
在这种情况下,f:animation_play 没有获得有效的参数(参见下面的 2.),该参数被解释为
Error
返回值。即使参数正确,返回值仍然不正确,因为animation_play
返回 bool 值(请参阅 EB GUIDE Studio 手册)。要返回 void,请使用关键字unit
作为脚本中的最后一行。状态输入操作尝试启动动画
进入或离开状态时执行的脚本无法访问该状态的子级,因为它们尚未创建(或者在状态离开时已经被销毁)。
进入状态时启动动画,有两种可能(我建议使用第一种):
- 使用以下代码将脚本移动到动画小部件(添加条件脚本作为用户定义的属性):
{ f:animation_play(v:this) false }
请注意
false
关键字,它可确保返回 bool 值。一旦进入当前状态并初始化所有小部件,脚本就会自动运行一次。- 在入口 ActionScript 中触发一个事件;另一个脚本可以对此事件使用react以启动动画。如果您不想直接启动动画但有一些延迟,这会很有帮助。否则,第一种方法更简单。
关于scripting - EB Guide (com.ed 6.8) 脚本引擎报告 "Expected ' Function () void' 但得到 'Error',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58030330/