0

这是我的代码。我想要实现的是能够从相机捕获图像并将其上传到媒体服务器,但到目前为止我还无法成功对其进行编码。有人可以指出我正确的方向吗?

这是代码

  var imagePromise:MediaPromise = event.data;
  imageLoader = new Loader();
  imageLoader.contentLoaderInfo.addEventListener( Event.COMPLETE, asyncImageLoaded );
  imageLoader.addEventListener( IOErrorEvent.IO_ERROR, cameraError );
  imageLoader.loadFilePromise( imagePromise );
  function asyncImageLoaded(event:Event):void
    {

var destination:String = "upload.php";
var now:Date = new Date();
var fileName = "IMG" + now.fullYear + now.month + ".jpg";
var image:Bitmap = Bitmap(imageLoader.content);
var bitmapData:BitmapData = image.bitmapData;
var j = new JPGEncoder(80);
var bytes:ByteArray = j.encode(bitmapData);

      }

这是我尝试对图像进行编码时遇到的错误

TypeError:错误 #1009:无法访问空对象引用的属性或方法。

4

1 回答 1

1

哪条线?1009 表示您正在尝试访问 NULL 的变量。我猜在这种情况下,它可能是这样的:

var image:Bitmap = Bitmap(imageLoader.content);

尝试添加这个:

if (imageLoader.content is Bitmap) {
    var image:Bitmap = Bitmap(imageLoader.content);
} else {
    throw new Error("What the heck bob?");
}

如果这是一个错误,我敢打赌内容没有正确解码(这可能意味着不是图像/jpg的mime类型)

此外,您可能可以使用本机 jpeg 编码器来提高速度:(我相信 flash 11?)

var byteArray:ByteArray = new ByteArray(); 
bitmapData.encode(new Rectangle(0,0,640,480), new flash.display.JPEGEncoderOptions(), byteArray);

http://help.adobe.com/en_US/as3/dev/WS4768145595f94108-17913eb4136eaab51c7-8000.html

于 2012-06-21T17:54:50.980 回答