0

我保存了一个位图,我想在运行时加载它。

这是我的代码:

var saveDataTxt:SharedObject = SharedObject.getLocal("文件");

var 文本名称:字符串;var textClass:类;

文本名称=“文本0”+ 1;textClass = getDefinitionByName(textName) as Class;
var tx:BitmapData = new textClass(); txtP[1] = 新位图(tx);

saveDataTxt.data.txtArray[1] = txtP[1];

addChild(saveDataTxt.data.txtArray[n]);

但它给了我一个错误:

**TypeError: Error #1034: Type Coercion failed: cannot convert Object@384c2b1 to flash.display.DisplayObject.**

解决方案是什么?

4

1 回答 1

1

要将位图存储在共享对象中,您需要先将其序列化为字节数组(请参阅是否可以将图像存储在 Flash 的 SharedObject 中?

您可以做的就是将您的自定义 BitmapData 子类存储在共享对象中(如果您不想打扰字节数组)

//you need to register every class/subclass in your shared object
registerClassAlias("flash.display.BitmapData", BitmapData);


var saveDataTxt:SharedObject = SharedObject.getLocal("File");

var textName:String; var textClass:Class;

textName = "Text0" + 1; textClass = getDefinitionByName(textName) as Class;
registerClassAlias(textName,textClass); //need to register the custom class

var tx:BitmapData = new textClass(); txtP[1] = new Bitmap(tx);

saveDataTxt.data.txtArray[1] = tx; //just store the bitmap data

addChild(new Bitmap(saveDataTxt.data.txtArray[n] as BitmapData)); //you have to cast the object as bitmap data
于 2013-07-05T19:07:44.390 回答