`
netlynx206
  • 浏览: 40767 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Action script如何复制一个Bitmap对象

    博客分类:
  • flex
阅读更多

本人最近遇到需要复制一个Bitmap对象的问题,应用场景如下:

在我的一个Flash中经常需要加载同样的图片,而这张图片也是比较大的,所以就想第一次使用后就把这张图片缓存起来,以后用时直接从缓存读取就可以了,因此就遇到Bitmap对象的复制问题,在网上搜了一下,网友们有两种解决方案,如下
方案1:

Title public class MyImage{
  public var bitmap: Bitmap;
  public var url: String;
  public var x: number;
  public var y: number;

  public function clone(): MyImage()
  {
      var myImage: MyImage = new MyImage();
      myImage.bitmap = this.bitmap.clone;
      myImage.url = this.url;
      myImage.x = this.x;
      myImage.y = this.y;
      return myImage;
  }
}

这种方案网上有人说可以,但是我自己试了一下,好像不行,“this.bitmap.clone”这句话不对,Bitmap就没有clone这个属性
方案2:

...

import flash.net.registerClassAlias;
import flash.utils.getDefinitionByName;
import flash.utils.getQualifiedClassName;

...

public function clone(source:Object) :* {
        var typeName:String = getQualifiedClassName(source);//获取全名
        var packageName:String = typeName.split("::")[1];//切出包名
        var type:Class = Class(getDefinitionByName(typeName));//获取Class

        registerClassAlias(packageName, type);//注册Class
       
        //复制对象
        var copier:ByteArray = new ByteArray ();
        copier.writeObject(source);
        copier.position = 0;
        return copier.readObject();
}

这种方案虽然不报错,对象也复制成功了,但是好像图片就是无法正常显示
方案3:这是我自己的方案,其实也是很简单的事情

new Bitmap(sourceBitmap.bitMapData.clone())

Bitmap的bitmapData有clone的方法
这个方法我试过,可以正常使用

分享到:
评论
1 楼 wllove23 2011-07-28  
但是如果是一个继承于Bitmap的类要实现对象克隆呢?比如说GIFPlayer,不知道这个LZ用过没有。这是一个专门用来展示gif图片的,来补充Flex的image组件不支持gif动态展示的。

相关推荐

    Action script 3中文帮助

    标题"Action Script 3中文帮助"表明这是一份关于AS3的中文参考文档,对于中文使用者来说,它提供了一个学习和解决问题的便捷资源。通常,这样的帮助文件会包含AS3的所有核心概念、语法、类库和API,使得开发者能够...

    AS3缓动类库下载

    AS3缓动类库是ActionScript 3编程中的一个重要工具,它主要被用于动画和特效的制作。在AS3中,缓动(Tweening)是一种技术,通过改变对象的属性值,如位置、大小、透明度等,在指定的时间内平滑地过渡,以创建出动态...

    flash 自动加载外部图片 按左右键切换

    首先创建一个`Loader`对象,然后使用`load()`方法指定要加载的图片URL。例如: ```actionscript var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoaded); ...

    AS3常用英语单词大全

    46. **Copy** - 复制,创建一个对象或数据的副本。 47. **Circle** - 圆形,几何形状之一。 48. **Container** - 容器,可以容纳其他对象的对象。 49. **Close** - 关闭,结束程序或窗口。 50. **Crypto** - 加密,...

    android和js交互拍照后将url返回给js

    1. 拍照:创建一个Intent,设置ACTION_IMAGE_CAPTURE action,然后通过startActivityForResult()启动相机应用。当用户拍摄照片后,系统会返回结果到指定的Activity。 ```java Intent takePictureIntent = new ...

    安卓浏览器WebViewJSHTML5相关-HTML5JS调用手机摄像头拍照.rar

    添加WebView到布局:在XML布局文件中,使用`<WebView>`标签创建一个WebView对象。\n\n2. 初始化并设置WebView:在Activity的onCreate()方法中,通过findViewById()获取WebView实例,然后调用WebView的loadUrl()方法...

    C# 根据字符串生成二维码的实例代码

    在这个方法中,我们首先初始化一个`BarcodeWriter`对象,并将其格式设置为`BarcodeFormat.QR_CODE`,以指定我们要生成的是二维码。接着,我们创建一个`QrCodeEncodingOptions`对象,用于配置二维码的属性,如字符集...

Global site tag (gtag.js) - Google Analytics