我做了一个允许用户打扮我公司徽标的游戏。问题是我是一个完全编码的新手,而且我遇到了一项对我来说非常困难的任务。
我想只导出徽标和用户放置的项目。每个项目都与特定框架相关联。每个项目都在一个单独的页面中,当用户单击第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?
答案 0 :(得分:2)
你可以"画"像这样的任何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发布到服务器端脚本,然后将其写入服务器上的文件,然后将文件URL传递回应用程序并使用该文件链接到Facebook帖子中的图片。
因此,绘制完成的"用户自定义徽标的最顶级父母"到位图并按照上面的步骤。