同一 HTML 页面中的两个 Flash cc 动画

Tan*_*med 2 html dom createjs

有没有办法在同一个 HTML 页面中保留两个或多个 flash cc create.js 动画?

问题是第一个动画消失,第二个动画出现在第一个动画位置。真奇怪。

它包含<script> </script>两次。

<script> 
  var canvas, stage, exportRoot;
    function init() {
  }
</script>
Run Code Online (Sandbox Code Playgroud)

这是链接:谁能解决这个问题?

链接被删除,因为它导致垃圾邮件内容

Lan*_*nny 5

可能的,但需要您进行一些编辑。首先,您应该更改其中一部电影的库名称。您将需要保留 lib 属性对象(包含您的图像清单和其他 FLA 属性)。此外,如果您有任何相似名称的符号,您可能会遇到冲突,并且第一个库项目将被覆盖。

您可以在发布设置中更改库名称。默认值为“lib”,它生成一个窗口级对象,所有符号都在其上定义。您可以在 Flash CC 创建的 js 文件中看到 lib 是如何生成的。 库属性.

您可能还想更改图像对象的名称,但不是必须的。保留 CreateJS 参考。

接下来,您需要确保每个动画的画布都有唯一的名称。默认情况下,它只是命名为“画布”。在其中一种用法中更改画布 id,然后更改创建舞台的关联 ID。

<canvas id="canvas" width="550" height="400" style="background-color:#FFFFFF"></canvas>
Run Code Online (Sandbox Code Playgroud)

canvas = document.getElementById("canvas");
Run Code Online (Sandbox Code Playgroud)

我还建议更改诸如阶段名称、exportRoot 和其他变量之类的内容,以防您计划对它们进行任何操作。如果你不这样做,只要一切都按正确的顺序发生就好了。

[更新]:如果您有任何资产加载,您将需要更改这些变量的名称。加载资产使handleComplete模板中的 方法异步触发——这意味着它总是会引用第二个画布/舞台/等。

最后,确保您只定义一次必要的元素。您应该只导入一次 CreateJS 库。有些东西可能不受支持,例如,您只能有一个 Ticker 帧率。另请注意,在您提供的链接中,您有 2 个 HEAD 和 BODY 标签。您应该将它们合并为一个。

我希望这提供了一些有用的方向。