`
RednaxelaFX
  • 浏览: 3047886 次
  • 性别: Icon_minigender_1
  • 来自: 海外
社区版块
存档分类
最新评论

Flash中使用BitmapData来Double Buffering (转载链接)

阅读更多
原文在此
Kieth的blog。相当有趣。看来可以在这个blog上找到不少Flash 9/ActionScript 3的技巧。

原文的主旨在于对比是否使用double buffering对Flash中的绘制性能的影响。但阅读下面的评论会发现很有趣的结论:不用double buffering也未必会慢多少;可以使用“lock()”。

package {
    import flash.display.Sprite;
    import flash.utils.getTimer;
    import flash.display.Bitmap;
    import flash.display.BitmapData;

    public class BlitTest extends Sprite
    {
        public function BlitTest()
        {
            var bmp1:BitmapData = new BitmapData(500, 500, true, 0);
            var bmp2:BitmapData = new BitmapData(500, 500, true, 0);
            var bmp3:BitmapData = new BitmapData(500, 500, true, 0);
            var holder1:Bitmap = new Bitmap(bmp1);
            addChild(holder1);
            var holder2:Bitmap = new Bitmap(bmp2);

            var start:int
            var i:uint;

            start = getTimer();
            bmp1.lock();             // LOCK BITMAP
            holder1.visible = false; // AND SET TO INVISIBLE!
            for(i = 0; i <1000000; i++)
            {
                bmp1.setPixel(
                    Math.random() * 500,
                    Math.random() * 500,
                    Math.random() * 0xffffff);
            }
            bmp1.unlock();          // UNLOCK
            holder1.visible = true; // SET TO VISIBLE
            trace(getTimer() - start);


            start = getTimer();
            for(i = 0; i <1000000; i++)
            {
                bmp2.setPixel(
                    Math.random() * 500,
                    Math.random() * 500,
                    Math.random() * 0xffffff);
            }
            trace(getTimer() - start);

            start = getTimer();
            for(i = 0; i <1000000; i++)
            {
                bmp3.setPixel(
                    Math.random() * 500,
                    Math.random() * 500,
                    Math.random() * 0xffffff);
            }
            trace(getTimer() - start);
        }
    }
}

(摘自Kieth的blog)
分享到:
评论

相关推荐

    使用C#的BitmapData

    在上述代码示例中,我们看到如何使用`BitmapData`来实现一个简单的位图像素转换功能,即将输入位图中的每个像素的RGB值取反并创建一个新的输出位图。首先,创建了一个新的`Bitmap`对象`bmpOut`,并定义了输入位图`m_...

    BitmapData.draw方法

    BitmapData对象是Flash中的位图数据容器,它存储了像素级别的颜色信息。你可以创建一个新的BitmapData对象,或者从现有的Bitmap或DisplayObject中获取。通过BitmapData对象,我们可以进行像素级别的操作,比如读取、...

    ActionScript 3 BitmapData 的例子

    ActionScript 3是Adobe Flash平台的核心编程语言,用于创建交互式富媒体内容,如网页游戏、动画和应用程序。BitmapData是ActionScript 3中的一个关键类,它提供了对位图图像进行低级处理的能力。本篇文章将深入探讨...

    [转] BitmapData 基础部分2

    BitmapData是ActionScript 3(AS3)中的一个核心类,它是处理像素数据的主要工具,广泛应用于游戏开发、图像处理和动画制作等场景。在AS3中,BitmapData类允许我们创建、读取、修改和操作位图数据,这些位图数据可以...

    BitmapData.zip

    BitmapData.zip 文件是一个包含 Delphi 开发中使用的 BitmapData 单元的压缩包。这个单元主要是为了实现图像处理和颜色查找功能,对于 Delphi 开发者来说,它提供了一个高效且方便的工具来搜索和操作图像数据。让...

    SWT中的bitmapdata,和自己封装的image工具类

    在这个主题中,我们将深入探讨BitmapData以及如何与自定义的Image工具类配合使用。 BitmapData类提供了对图像数据的低级别访问,包括设置和获取像素颜色、转换图像格式等操作。这个类通常用于创建、修改或分析图像...

    BitmapData.pas和kbKernel.pas

    BitmapData.pas 和 kbKernel.pas 这两个文件在IT领域中主要涉及到图像处理和自动化操作,特别是游戏或图形应用中的找图找色功能。在本文中,我们将深入探讨这两个关键概念及其在实际编程中的应用。 首先,...

    flash image处理类库

    在Flash中,可以使用BitmapData类来处理图像数据。BitmapData对象可以用于读取、写入和操作位图。例如,你可以将一个JPEG图像转换为BitmapData对象,然后进一步处理,如调整大小、裁剪或应用滤镜效果。 3. 字符与...

    asp.net 中使用flash实现在线拍照

    综上所述,"asp.net中使用flash实现在线拍照"涉及到的技术主要包括ASP.NET的服务器端编程、Flash的客户端交互以及网络通信。随着技术的发展,尽管Flash逐渐被淘汰,但其在历史上的重要作用不可忽视,而类似的功能...

    Flash图片放大技术源码实例.rar

    在Flash中,我们可以使用ActionScript编程语言来控制动画和交互行为。 在这个实例中,核心知识点包括: 1. **ActionScript 3.0**:ActionScript是Flash中的编程语言,版本3.0提供了更高效、更面向对象的编程模型。...

    flash 图片上传 裁剪

    1. **BitmapData类**:Flash中的`BitmapData`类是处理像素的主要工具。你可以使用它来加载图片,然后通过`draw()`方法绘制到舞台上。一旦图片加载到`BitmapData`,就可以对其进行各种操作,包括裁剪。 2. **Rect...

    flash加载外部图片

    首先,我们需要了解Flash中的两种主要的图片加载方式:使用Loader类和使用BitmapData类。Loader类是ActionScript 3.0中用于加载图形内容的主要工具,包括图片、SWF文件等。BitmapData类则用于处理位图数据,它可以...

    [心得] draw的技巧,说说BitmapData(附源码)

    BitmapData是ActionScript 3(AS3)中的一个核心类,它是Adobe Flash Professional和Flex开发中的重要组成部分。这篇心得分享了关于使用BitmapData的一些高级技巧,以及如何利用它来提升图形绘制的效率和效果。...

    flash 卡马克算法

    在Flash中,卡马克算法还结合了位图操作和预处理技巧来优化资源加载。例如,它可能使用位图合并(Bitmap Blitting)技术,将多个小图像合并成一张大图,减少加载次数。这种技术称为精灵表(Sprite Sheet),可以有效...

    flash 摄像头控制

    在Flash中,摄像头控制是通过ActionScript实现的,ActionScript是Flash的编程语言,用于增加交互性和动态功能。 一、摄像头访问与初始化 在Flash中,首先需要获取对用户电脑上摄像头的访问权限。这可以通过`Camera....

    delphi 找图找色 BitmapData.pas

    delphi 找图找色 BitmapData.pas 使用方法请到原作者yeye55的blog查看, http://yeye55blog.blog.163.com/blog/static/19724102120111043252016/

    多图片上传flash+php

    2. **文件选择与预览**:在Flash中,使用FileReference类来实现文件选择。用户选择图片后,可以通过FileReference的load方法加载图片进行预览,同时也可以读取文件元数据,如图片尺寸和类型。 3. **图片方向修正**...

    flash_images_FlashVars.rar

    通过这种方式,我们可以根据用户的需求或者服务器返回的数据动态改变Flash中显示的图片和效果,使得Flash内容更加灵活和互动。 总结起来,FlashImages_FlashVars的概念涉及了Flash内容与HTML页面的交互,以及如何...

    flash 视频运动检测

    在Flash中,可以使用BitmapData对象的getPixels()和setPixels()方法获取和修改像素数据,然后比较两帧的差异。 四、光流法 光流法更复杂,它考虑了像素在空间上的连续性和时间上的连续性,通过求解像素的二维速度场...

    flash AS3实现截屏不能少的库。这个库需要与aether.swc一起使用.zip

    在这个截屏库中,可能利用了`flash.display.BitmapData`类来创建屏幕快照,这个类允许开发者读取和写入像素数据,从而实现截图。`BitmapData.draw()`方法可以将舞台或者任何显示对象绘制到BitmapData对象上,为截屏...

Global site tag (gtag.js) - Google Analytics