(AS3)显示字符串中的图像

时间:2012-05-01 13:12:56

标签: actionscript-3

我正在使用flash(AS3)制作游戏,我希望能够显示字符串中的图像。这样我就可以将我的服务器(用python编写)中的文本流发送到flash,并让它显示图像。我已经找到了如何从本地存储的文件中显示图像,但是从服务器发送图像意味着可以更改它们而无需重新编译.swf。它还允许用户个人资料图片等内容。

所以我的问题是,如何拍摄以文字表示的图像,例如

GIF89a  ³ ÿê EEE   ÿÎ ÿÉ ÿ´ þ ÿþ“ÿýÿÿÿÿÿÇ333ÿÿëÿå       !ù   ,       [ÐIjØU¦ÎpœƒLA''ð¦«v˜qj
Ÿ?‚*pÆ‚…Ê!Ç’Ó¢  X<+Ùk»®YAb<všÁ Á5ÓXj‚\þ
øÂ0òÔ& ;

并将其显示为闪存中的图像?我尝试过使用BitmapData.setPixels等很多东西,但似乎没有按预期工作,当我在字符串图像上使用setPixels转换为ByteArray时,我从代码中得到了这个错误

import flash.display.BitmapData;
import com.dynamicflash.util.Base64

var img:String = "GIF89a  ³ ÿê EEE   ÿÎ ÿÉ ÿ´ þ ÿþ“ÿýÿÿÿÿÿÇ333ÿÿëÿå       !ù   ,[ÐIjØU¦ÎpœƒLA''ð¦«v˜qj";
img += "Ÿ?‚*pÆ‚…Ê!Ç’Ó¢  X<+Ùk»®YAb<všÁ Á5ÓXj‚\þ";
img += "øÂ0òÔ& ;\x00";

var imgba:ByteArray = new ByteArray();
imgba.writeMultiByte(img, "utf8")

var rect:Rectangle = new Rectangle(0,0,16,16); 
//var byteArray:ByteArray = BitmapData.getPixels(rect); 
var encoded:String = Base64.encodeByteArray(imgba); 

var decoded:ByteArray = Base64.decodeToByteArray(encoded); 
decoded.position = 0; 
var newBmd:BitmapData = new BitmapData(rect.width,rect.height,true,0xFFFFFFFF); 

newBmd.setPixels(rect, decoded); 


var image:Bitmap = new Bitmap(newBmd, "auto", true); 
addChild(image); 



The error:

Error: Error #2030: End of file was encountered.
    at flash.display::BitmapData/setPixels()
    at ImageTest_fla::MainTimeline/frame1() 

有没有人知道如何将文本转换成位图以便在flash中显示?

提前致谢,

H4rtland

0 个答案:

没有答案