2016-04-04 4 views
0

Я сделал игру, которая позволит пользователям наряжать логотип моей компании. Проблема в том, что я полный новичок в кодировании, и я застрял на задаче, которая мне очень трудна.Команды Flash для экспорта JPG. в Adobe Animate CC

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

enter image description here

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

var myWindowArray = [neckWindow1, eyesWindow1, hatsWindow1, hatsWindow2, accessoriesWindow1, accessoriesWindow2, colorsWindow1, faceWindow1]; 
 
function hideAllWindows(){ 
 
\t for each (var window in myWindowArray){ 
 
\t \t window.x=950 
 
\t } 
 
} 
 
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{ 
 
\t hideAllWindows(); 
 
\t neckWindow1.x=387.95 
 
} 
 
function showeyesWindow1 (event:MouseEvent):void{ 
 
\t hideAllWindows(); 
 
\t eyesWindow1.x=387.95 
 
} 
 
function showhatsWindow1 (event:MouseEvent):void{ 
 
\t hideAllWindows(); 
 
\t hatsWindow1.x=387.95 
 
} 
 
function showaccessoriesWindow1 (event:MouseEvent):void{ 
 
\t hideAllWindows(); 
 
\t accessoriesWindow1.x=387.95 
 
} 
 
function showaccessoriesWindow2 (event:MouseEvent):void{ 
 
\t hideAllWindows(); 
 
\t accessoriesWindow2.x=387.95 
 
\t accessoriesWindow2.y=121.10 
 
} 
 
function showcolorsWindow1 (event:MouseEvent):void{ 
 
\t hideAllWindows(); 
 
\t colorsWindow1.x=387.95 
 
} 
 
function showfaceWindow1 (event:MouseEvent):void{ 
 
\t hideAllWindows(); 
 
\t faceWindow1.x=387.95 
 
} 
 
function showhatsWindow2 (event:MouseEvent):void{ 
 
\t hideAllWindows(); 
 
\t hatsWindow2.x=387.95 
 
\t 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) { 
 
\t neck.addEventListener (MouseEvent.CLICK, onNeckClick); 
 
} 
 
function onNeckClick (event:MouseEvent):void { 
 
\t MovieClip(parent).eyes_MC.gotoAndStop(event.target.name); 
 
}

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

ответ

2

Вы можете "нарисовать" любой MovieClip/спрайт в объект 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-адрес файла в приложение и использовать его для ссылки на изображение в Facebook сообщение.

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

Смежные вопросы