วิธีการทำให้รูป Facebook Profile สามารถแก้ไข/ใส่เพิ่มใน ActionScript ได้ by

31
Oct
0

โดยปกติเราเมื่อเรานำรูปโปรไฟล์เฟซบุ๊คไปทำการ redraw, แก้ไข หรือนำไปใส่ในไฟล์ AS ต่างๆ ก็จะมี Error ขึ้นมาเตือนเรื่อง Security ว่าไม่สามารถทำงานได้ ดังตัวอย่างเช่นเราใช้ capture รูปของ Spark Group ที่มีรูปโปรไฟล์เฟซบุ๊คหนึ่งอยู่ ตามฟังก์ชั่นดังนี้

public function captureImg(imageObject:IBitmapDrawable):String { //รับกรุ๊ปเข้ามา
var ohSnap:ImageSnapshot;
ohSnap = ImageSnapshot.captureImage(imageObject, 0, pngEnc); //ทำการ Capture รูป ซึ่งจะบั๊คที่บรรทัดนี้
var imageByteArray:ByteArray = ohSnap.data as ByteArray;
return ImageSnapshot.encodeImageAsBase64(ohSnap);
}

จะทำให้เกิด Error หน้าตาแบบนี้

SecurityError: Error #2122: Security sandbox violation: BitmapData.draw: http://localhost/****.swf/[[DYNAMIC]]/2 cannot access http://profile.ak.fbcdn.net/hprofile-ak-prn1/*****.jpg. A policy file is required, but the checkPolicyFile flag was not set when this media was loaded.

at flash.display::BitmapData/draw()

ซึ่งวิธีการแก้ไขคร่าวๆของเราก็คือ การขอ Security Domain ต่างๆของรูปโปรไฟล์เฟซบุ๊คเอาไว้ก่อนหน้า ดังนี้

var domainList:Array = ['http://profile.ak.fbcdn.net','http://profile.cc.fbcdn.net','http://fbcdn-profile-a.akamaihd.net','http://photos-a.ak.fbcdn.net','http://photos-b.ak.fbcdn.net','http://photos-c.ak.fbcdn.net','http://photos-d.ak.fbcdn.net','http://photos-e.ak.fbcdn.net','http://photos-f.ak.fbcdn.net','http://photos-g.ak.fbcdn.net','http://photos-h.ak.fbcdn.net','http://static.ak.facebook.com','http://static.ak.fbcdn.net','http://b.static.ak.fbcdn.net'];
for each (var domain:String in domainList) {
Security.loadPolicyFile(domain+'/crossdomain.xml');
Security.allowDomain(domain);
Security.allowInsecureDomain(domain);
}

เพียงเท่านี้แอปพลิเคชั่นของเราก็จะสามารถรันได้เป็นปกติแล้วล่ะครับ

 เราชนะรอบ 4 | ยืมเงิน 3000 ด่วน | แอพกู้เงิน | แอพเงินด่วน | สินเชื่อออนไลน์อนุมัติทันที | Site Map | กู้เงินก้อน | กระเป๋าตัง | thisshop และ ยืมเงินฉุกเฉิน 5000 ด่วน