0
我一直在环顾网上有关如何使用Facebook API给出的PostRequest类,但我无法找到它。我想知道如何使用它来上传位图数据。它似乎根本没有动。使用Facebook图形API上传BitmapData
我用这个代码和它的工作:
private function getSnapshot(e:MouseEvent):void
{
bmd = new BitmapData(vidDisplay.width, vidDisplay.height);
bmd.draw(vidDisplay);
vidDisplay.previewImg.source = new Bitmap(bmd);
isSnapshot = true;
vidDisplay.upload_btn.enabled = true;
vidDisplay.caption_txt.enabled = true;
vidDisplay.browse_btn.enabled = false;
}
protected function upload(w:MouseEvent):void
{
var img:* = (isSnapshot) ? bmd : fileRef ;
var values:Object = {message:vidDisplay.caption_txt.text, fileName:'FILE_NAME', image:img};
fb.callApi("post", "me", "photos", values);
vidDisplay.caption_txt.text = "";
vidDisplay.upload_btn.enabled = false;
vidDisplay.snapShot_btn.enabled = false;
}
然而,当我试图使整体功能拍摄照片并上传通俗易懂,这是行不通的。首先,它是这样的:
private function doTakeSnapshot(con:MovieClip, cap:String = null):void
{
ExternalInterface.call("doAlert", "doTakeSnapshot");
var bmd:BitmapData = new BitmapData(con.width, con.height);
bmd.draw(con);
if (cap == null) { cap = "Check out my photo!"; }
var values:Object = {message:cap, image:bmd};
doCallApi("post", "me", "photos", values);
}
然后我试图与PostRequest:
private function doTakeSnapshot(con:MovieClip, cap:String = null):void
{
ExternalInterface.call("doAlert", "doTakeSnapshot");
var bmd:BitmapData = new BitmapData(con.width, con.height);
bmd.draw(con);
if (cap == null) { cap = "Check out my photo!"; }
var ba:ByteArray = PNGEncoder.encode(bmd);
var pr:PostRequest = new PostRequest();
//var ba:ByteArray = pr.getPostData();
pr.createPostData();
pr.writePostData("fileName", "testtest");
pr.writeFileData("fileName", ba, "image/png");
pr.close();
var byteArray:ByteArray = pr.getPostData();
ExternalInterface.call("doAlert", "ByteArray = " + byteArray);
var values:Object = {message:cap, image:byteArray};
doCallApi("post", "me", "photos", values);
}
两个不工作,这令我费解。第一个没有以任何方式编码,所以我不明白为什么它不起作用,当我试图这样称呼它。任何帮助?
好的,从不介意。我已经发现了这个问题。我忘了把fileName:“file_name” – sanzochan 2011-02-01 09:35:31