用于导出 Jpg 的 Flash 命令。在 Adob​​e Animate CC 中

Flash Commands for Exporting Jpg. in 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
}

然后该代码链接到个人 window 代码如下:

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);
}

如何访问标记的关键帧并导出图像?另外,如果我想让用户在导出时自动 post 到 Facebook,这个过程和代码是否相似?

您可以 "draw" 任何 MovieClip/Sprite 像这样的 BitmapData 对象:

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

然后使用 as3corelib 将数据编码为 JPG、PNG 格式,如下所示:

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 post 到服务器端脚本,然后将其写入服务器上的文件,然后传递文件 URL返回到您的应用程序并将其用于 link 到 Facebook post.

中的图像

因此,将完成的 "user customized logo" 的最顶层父级绘制到位图中,然后按照上述步骤操作。