UnityLuaMvvM Lua 带通知的Mode类

2023-11-19

实现数据更新UI自动刷新的核心代码
欢迎关注https://gitee.com/xiongks/UnityMVVM

mode=function(modeType)
	local obj = {}
	obj.modeType=modeType
	obj.filds={}
	obj.events={}
	obj.AddEventMap=function(self,k_Action_map)
		table.insert(self.events,k_Action_map)
	end
	obj.RemoveEventMap=function(self,k_Action_map)
		for i, v in ipairs(self.events) do
			if v==k_Action_map then
				table.remove(self.events,i)
				return 
			end
		end
		
	end
	obj.Notify=function(self,propName,author)
		for k, k_Action_map in pairs(self.events) do
			for k, v in pairs(k_Action_map) do
				if k==propName then
					v(author)
				end
			end
		end
	end

	obj.set=function(self,k,v,author)
		rawset(self.filds,k,v)
		self:Notify(k,author)
	end
	obj.rawSet=function(self,k,v)
		rawset(self.filds,k,v)
	end
	------------------------原表-----------------------
	setmetatable(obj,{
			__newindex=function(t,k,v)
				rawset(obj.filds,k,v)
				obj:Notify(k)
			end,

			__index=function(t,k,v)
				return obj.filds[k]
			end
		})
	return obj
end
-------------------------------测试------------------
m1= mode("skill")
m2= mode("ui")
--事件映射表,属性名=>响应方法
m1EventMap={
	a=function(author)
		print("a:"..m1.a)
		print("OnChange:a by:",author)
	end,
	b=function(author)
		print("b:"..m1.b)
		print("OnChange:b by:" ,author)
	end
	}

m1:AddEventMap(m1EventMap)

print("-------------事件响应测试----------------")
--会触发事件
m1.a=5
--会触发事件,并附带数据修改者(author)
m1:set('a',6,"ui控件1")
print("-------------不触发事件测试----------------")
--不会触发事件
m1:rawSet("a",7)
print("a:",m1.a)
print("-------------移除EventMap测试----------------")
--移除事件后均不会触发事件
m1:RemoveEventMap(m1EventMap)
m1.a=8

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UnityLuaMvvM Lua 带通知的Mode类 的相关文章

  • Lua中如何获取目录列表

    我需要 LUA 中的目录列表 假设我的目录路径为 C Program Files 我需要该特定路径中所有文件夹的列表以及如何搜索该列表中的任何特定文件夹 Example 需要路径 C Program Files 中所有文件夹的列表 以下是上
  • lua http套接字超时

    LuaSocket HTTP 模块文档说可以在 HTTP 连接上设置超时 可以设置以下常量来控制 HTTP 模块的默认行为 PORT 用于连接的默认端口 PROXY 用于连接的默认代理 TIMEOUT 设置所有I O操作的超时时间 USER
  • 什么时候适合使用Lua这样的嵌入式脚本语言

    我玩 魔兽世界 大约有两年了 我对用来编写插件的 Lua 很好奇 由于到目前为止我读到的有关 Lua 的内容都是 快 轻 和 这太棒了 所以我想知道如何以及何时使用它 您需要在系统中嵌入像 Lua 这样的脚本语言的典型情况是什么 当您需要最
  • 在lua中组合两个函数

    我刚开始学习lua 所以我的要求可能是不可能的 现在 我有一个接受函数的方法 function adjust focused window fn local win window focusedwindow local winframe w
  • Lua中如何在另一个表的表成员中搜索

    我正在编写一个 lua 程序 它有一个表 该表是另一个表的成员 当我向该成员表添加新日期时 一切正常 但是 当我想在该表中搜索时 无论我给出什么键 我总是会将最后一行添加到表中 如何在该成员表中正确搜索 Stream name functi
  • 如何使用 srlua 制作可执行的 Lua 脚本?

    我的主要目标是使我的 lua 文件成为可执行文件或使其成为咬代码 最好是两者皆有 我正在尝试 srlua 但在自述文件中它告诉我要做的事情 对于Windows 您需要首先创建srlua exe和glue exe 然后为每个 你想把Lua程序
  • Openresty 中的并发模型是什么?

    我很难理解 openresty 或 nginx 的并发模型 我读了Lua变量作用域 http wiki nginx org HttpLuaModule Lua Variable Scope 它解释了变量的生命周期 但它没有说明对它们的并发访
  • 如何通过 C API 在自己的环境中执行不受信任的 Lua 文件

    我想通过调用在其自己的环境中执行不受信任的 lua 文件lua setfenv http pgl yoyo org luai i lua setfenv这样它就不会影响我的任何代码 该函数的文档仅解释了如何调用函数 而不解释如何执行文件 目
  • 在Windows上使用gcc 5.3.0编译Lua 5.2.4模块

    我需要用 gcc 5 3 0 编译 Lua 5 2 4 模块 在 Windows 上 在此之前 我按照以下步骤构建 Lua 5 2 4 gcc c DLUA BUILD AS DLL c ren lua o lua obj ren luac
  • 克隆一个lua状态

    最近 我在使用C 和Lua进行开发时遇到了很多困难 我的情况是 由于某种原因 我的 C 程序中可能有数千个 Lua 状态 但这些状态在初始化后应该是相同的 当然 我可以为每个状态执行 luaL loadlibs 和 lua loadfile
  • 云到设备 Azure IoT REST API

    我探索了如何使用 Azure REST API 将数据从设备发送到云 它运行无缝 没有任何问题 我没有找到有关使用 Azure IoT Hub REST API 向 Arduino 板发送云到设备消息的好文章 有人可以就此提供建议吗 您还可
  • 表长度运算符的性能

    卢阿有 运算符来计算用作数组的表的 长度 在诸如 C 之类的语言中 计算出某个内容的长度后 通常不会再次计算它 例如int len strlen string 这在 Lua 中有什么不同吗 其中一个的效率是否比另一个低 显然这可能不会显示显
  • Lua 中的贪婪/非贪婪模式匹配和可选后缀

    在 Lua 中 我正在尝试模式匹配和捕获 384 Critical Strike Reforged from Parry Chance as 384 Critical Strike 后缀在哪里 Reforged from s 是可选的 长版
  • 在循环内部或外部声明本地更好吗? [复制]

    这个问题在这里已经有答案了 我习惯这样做 do local a for i 1 1000000 do a
  • luajit2.0.0 -- 分段错误:11

    我使用一个简单的例子http lua users org wiki SimpleLuaApiExample http lua users org wiki SimpleLuaApiExample进行测试 该示例可以成功静态链接libluaj
  • 构建自动化和 MySQL Workbench 脚本:正向工程师 SQL CREATE SCRIPT

    我目前正在研究自动化软件构建过程 其中包括 MySQL Workbench 中定义的数据库架构 使用 Workbench 的脚本编写功能 我想打开一个 Workbench 文档并将其架构导出为 SQL CREATE 脚本 我想知道是否有一个
  • 在 Lua 中更改元表会破坏冒号运算符

    在学习Lua的过程中 我借用了一些代码here http lua users org wiki StringIndexing使用字符串索引 正是这样 getmetatable index function str i return stri
  • 如何编写可以与操作系统交互的VLC插件

    我需要找出是否有可能以及如何 我不关心C C Lua Python 制作一个VLC插件 其目的是由VLC播放器在特定时间调用视频流的将执行一些操作 我需要做的操作是打开 UDP 套接字并发送从当前播放的视频附带的文件中读取的一些数据 我需要
  • 如何在 Lua-C API 5.2 中创建类对象?

    我正在使用 Lua 封装 C 函数 使用 Lua 5 2 的 Lua C API include
  • 使用 luasocket smtp 和 ssl 发送电子邮件

    我一直在尝试使用帖子中描述的代码发送电子邮件 lua使用gmail账户发送邮件 https stackoverflow com questions 11070623 lua send mail with gmail account 代码由米

随机推荐

  • Mysql命令use:使用数据库

    use命令可以让我们来使用数据库 use命令格式 use lt 数据库名 gt 例如 如果xhkdb数据库存在 尝试存取它 mysql gt use xhkdb 屏幕提示 Database changed 1 use 语句可以通告MySQL
  • java加载多个properties文件_Spring加载配置和读取多个Properties文件的讲解

    一个系统中通常会存在如下一些以Properties形式存在的配置文件 1 数据库配置文件demo db properties database url jdbc mysql localhost smaple database driver
  • 全卷积网络(FCN)与图像分割

    全卷积网络 FCN 与图像分割 从图像分类到图像分割 卷积神经网络 CNN 自2012年以来 在图像分类和图像检测等方面取得了巨大的成就和广泛的应用 CNN的强大之处在于它的多层结构能自动学习特征 并且可以学习到多个层次的特征 较浅的卷积层
  • 西安烽火通信面经——Java后端开发

    由于地方比较太偏远 2号线 3号线 6号线 等了半个小时的公交还不来 只能打滴滴 一面 技术面 1 先自我介绍一下 这个没什么说的 简单介绍了一下 2 说一下Java语言的跨平台性 这个是基于JVM实现的 简单说了一下 3 说一下Java语
  • 1300*C. Page Numbers

    解析 注意单个数的情况 include
  • 使用pycharm入门python的一些注意点

    今儿在帮别人跑一段python代码 实际上我对python并不熟悉 只能边摸索边尝试 选择了pycharm这个工具 一 怎么安装python使用的库文件 能用来安装python的库文件的 有很多种办法 这里只介绍pip和pip3 因为pip
  • unity粒子特效附上贴图后播放动画

    转自 http jingyan baidu com article f96699bbb1a0d6894f3c1b77 html 参考 http www unitymanual com thread 2993 1 1 html dsign a
  • FFmpeg下载及命令行使用

    下载地址 访问FFmpeg官网 选择Dlownload 选择 Windows Package 选择相应版本 点击进行下载 并进行解压 可得到如下几个文件 版本说明 Static 只包含了3个体积很大的exe Shared 除了体积很小的ex
  • DeepSpeed配置参数 - 快速上手

    目录 DeepSpeed配置参数 快速上手 batch Size optimizer scheduler fp16 zero optimization csv monitor 例子 DeepSpeed配置参数 快速上手 DeepSpeed是
  • AI推荐的初级算法工程师学习路线

    学习算法是一项长期而且不断更新的工作 以下是一份初学者从入门到达到任职初级算法工程师要求的学习内容大纲 供您参考 1 编程语言 首先学习至少一门主流编程语言 如Python C Java等等 2 数据结构 学习数据结构是学习算法的基础 建议
  • CentOS 防火墙配置 80端口

    看了好几个页面内容都有错 下面是正确方法 sbin iptables I INPUT p tcp dport 80 j ACCEPT sbin iptables I INPUT p tcp dport 22 j ACCEPT 然后保存 et
  • 【STM32】标准库 串口下载以及STLINK

    STM32的串口下载 打开FlyMcu 接线就像之前那样接 USART1串口通信 必须是1 其他的不支持串口通信 编译之后就会生成HEX文件 而且上面的按钮Select也可以选择生成的位置 搜索串口 选择 然后波特率选择115200 在联机
  • 【tvm官网教程01】设计和架构-1

    tvm官网教程01 设计和架构 1 目的 1 编译流 1 1 关键数据结构 1 2 Transformations 1 2 1 变换的分类 1 2 2 relay transform 1 2 2 1 子函数 1 2 2 2 overall问
  • Consul服务注册与发现

    目录 一 Consul简介 一 官网 二 特点 二 安装并运行Consul 一 官网安装说明 二 下载 三 使用开发模式启动 三 服务提供者 四 服务消费者 五 三个注册中心异同点 一 CAP理论 二 AP架构 三 CP架构 一 Consu
  • 带有两个/三个未知数的算数-几何均值不等式的证明及其思路解析

    这是一篇学习手记 注 尽管文中大量使用了 一个显然的想法 自然而然 我们会想 等词语 我们也必须承认 这些伟大成果的证明需要天才的思路和不断的尝试 因此 第一次学习理解不了是很有可能的 比如我 基础 带有两个未知数的算数 几何均值不等式的证
  • MySQL同时In俩个字段,In多个字段,Mybatis多个In查询问题,Mysql多个IN查询多出数据问题,Mysql多个IN查询 数据准确问题

    背景 今天产品验收的时候 导入了大量数据 发现造价项目某个查询列表数据多出了几条数据 看了Mybatis查询 才发现是同时使用了多个IN查询导致的问题 入参是对象列表 In值是分开循环赋值的 问题就出在这里 需要根据两个字段去查询多个值 这
  • Barcode Reader Toolkit for Windows v8.3.3.3正式发布!

    Barcode Reader Toolkit for Windows 是一个工具包 允许开发人员在其应用程序中添加条形码检测 该工具包将图像文件或内存位图作为输入 并返回有关每个条形码的信息 包括值 类型和位置 所有主要的线性 1 D 条形
  • 1流明等于多少lux_要想投影仪画质清晰,投影仪流明和对比度不得不看

    在选购投影机的时候 大家都会根据预算 尽可能选择画质清晰的投影机 一般来说会根据使用场景的不同 从XGA到1080P甚至4K的分辨率 那么 投影机的画质清晰效果只和分辨率有关么 其实不是 一款画质效果好的投影机 和投影机的流明和对比度也是息
  • Vue—实现动画、过度效果

    动画效果
  • UnityLuaMvvM Lua 带通知的Mode类

    实现数据更新UI自动刷新的核心代码 欢迎关注https gitee com xiongks UnityMVVM mode function modeType local obj obj modeType modeType obj filds