如何将对象放置在flash中,移动和调整它们等等,然后将坐标/旋转导出到文本文件或类似的东西?
答案 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