导出的动画片段资源在createjs阶段未正确缩放

时间:2015-02-14 23:01:24

标签: javascript movieclip createjs

我正在使用来自Flash的canvas,createjs和assets创建一个动态窗口小部件。我在Flash中有一个导出到js的动画片段,并使用createjs将这个动画片段渲染到画布中。它必须是响应式的,因此画布可以是任何大小 - 通过额外的js代码我可以缩放导出的动画片段以适应。

缩放功能很简单。这是CoffeeScript代码,但它很直接:

    @movieclip = new lib.MyWidget()
    @stage.addChild(@movieclip)
    box = @movieclip.getBounds()
    w_ratio = $canvas.width() / box.width
    h_ratio = $canvas.height() / box.height
    @movieclip.scaleX = @movieclip.scaleY = Math.min(w_ratio, h_ratio)
    @movieclip.x = (@stage.canvas.width) / 2
    @movieclip.y = (@stage.canvas.height) / 2

虽然结果总是关闭。动画片段不能正确缩放,结果太大或太小。就好像原始的getBounds测量值是错误的。我也试过了getTransformedBounds,但似乎没有区别。

知道是什么导致了这个吗?原始的动画片段动画中有几层,其中一些被掩盖......我还在试图看看它是否与它有关

库到位:createjs,movieclipjs,tweenjs,jquery。

1 个答案:

答案 0 :(得分:0)

我花了一段时间才弄明白这一点。 easeljs movieclips没有widthheight属性这一事实使得它更加令人困惑。但事实证明它是完全不同的:它是Flash资产导出设置。

发布时,请务必启用"复帧边界"。输出的JS文件要大得多,但在我的情况下还可以。

  

多帧边界 - 如果选中,则时间轴符号将包含一个包含数组的“frameBounds”属性   矩形对应于时间轴中每个帧的边界。注意:可能会导致选择此选项   增加发布时间

http://wwwimages.adobe.com/content/dam/Adobe/en/products/flash/pdfs/html_extension_faq_ie.pdf