一. 前言
1. 画布状态
当前画布经过的一系列操作。
2. 状态栈
存放画布状态和图层的栈(后进先出)。
3. 画布的构成
由多个图层构成。
注意:在画布上操作 = 在图层上操作,如无设置,绘制操作和画布操作是默认在默认图层上进行。在通常情况下,使用默认图层就可满足需求;若需要绘制复杂的内容(如地图),则需使用更多的图层。最终显示的结果 = 所有图层叠在一起的效果。
二. 保存当前画布状态
1. 作用
保存画布状态(即保存画布的一系列操作)。
2. 应用场景
画布的操作是不可逆的,而且会影响后续的步骤,假如需要回到之前画布的状态去进行下一次操作,就需要对画布的状态进行保存和回滚。
3. 具体使用
1 | //方法1: |
三. 回滚上一次保存的状态
1. 作用
恢复上一次保存的画布状态。
2. 具体使用
1 | // 采取状态栈的形式。即从栈顶取出一个状态进行恢复。 |
四. 回滚指定保存的状态
1. 作用
恢复指定状态;将指定位置以及以上所有状态出栈。
2. 具体使用
1 | //弹出 3、4、5的状态,并恢复第3次保存的画布状态 |
五. 获取保存的次数
1. 作用
获取保存过图层的次数。即获取状态栈中保存状态的数量。
2. 具体使用
1 | //以上面栈为例,则返回5 |
六. 总结
对于画布状态的保存和回滚的套路,一般如下:
1 | //步骤1:保存当前状态 |