Команды Flash для экспорта Jpg. в Adobe Animate CC

Я сделал игру, которая позволяла пользователям наряжать логотип моей компании. Проблема в том, что я новичок в программировании и застрял на задаче, которая для меня довольно сложна.

Я хочу экспортировать только логотип и элементы, которые пользователь размещает на нем. Каждый элемент привязан к определенной рамке. Каждый элемент находится на отдельной странице, которая перемещается, когда пользователь щелкает вкладку на странице 1. Каждый ключевой кадр, в котором элемент находится на логотипе, также имеет отдельный именованный слой для упрощения каталогизации и поиска.

введите здесь описание изображения

Ниже приведен общий код:

var myWindowArray = [neckWindow1, eyesWindow1, hatsWindow1, hatsWindow2, accessoriesWindow1, accessoriesWindow2, colorsWindow1, faceWindow1];
function hideAllWindows(){
	for each (var window in myWindowArray){
		window.x=950
	}
}
neckButton1.addEventListener(MouseEvent.CLICK, showneckWindow1);
eyesButton1.addEventListener(MouseEvent.CLICK, showeyesWindow1);
hatsButton1.addEventListener(MouseEvent.CLICK, showhatsWindow1);
accessoriesButton1.addEventListener(MouseEvent.CLICK, showaccessoriesWindow1);
colorButton1.addEventListener(MouseEvent.CLICK, showcolorsWindow1);
faceButton1.addEventListener(MouseEvent.CLICK, showfaceWindow1);
accessoriesButton2.addEventListener(MouseEvent.CLICK, showaccessoriesWindow2);
hatsButton2.addEventListener(MouseEvent.CLICK, showhatsWindow2);

function showneckWindow1 (event:MouseEvent):void{
	hideAllWindows();
	neckWindow1.x=387.95
}
function showeyesWindow1 (event:MouseEvent):void{
	hideAllWindows();
	eyesWindow1.x=387.95
}
function showhatsWindow1 (event:MouseEvent):void{
	hideAllWindows();
	hatsWindow1.x=387.95
}
function showaccessoriesWindow1 (event:MouseEvent):void{
	hideAllWindows();
	accessoriesWindow1.x=387.95
}
function showaccessoriesWindow2 (event:MouseEvent):void{
	hideAllWindows();
	accessoriesWindow2.x=387.95
	accessoriesWindow2.y=121.10
}
function showcolorsWindow1 (event:MouseEvent):void{
	hideAllWindows();
	colorsWindow1.x=387.95
}
function showfaceWindow1 (event:MouseEvent):void{
	hideAllWindows();
	faceWindow1.x=387.95
}
function showhatsWindow2 (event:MouseEvent):void{
	hideAllWindows();
	hatsWindow2.x=387.95
	hatsWindow2.y=121.10
}

Затем этот код связывается с кодом отдельного окна следующим образом:

import flash.events.MouseEvent;

var myNeckArray = [glasses1, glasses2, glasses3, glasses4, glasses5, glasses6, glasses7, glasses8, glasses9, glasses10, glasses11, glasses12];
for each (var neck in myNeckArray) {
	neck.addEventListener (MouseEvent.CLICK, onNeckClick);
}
function onNeckClick (event:MouseEvent):void {
	MovieClip(parent).eyes_MC.gotoAndStop(event.target.name);
}

Как я могу получить доступ к отмеченным ключевым кадрам и экспортировать изображение? Кроме того, похож ли этот процесс и код на случай, если я хочу разрешить пользователям автоматически публиковать сообщения в Facebook при экспорте?


person Coding Novice    schedule 04.04.2016    source источник


Ответы (1)


Вы можете «нарисовать» любой MovieClip/Sprite в объект BitmapData следующим образом:

var bitmapData:BitmapData = new BitmapData(myMovieClip.width,myMovieClip.height);
bitmapData.draw(myMovieClip);

И закодируйте данные в такой формат, как JPG, PNG, используя as3corelib< /а> вот так:

import com.adobe.images.JPGEncoder;
var jpgEncoder:JPGEncoder = new JPGEncoder(quality);
var byteArray:ByteArray = jpgEncoder.encode(bitmapData);

Затем, если вы хотите сохранить изображение локально, просто сделайте следующее:

var fileReference:FileReference=new FileReference();
fileReference.save(byteArray, ".jpg");

Если вы хотите поделиться файлом на Facebook, вам нужно опубликовать ByteArray в сценарии на стороне сервера, а затем записать его в файл на вашем сервере, затем передать URL-адрес файла обратно в ваше приложение и использовать его для ссылки на изображение в пост в фейсбуке.

Поэтому нарисуйте самый верхний родительский элемент вашего готового «настраиваемого пользователем логотипа» в растровое изображение и выполните шаги, описанные выше.

person Iansen    schedule 04.04.2016