普通帧,关键帧,空白关键帧的区别

 
 
1. 特点
帧——是进行flash动画制作的最基本的单位,每一个精彩的flash动画都是由很多个精心雕琢的帧构成的,在时间轴上的每一帧都可以包含需要显示的所有内容,包括图形、声音、各种素材和其他多种对象。

关键帧——顾名思义,有关键内容的帧。用来定义动画变化、更改状态的帧,即编辑舞台上存在实例对象并可对其进行编辑的帧。

空白关键帧——空白关键帧是没有包含舞台上的实例内容的关键帧。
普通帧——在时间轴上能显示实例对象,但不能对实例对象进行编辑操作的帧。
 
2. 区别
1) 关键帧在时间轴上显示为实心的圆点,空白关键帧在时间轴上显示为空心的圆点,普通帧在时间轴上显示为灰色填充的小方格
2) 同一层中,在前一个关键帧的后面任一帧处插入关键帧,是复制前一个关键帧上的对象,并可对其进行编辑操作;如果插入普通帧,是延续前一个关键帧上的内容,不可对其进行编辑操作;插入空白关键帧,可清除该帧后面的延续内容,可以在空白关键帧上添加新的实例对象。
3)关键帧和空白关键帧上都可以添加帧动作脚本,普通帧上则不能。

3. 应用中需注意的问题
1) 应尽可能的节约关键帧的使用,以减小动画文件的体积;
2) 尽量避免在同一帧处过多的使用关键帧,以减小动画运行的负担,使画面播放流畅
理解帧、关键帧、空白关键帧:
时间轴上的小方格叫单元格。可以把单元格转化为帧、关键帧、空白关键帧。
当播放头移到帧上时,帧的内容就显示在舞台上。
帧与关键帧都用来记录舞台的内容,但是帧只能显示离它最左边关键帧的内容,我们不能对帧的内容直接进行修改编辑,要想修改帧的内容,必须把它转变成关键帧,后者修改帧最左边关键帧的内容。
关键帧是可以直接编辑的帧。
空白关键帧是在舞台上没有任何内容的关键帧,一旦在空白关键帧上绘制了内容,它就变成关键帧。
可以这样简单记忆理解:
帧:不可以编辑,用来显示左边关键帧内容。
关键帧:有内容显示,可以编辑。
空白关键帧:没有内容显示,可以编辑添加内容。
 
添加帧只能延续上一个关键帧的内容,添加关键帧才可以编辑,两个关键帧之间的帧可以生成动作或形状动画。添加 关键帧时里面会自动有上一个关键帧的内容,如果你懒得删除,就插入空白关键帧。Action Script只有关键帧或空白关键帧里才可以用。在时间轴上帧是一个有颜色的方块,关键帧是一个有实心圆圈的方块,空白关键帧是一个有空心圆圈的方块。

 

 

转载于:https://www.cnblogs.com/xinqingHappy/archive/2013/03/25/2981319.html

### FP指针的概念及其在函数调用栈中的作用 #### 指针(Frame Pointer, FP)的定义 FP 是一种寄存器,称为指针寄存器(frame pointer register)。它用于指向当前活动记录(也叫栈)的基址位置[^2]。通过这种方式,FP 提供了一种稳定的方式来访问局部变量和函数参数。 #### 局部变量与函数参数的引用方式 当程序运行时,局部变量和函数参数相对于 FP 的偏移量通常是固定的。这意味着即使发生压栈或出栈操作,这些数据项的位置仍然可以通过 FP 来可靠地定位[^1]。这种机制使得调试更加方便,因为可以轻松追踪到特定变量的具体存储位置。 #### 栈布局中的角色 在一个典型的 C/C++ 调用链中,如果 `main` 函数依次调用了非叶子函数 `funa` 和 `funb`,则每个函数都会创建一个新的栈来保存自身的上下文信息。此时,在每一个新建立起来的栈顶部附近会分别存放该层执行所需的关键控制信息——LR (Link Register) 及上一层旧有的 FP 值副本: - **FP = SP + 0**: 表明新的 FP 设置成等于进入此过程那一刻堆栈顶端地址; - **LR = SP + 8**: 则表示链接寄存器被放置于稍低一点的地方以备后续跳转指令利用[^3]。 这样做的好处在于能够快速重建整个调用序列的历史轨迹:只要知道任意时刻任一活跃进程内的最新有效 FP/LR 对应关系即可完成回溯分析工作。 #### 非叶节点情况下的特殊处理 对于像 `funb` 这样的非叶子函数来说,由于可能会改变 RBP 寄存器的内容,所以在正式开始之前先要把原始状态暂存在自己所属区域里头以防丢失。等到最后准备退出之际再将其还原回去从而不影响其他部分正常运作流程[^4]。 ```c void funb() { // Save the old base pointer. __asm__("push %%rbp\n\t" "mov %%rsp,%%rbp"); // Function body... // Restore the previous frame and return. __asm__("leave\n\t" "ret"); } ``` 上述代码片段展示了如何手动管理 x86_64 架构下基于汇编实现的一个典型例子。其中,“push %rbp”命令负责把现有基底指标推送到堆栈之上;而“mov %rsp,%rbp”则是更新当前层次的新基准线。“leave”宏简化了清理动作并自动恢复先前设定好的环境配置之后紧接着由“ret”触发实际跃迁行为回到上级呼叫者处继续往下走。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值