项目需要添加撤销,重做功能,调研了下flax,下面是调研的结构
引擎源码库

撤销/重做

IUndoAction

UndoActionBase

  • Serialize
  • TransformObjectsAction
  • UndoActionObject
  • SelectionChangeAction

AddRemoveTrackAction

EditFpsAction

EditTimelineAction

EditTrackAction

RenameTrackAction

ReorderTrackAction

ReparentAction

AddRemoveTransitionAction

AddRemoveNodeAction

ConnectBoxesAction

EditNodeConnections

EditNodeValuesAction

MoveNodesAction

EditAttributesAction

AddRemoveParamAction

RenameParamAction

DeleteInstanceAction

EditFoliageAction

EditInstanceAction

EditSelectedInstanceIndexAction

AddPatchAction

EditTerrainMapAction

EditModelVertexColorsAction

AddRemoveScript

BreakPrefabLinkAction

ChangeScriptAction

DeleteActorsAction

  • CustomDeleteActorsAction

PasteActorsAction

  • CustomPasteActorsAction

MultiUndoAction

AddRemoveParamAction

RenameParamAction

EditParamOverrideAction

EditParameterOverrideAction

SetRootAction

结构

_before

_after

Do

Undo

ActionString

IDisposable

Undo

  • EditorUndo

UndoMultiBlock

UndoBlock

EditorModule

Editor

EditorUndo

ThumbnailsModule

ContentDatabaseModule

ContentEditingModule

ContentFindingModule

ContentImportingModule

PrefabsModule

ProgressReportingModule

ProjectCacheModule

SceneEditingModule

SceneModule

SimulationModule

CodeEditingModule

UIModule

WindowsModule

OptionsModule

IUndoInternal

UndoInternal

UndoMultiInternal

Flax撤销,重做功能梳理相关推荐

  1. C# wpf 实现自定义撤销重做功能

    文章目录 前言 一.具体实现 1.完整代码 二.使用示例 1.拖动控件 (1)MainWindow.xaml (2)MainWindow.xaml.cs (3)效果预览 总结 前言 做wpf界面的时候 ...

  2. C++ 实现自定义撤销重做功能

    文章目录 前言 一.完整代码 二.使用示例 1.基本用法 2.gdi画线撤销 总结 前言 在使用c++做界面开发的时候,需要涉及到到撤销重做操作,尤其是实现白板功能时需要自己实现一套撤销重做功能,如果 ...

  3. Mac OS开发—Xcode给Mac应用添加编辑快捷键(剪切 复制 粘贴 全选 删除 撤销 重做)功能

    前言 笔者做Windows开发的,无奈公司有Mac OS的项目需要维护,之前没有编辑菜单的功能,需要笔者加上这个功能,笔者只能硬着头皮上.还好会c++,Mac应用里面一般都会用object-c 也可以 ...

  4. 实现编辑功能有哪几个action_Web 应用的撤销重做实现

    背景 前不久,我参与开发了团队中的一个 web 应用,其中的一个页面操作如下图所示: GIF 这个制作间页面有着类似 PPT 的交互:从左侧的工具栏中选择元素放入中间的画布.在画布中可以删除.操作(拖 ...

  5. Qt Undo Framework学习,实现撤销、重做功能

    0. 引言 在交互应用程序中撤销和重做(Undo/Redo)能力是很重要的.像常见的软件Office,AutoCAD等,有了撤销功能,用户体验更舒服.一般都会使用Command模式来实现这一功能. 1 ...

  6. java中系统撤销对象顺序实例,撤消/重做功能Java的对象序列化

    游戏编程与"企业应用程序"编程和"webapp编程"没有多大关系. 所以这取决于你正在做什么样的游戏,但你的方法和gaven所以这些票价与游戏状态在" ...

  7. kafka 串讲:架构模型、角色功能梳理

    kafka 串讲:架构模型.角色功能梳理 kafka 的 what why how,先有一个粗略宏观的理解 rabbitmq.各种 mq 的技术选型.横向对比 首先,kafka 是一个消息中间件.我们 ...

  8. 程序员如何理解Gmail“撤销发送”功能

     飞鸽传书用GMAIL已经10年了.可能是史上最长内测之后,谷歌终于推出 Gmail"撤销发送"功能.这项功能之前已经测试了长达 6 年时间,现在变成了 Gmail 一个永久性 ...

  9. 用dw 删除重复html文件,Dreamweaver怎么撤销重做,DW怎么返回上一步,看完就明白了...

    编辑代码难免会出错,还好现在的软件都有返回或者重做的命令.那么Dreamweaver怎么撤销重做,DW怎么返回上一步呢?来看看小编为您介绍的文章吧. 工具/材料 Dreamweaver CS6 htm ...

最新文章

  1. Linux crontab 命令基本说明
  2. CentOS6.2解决passwd: Authentication token manipulation error报错
  3. [POJ] 3687 Labeling Balls(拓扑排序)
  4. c++tcp接收文件缓存多大合适_必知必会的TCP/IP知识
  5. MySQL 日期时间类型怎么选?千万不要乱用!
  6. 成功解决raise Py4JError py4j.protocol.Py4JError: py4j.protocol.Py4JError: Could not find py4j jar at
  7. Android 4.4 packageinstaller之权限获取及展现
  8. 反思读别人代码的思路
  9. 故乡的路:十位少数民族摄影师联展
  10. 这款插件让你在VSCode上也能答题背单词
  11. 熟悉linux运行环境,实验一 熟悉Ubuntu环境
  12. 演练 影视演员简介 0929
  13. UVA299 UVALive5600 Train Swapping【逆序偶+暴力】
  14. mysql查询字段信息
  15. 统计思维:程序员数学之概率统计(第2版)PDF
  16. 【SLAM学习笔记】8-ORB_SLAM3关键源码分析⑥ Optimizer(三)全局优化
  17. Java获取某年某月的第一天
  18. iOS必备小技巧(非常的全)
  19. Yuga Labs「高处不胜寒」
  20. 魅族便签,能否成为国内便签应用的No.1?

热门文章

  1. 第十四章:mybatis-plus 自定义ID生成策略
  2. 分布式ID之雪花算法SnowFlake
  3. python(基本介绍)
  4. iOS7 Xcode5 键盘的处理
  5. 地表最强:免费文字转语音工具
  6. 【蓝桥杯单片机组第十一届省赛】— 客观试题
  7. C语言0长度数组(可变数组/柔性数组)详解
  8. 互联网信息流广告前景如何?
  9. ORDER BY 排序子句 | 零基础自学SQL课程系列Day6
  10. 如何部署php程序,如何正确部署您的PHP应用程序?