首页 > 解决方案 > 在 animatecc 脚本之外访问 createjs 函数

问题描述

我现在在这个问题上搜索了很长一段时间,似乎没有解决这个问题的方法。但是,在结案之前,我想在这里说明问题,作为最后一步,以确保我没有遗漏任何内容。 问题:我有一个嵌入 iframe 元素中的 adobean animatecc 图形。该图形是由我目前工作的一家公司的编辑创建的。我的主管现在希望我从这个创建的 animatecc 图形之外停止动画。所以基本上我想访问 Ticker 元素,它保存有关 fps 速率的信息,以便更改它的值,从而让动画停止。无论如何,从 adobe 工具生成该图形后,似乎无法介入该图形。你们中有人遇到过同样的问题并且能够解决吗?

如果有人有任何解决方案或建议来解决这个问题,那将是非常有帮助的。

在此先感谢各位,祝您有美好的一天。

标签: javascriptframe-ratecreatejs

解决方案


如果您在同一个域中,您应该能够访问嵌入的 iframe 上下文。

var context = document.getElementById("iframe").contentWindow;

从那里开始,它应该像重置 Ticker 一样简单。该createjs对象是窗口中的一个全局对象,所有 CreateJS 内容都驻留于此。

context.createjs.Ticker.reset();

您还提到了降低帧速率——这也可能有效:

context.createjs.Ticker.timingMode = "interval"; // Required as RAF can't change framerate
context.createjs.Ticker.framerate = 0.0001; // 0 will cause a division by 0 error probably

最后一点:Ticker 确实支持“暂停”,但它实际上并没有停止滴答,而是由开发人员根据 Ticker 事件来实现暂停。

希望有帮助!


推荐阅读