flash中一共有三个类具有该属性,这三个类分别是:KeyboardEvent,MouseEvent,TimerEvent。调用updateAfterEvent 属性的事件,可强制立即执行呈现操作,而不是等到呈现阶段。但是,如果 updateAfterEvent 频繁导致性能问题,应避免使用它。

1.updateAfterEvent怎么用?
有很多人做鼠标追随效果的时候,总是发现鼠标移动不流畅,不知该如何解决。
其实方法很简单,你只需要加上一句updateAfterEvent()就ok了。
   
  2.先来看看帮助中是怎么解释as3的updateAfterEvent的:
在 onClipEvent() 处理函数内调用updateAfterEvent函数时,或将其作为传递给 setInterval() 的函数或方法的一部分进行调用时,将更新显示(与为影片设置的每秒帧数无关)。如果对 updateAfterEvent 的调用不在 onClipEvent() 处理函数内,也不是传递给 setInterval() 的函数或方法的一部分,则 Flash 将忽略该调用。此函数只对某些 Mouse 和 MovieClip 处理函数起作用:Mouse 类的 mouseDown、mouseUp、mouseMove、keyDown 和 keyUp 处理函数;MovieClip 类的 onMouseMove、onMouseDown、onMouseUp、onKeyDown 和 onKeyUp 处理函数。它对 Key 类不起作用。
   
  3.其实说到底updateAfterEvent的作用就是使光标移动看起来更加顺畅。
  下面是updateAfterEvent的例子,目的让大家更方便的理解它的作用。
当鼠标移到舞台左面的“有执行updateAfterEvent”的区域时,鼠标移动将流畅,而当鼠标移动到舞台右面的“无执行updateAfterEvent”的区域时,鼠标移动较会有间断,不流畅游戏http://www.shengshiyouxi.com。
  看看as:
  //使用 updateAfterEvent() 继续刷新舞台以使光标的移动看起来顺畅。

package
{
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.MouseEvent;

public class TUpdateEvent extends Sprite
{
[Embed(source="assets/TT2.jpg")]
private var img:Class;

private var bmp:Bitmap;
public function TUpdateEvent()
{
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;

bmp = new img() as Bitmap;
addChild(bmp);

stage.addEventListener(MouseEvent.MOUSE_MOVE , stageMouseMove);
}

private function stageMouseMove(evt:MouseEvent):void
{
bmp.x = this.mouseX;
bmp.y = this.mouseY;

evt.updateAfterEvent();
}
}
}

从上面的例子可以看出来,调用updateAfterEvent()函数与不调用该函数视觉上的效果是不一样的,调用了会感觉很平滑,不调用会有闪烁的感觉

as3 updateAfterEvent的作用的更多相关文章

  1. (转)AS3 中,Function.apply、call中第一个参数的作用;与什么时候用

    http://blog.csdn.net/linjf520/article/details/8746064 大家在使用Function.apply或是call时,是否发现,第一个参数不知道怎么用,赋值 ...

  2. as3正则表达式

    1.新建正则表达式,有两种方式var exp1:RegExp = new RegExp("ABCD","g");var exp2 = /ABCD/g;//g g ...

  3. [AS3]as3画笔实例实现橡皮擦功能源代码

    [AS3]as3画笔实例实现橡皮擦功能源代码 //主容器 var main:Sprite = new Sprite(); main.mouseEnabled = false; addChild(mai ...

  4. (转)as3效率优化

    1.改进算法无论对于那一种程序,好的算法总是非常重要的,而且能够极大地提高程序性能,所以任何性能的优化第一步就是从算法或者说程序逻辑的优化开始,检查自己的程序是否有多余的运算,是否在没有必要的时候做了 ...

  5. flex+AS3编程规范

    flex+AS3编程规范 Flex+AS3编码规范 http://www.cnblogs.com/jiahuafu/   1.  缩写: 尽量避免使用缩写,使用缩写时尽量和Flex保持一致.但要记住一 ...

  6. 【Flex教程】#009 As/typeof /instanceof /is的作用

    “as” :主要用它做类型转化 假设有一个类叫做Class1,我们声明了一个它的对象 c1,如果想要将它转换成Class2类型,只要这样写: Class2(c1); AS3 中的操作符: as 实现就 ...

  7. AS3游戏中可视对象上限及位图相关的内存消耗实测

    前些天连续做了一些测试,以加深对AS3的掌握和在项目中对 游戏 性能.效率优化方面的一些处理,有很多测试实际意义不大,都不过是证明一些猜想是正确的,除此没有什么. 但前天进行的一系列测试中,有一些对游 ...

  8. C++与AS3

    ActionScript 3(简称AS3)与 c++ 都是面向对象的编程(OOP)语言,都具有OOP的特性如封装.继承.多态等.二者在语法上有许多相似之处,基本上学过C++之后再学习AS3感觉并不是特 ...

  9. as3 公式

    AS3缓动公式:sprite.x += (targetX - sprite.x) * easing;//easing为缓动系数变量sprite.y += (targetY - sprite.y) * ...

随机推荐

  1. Excel函数大全

    我们在使用Excel制作表格整理数据的时候,经常要用到它的函数功能来自己主动统计处理表格中的数据.这里整理了Excel中使用频率最高的函数的功能.用法,以及这些函数在实际应用中的实例剖析,并配有具体的 ...

  2. [Redux] Extracting Container Components -- Complete

    Clean TodoApp Component, it doesn't need to receive any props from the top level component: const To ...

  3. 安装VMware Sphere ESXi 5.5

    安装VMware Sphere ESXi 5.5 1.准备 待安装ESXi 5.5的机器需要大于2GB以上内存,并且支持64位和虚拟化. 下载:VMware-VMvisor-Installer-5.5 ...

  4. rsync+inotify实时同步方案

    rsync+inotify实时同步,inotify可以实时监控本地文件或目录变化,当检测到本地文件变化,执行rsync同步命令,将变化的文件同步到其他服务器节点. 1.配置环境 3.在服务节点1.服务 ...

  5. 使用NSURLCache为NSURLRequest设置缓存

    http://m.blog.csdn.net/blog/u011439689/18734363#

  6. VC进程提权

    如果我们想读取目标进程中的内存 就需要将进程提权 否则访问失败. 下面是提权代码 #include <TlHelp32.h> /****************************** ...

  7. (二)CSS3应用 - 实现圆角

    html <link href="test.css" type="text/css" rel="stylesheet" /> & ...

  8. 洛谷 P3397 地毯

    P3397 地毯 题目背景 此题约为NOIP提高组Day2T1难度. 题目描述 在n*n的格子上有m个地毯. 给出这些地毯的信息,问每个点被多少个地毯覆盖. 输入输出格式 输入格式: 第一行,两个正整 ...

  9. hdu5347 MZL's chemistry(打表)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud MZL's chemistry Time Limit: 2000/1000 MS ...

  10. MFC多线程编的可能

    1. 之所以是“可能”,因为这里有个重点就是临时对象是HWND操作的封装,不是窗口类的封装.因此所有的HWND临时对象都是CWnd的实例,即使上面强行转换为CAbcDialog*也依旧是CWnd*,所 ...