JSFL:如何在AdobeFlashCS5中访问关键帧之间的运动?

JSFL:如何在AdobeFlashCS5中访问关键帧之间的运动?,flash,flash-cs5,jsfl,Flash,Flash Cs5,Jsfl,我们的动画师在AdobeFlashCS5中创建了一个非常复杂的movieclip,包含50多个层、运动tweens和3D tweens。不幸的是,她把所有元素都放得太右680像素,太下400像素 我们试图找到一种方法,在不破坏动画的情况下移动所有层上的所有元素。我们尝试了一个名为“MoveRegpoint”的JSFL脚本,但它不能正确处理关键帧之间的运动(菱形)。所以现在我正试图自己编写一个JSFL 如何确定帧是否为运动中间帧以及帧是否为关键帧?请参阅当前脚本: // get the selec

我们的动画师在AdobeFlashCS5中创建了一个非常复杂的movieclip,包含50多个层、运动tweens和3D tweens。不幸的是,她把所有元素都放得太右680像素,太下400像素

我们试图找到一种方法,在不破坏动画的情况下移动所有层上的所有元素。我们尝试了一个名为“MoveRegpoint”的JSFL脚本,但它不能正确处理关键帧之间的运动(菱形)。所以现在我正试图自己编写一个JSFL

如何确定帧是否为运动中间帧以及帧是否为关键帧?请参阅当前脚本:

// get the selected Element
var vElement = fl.getDocumentDOM().selection[0];

// get the Timeline of the Element
var vTimeline = vElement.libraryItem.timeline;

// loop over the Timeline's Layers
var vLayersLength = vTimeline.layers.length;
for (var i=0; i<vLayersLength; ++i) {
    var vLayer = vTimeline.layers[i];

    // loop over each Layer's Frames
    var vFramesLength = vLayer.frames.length;
    for (var j=0; j<vFramesLength; ++j) {
        var vFrame = vLayer.frames[j];

        if(vFrame.isMotionObject()) {
            // DOES NOT WORK, startFrame is always 0
            if(vFrame.startFrame == j) {}
        }
    }    
}
//获取所选元素
var-vElement=fl.getDocumentDOM().selection[0];
//获取元素的时间线
var vTimeline=vElement.libraryItem.timeline;
//在时间轴的层上循环
var vLayersLength=vTimeline.layers.length;

对于(var i=0;i有一个flash扩展,可以完美地实现这一功能,称为New Anim Clip-你可以在Toon Monkey上找到它:

我一直通过以下方式使用它: -选择要在新剪辑中显示的所有帧(在多个层上),然后从时间轴右键单击菜单中单击“剪切帧” -单击NewAnimClip命令 -用描述性的东西命名新的符号和图层 -在新剪辑的第一帧中单击并粘贴帧


瞧!一个新的剪辑,你可以调整大小和重新定位,与原来的时间线对齐!

有一个flash扩展,它完美地实现了这一点,称为新动画剪辑-你可以在卡通猴子上找到它:

我一直通过以下方式使用它: -选择要在新剪辑中显示的所有帧(在多个层上),然后从时间轴右键单击菜单中单击“剪切帧” -单击NewAnimClip命令 -用描述性的东西命名新的符号和图层 -在新剪辑的第一帧中单击并粘贴帧


瞧!一个可以调整大小和重新定位的新剪辑,与原始时间线对齐!

要回答原始问题,您可以使用
frame.getMotionObjectXML()
frame.setMotionObjectXML()
访问关键帧之间的运动。此XML包含您正在查找的关键帧数据(菱形关键帧).

要回答原始问题,您可以使用
frame.getMotionObjectXML()
frame.setMotionObjectXML()
访问关键帧之间的运动。此XML包含您要查找的关键帧数据(菱形关键帧).

她难道不能将所有内容嵌套到一个可以轻松重新定位的movieclip中吗?如果所有动画都在文档的根目录中,她仍然应该能够复制所有内容(使用“编辑多帧”)如果所有动画都在文档的根目录中,她仍然可以将所有内容(使用“编辑多帧”)复制到一个空的movieclip中。