本人最近遇到需要复制一个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的方法
这个方法我试过,可以正常使用
分享到:
相关推荐
标题"Action Script 3中文帮助"表明这是一份关于AS3的中文参考文档,对于中文使用者来说,它提供了一个学习和解决问题的便捷资源。通常,这样的帮助文件会包含AS3的所有核心概念、语法、类库和API,使得开发者能够...
AS3缓动类库是ActionScript 3编程中的一个重要工具,它主要被用于动画和特效的制作。在AS3中,缓动(Tweening)是一种技术,通过改变对象的属性值,如位置、大小、透明度等,在指定的时间内平滑地过渡,以创建出动态...
首先创建一个`Loader`对象,然后使用`load()`方法指定要加载的图片URL。例如: ```actionscript var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoaded); ...
46. **Copy** - 复制,创建一个对象或数据的副本。 47. **Circle** - 圆形,几何形状之一。 48. **Container** - 容器,可以容纳其他对象的对象。 49. **Close** - 关闭,结束程序或窗口。 50. **Crypto** - 加密,...
1. 拍照:创建一个Intent,设置ACTION_IMAGE_CAPTURE action,然后通过startActivityForResult()启动相机应用。当用户拍摄照片后,系统会返回结果到指定的Activity。 ```java Intent takePictureIntent = new ...
添加WebView到布局:在XML布局文件中,使用`<WebView>`标签创建一个WebView对象。\n\n2. 初始化并设置WebView:在Activity的onCreate()方法中,通过findViewById()获取WebView实例,然后调用WebView的loadUrl()方法...
在这个方法中,我们首先初始化一个`BarcodeWriter`对象,并将其格式设置为`BarcodeFormat.QR_CODE`,以指定我们要生成的是二维码。接着,我们创建一个`QrCodeEncodingOptions`对象,用于配置二维码的属性,如字符集...