跳到主要内容

invoke_script

简介

提供一套接口用于调用自定义脚本函数,可以在一个目录中创建一批脚本,脚本中定义一些函数,通过字符串去调用它们,并且在调用后进行缓存,避免每次都根据名字取查找。

目的

  • 方便上层扩展,触发者不需要关心上层如何处理,也不关心是否有人处理
  • 逻辑解耦,去除模块间的相互依赖

组件接口

invoke_script.gs

函数原型函数作用
void add_base_path(string path)设置基础路径
void load_all_scripts()加载所有函数,加载过程会跨域,如果出问题可以提前加载
void clear()清空所有缓存的函数
void clear_cache(string name)清空某个函数缓存
mixed assure_invoke(string name, ...)调用并确保目标存在,不存在就报错
mixed invoke(string name, ...)调用,不存在则忽略
mixed invoke_any(array names, ...)调用,不存在则忽略,names里的任何函数执行一个就退出,主要是用来兼容engine0调用的脚本改名了提醒项目使用的脚本更名

样例

public void sample()
{
// 创建好的房间对象
object room_ob = this;
invoke_script.invoke("ROOM.notity_room_created", room_ob);
}