Auf der Suche nach brauchbaren Anleitungen oder Tutorials wie man mittels Flash AS3 die Inhalte von MovieClips (z.B. dynamisch erzeugte Bilder oder Videos) als Grafik auf dem Server speichern kann, waren unzählige Beispiele die entweder falsch waren oder wo Teile fehlten. Nach einigen Stunden fummeln ist dann doch eine brauchbare Lösung entstanden.
Im folgenden Beispiel wurden 3 Klassen benutzt:
// Base64 für Flash
import encoding.Base64;
// PNG erstellen
import encoding.PNGEncoder;
// JPEG erstellen
import encoding.JPGEncoder;// BitmapData vom MC box erstellen
var bitmapData:BitmapData = new BitmapData(box.width, box.height);var reg:URLRequest = new URLRequest("/as3_mc_to_img.php");
var loader:URLLoader = new URLLoader();
var variables:URLVariables = new URLVariables();
reg.method = URLRequestMethod.POST;// PNG erstellen
btn_png.addEventListener(MouseEvent.CLICK, SavePNG );
function SavePNG(event:MouseEvent) {
bitmapData.draw(box);
var img:ByteArray = PNGEncoder.encode(bitmapData);
variables.png_file = 'file.png';
variables.stream = Base64.encodeByteArray(img);
reg.data = variables;
loader.load(reg);
navigateToURL(reg, "_blank");
}
// JPEG erstellen
btn_jpg.addEventListener(MouseEvent.CLICK, SaveJPG );
function SaveJPG(event:MouseEvent) {
bitmapData.draw(box);
var myEnc:JPGEncoder = new JPGEncoder(70);
var img:ByteArray = myEnc.encode(bitmapData);
variables.jpg_file = 'file.jpg';
variables.stream = Base64.encodeByteArray(img);
reg.data = variables;
loader.load(reg);
navigateToURL(reg, "_blank");
}