调整大小,移动,导出flash中对象的坐标

时间:2011-01-19 23:19:23

标签: flash actionscript resize export move

如何将对象放置在flash中,移动和调整它们等等,然后将坐标/旋转导出到文本文件或类似的东西?

1 个答案:

答案 0 :(得分:1)

您的意思是在运行时或作者时间(在IDE中)?

对于运行时,您只需遍历您感兴趣并存储的剪辑 text / xml中的属性:

var layout = <layout />;//create the root node for our xml
var elementsNum = numChildren;//store this for counting

for(var i = 0 ; i < elementsNum ; i++){
    var clip = getChildAt(i);
    layout.appendChild(<element />);//add an element node
    layout.element[i].@name = clip.name;//setup attributes
    layout.element[i].@x = clip.x;
    layout.element[i].@y = clip.y;
    layout.element[i].@rotation = clip.rotation;
    layout.element[i].@scaleX = clip.scaleX;
    layout.element[i].@scaleY = clip.scaleY;
}

flash.system.System.setClipboard(layout);
trace('layout copied to clipboard');

这将创建一个xml,其中当前MovieClip中的每个剪辑都是一个节点,并存储了一些属性。然后将xml复制到剪贴板。

你可以在作者的时候做一些类似的事情,比如选择:

var doc = fl.getDocumentDOM();//get the current document ref.
var selection = doc.selection;//get the selection
var layout = <layout />;//create the root node for our xml
var elementsNum = selection.length;//store this for counting

for(var i = 0 ; i < elementsNum ; i++){
    layout.appendChild(<element />);//add an element node
    layout.element[i].@name = selection[i].name;//setup attributes
    layout.element[i].@x = selection[i].x;
    layout.element[i].@y = selection[i].y;
    layout.element[i].@rotation = selection[i].rotation;
    layout.element[i].@scaleX = selection[i].scaleX;
    layout.element[i].@scaleY = selection[i].scaleY;
}

var url = fl.browseForFileURL('save','Save Layout');//prompt for location
if(url) fl.trace(FLfile.write(url,layout));//save

如果将此文件保存为Flash的命令文件夹中的.jsfl文件,则应在IDE的“命令”菜单中弹出,否则您应该可以简单地运行它。 并不是它存储了name属性,因此选择应该包含MovieClip(或带有名称的元素)。然后显示保存对话框,并将xml保存到文本文件中。

这些是基本示例,但是应该允许您开始并按照您需要的方式编写此文本文件(您可能想要遍历所有影片剪辑而不是选择,可能想要存储不同的属性等)

无耻的插件:你可能会发现这个slim JSFL presentation很方便。

HTH