【发布时间】:2012-11-16 09:57:41
【问题描述】:
如何在时间轴上的不同图层中选择一系列帧,将它们转换为符号(MovieClip),一旦转换,图层和帧的排列保持不变。与 After Effects 的“预合成”图层非常相似。
默认行为是在转换后将所有单独的帧放在同一层上,这非常烦人。
这可以通过自定义 flash 命令实现吗? (jsfl)
【问题讨论】:
标签: javascript actionscript-3 flash flash-cs5 jsfl
如何在时间轴上的不同图层中选择一系列帧,将它们转换为符号(MovieClip),一旦转换,图层和帧的排列保持不变。与 After Effects 的“预合成”图层非常相似。
默认行为是在转换后将所有单独的帧放在同一层上,这非常烦人。
这可以通过自定义 flash 命令实现吗? (jsfl)
【问题讨论】:
标签: javascript actionscript-3 flash flash-cs5 jsfl
不知道“自定义 Flash 命令”,但您可以使用 Flash Player 虚拟机 API(阅读:ActionScript)来达到预期的效果。您需要做的是使用gotoAndStop 循环遍历每一帧。然后你需要问自己——你的各个帧是展示动画还是静态的?如果它们也都被动画化,那么您需要忽略动画并在“随机”时间拍摄快照,或者您也需要遍历该动画 - 也为子电影剪辑调用 gotoAndStop .让我们假设您的帧不会自行设置动画,因为它使整个方法更容易。您只需在每个帧内容上使用BitmapData.draw,复制其视觉像素数据,从而缓存一帧动画。您将位图数据对象存储为索引数组,并创建一个计时器,该计时器调用连续显示每个此类位图。本质上,您随后会缓存您的时间线并使用您自己的“引擎”重现动画。
或者,您可以尝试使用DisplayObject.cacheAsBitmap 属性,将其设置为true 以用于您的框架中显示的任何内容。 请注意,如果您的单个帧显示动画,这可能不是明智之举,但请务必尝试一下 - Flash Player 可能足够聪明,可以忽略您的设置,将动画快照缓存为快速动画的位图可能会浪费更多的内存而不是带来任何好处
【讨论】:
1 - 选择时间轴内的所有图层并选择右键单击复制(德语是 Bilder kopieren),而不是图层 2 - 创建新的影片剪辑 (strg-F8) 3 - 单击第一帧并右键单击粘贴 现在您可以删除原始图层并在其位置使用新的影片剪辑
【讨论】:
试试 ToonMonkey 的“New Anim Clip”扩展:http://toonmonkey.com/extensions.html
我认为它会满足您的需求。
【讨论】: