我正在使用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