ส่งรูปจาก Flex ,Flash ไปให้ php by arthit
Jan0
ในตัวอย่างนี้เราจะทำงานส่งรูปไปให้ php โดยทาง flash จะทำการ encode MovieClip เป็น String แบบ Base64 ไปให้ php จัดการ
รูปที่ 1
var pngEnc:PNGEncoder = new PNGEncoder();
var base64:String = captureImg(mc); // mc คือตัว movieClip ที่ส่งไป encode สำหรับส่งไปให้ php
var sendData:Object = {'base64':base64};
var urlToSendPhp:String;// url php ที่เราจะส่งรูปไปให้
RequestHelper.sendRequest(urlToSendPhp ,null,sendData);
function captureImg(imageObject:IBitmapDrawable):String
{
var ohSnap:ImageSnapshot;
ohSnap = ImageSnapshot.captureImage(imageObject,0,pngEnc);
var imageByteArray:ByteArray = ohSnap.data as ByteArray;
return ImageSnapshot.encodeImageAsBase64(ohSnap);
}
ก่อนที่เราจะส่งไปให้ php เราต้องเช็คก่อนว่า encode ถูกต้องรึเปล่า
วิธีเช็คดูจากที่นี่ครับ
การเช็คข้อมูล base64 ที่ถูกแปลงมาจากรูปแก้ไข MovieClip หลายๆเฟรม พร้อมๆกัน by arthit
Jan0
กรณีที่เราต้องการแก้ไข ตำแหน่ง หรือปรับขนาดของ MovieClip ที่อยู่บน timeline หลายๆเฟรมพร้อมๆกัน
ขั้นแรกไปที่ Timeline ที่เราต้องการแก้ไข MovieClip และทำการ lock layer ที่ไม่เกี่ยวข้องทั้งหมด
เสร็จแล้วคลิกที่ Edit Multiple Frames ตามรูปที่ 2
รูปที่ 2
ปรับช่วงเฟรมที่เราต้องการแก้ไข โดยการคลิกตรงจุด วงกลมสีแดงค้างไว้ แล้วปรับขนาดตามรูป ตามรูปที่ 3
ในตัวอย่างนี้ผมต้องการแก้ไขเฟรมแรก จนถึงเฟรมสุดท้าย
เสร็จแล้ว กด ctrl+a เพื่อเลือกวัตถุที่เราต้องการแก้ไข โดยตัวอย่างนี้ผม ขยับตำแหน่งขึ้นไปข้างบน,ปรับขนาดให้เล็กลง พร้อมกับลด Alpha ลงอีกด้วย ตามรูปที่ 5-6 จะเห็นได้ว่าเราสามารถแก้ไข MovieClip ได้พร้อมๆ กัน โดยที่เราไม่ต้องเข้าไปแก้ไขทีละเฟรมให้เสียเวลา
การอ้างอิง Class แบบ dynamic ด้วย getDefinitionByName() by arthit
Aug0
getDefinitionByName() เป็นการอ้างอิง Class แบบ dynamic เช่น ถ้าเรามี Class หรือมีการสร้างมูฟวี่คลิปไว้ในไลบราลี่
เราก็สามารถอ้างอิงนำมาใช้แบบ dynamic ในรูปแบบที่หลากหลาย เช่น
ในไลบราลี่ มี Mc1,Mc2,Mc3,Mc4,Mc5
เราจะทำการสร้างมูฟวี่คลิปขึ้นมาใหม่ โดยการ Random Class จากไลบราลี่
var _flower:MovieClip;
for (var i:uint=0; i<10; i++)
{
var num:uint = (Math.random()*5)+1;
var classRef:Class = Class(getDefinitionByName("Mc"+num));
_flower = new classRef();
_flower.name = "mc" + (i + 1);
addChild(_flower);
}
ทีนี้เราก็จะได้มูฟวี่คลิปที่แตกต่างกัน
ตัวอย่าง
https://dl-web.dropbox.com/get/Public/blog_levelup.swf?w=3ec274cc