小编Rob*_*ton的帖子

在AngularJS和AngularUI路由器中使用Adobe Edge Animate

我正在开展一个项目,该项目将使用Adobe Edge Animate创建的多个动画合并到一个AngularJS应用程序中.这个想法是这些动画将作为游戏的视觉效果,我将根据玩家的输入控制构图.为了达到这个阶段需要进行一些实验,但所有这些都是完美的.

每当玩家选择退出当前视图并再次访问时,我的问题就会开始.由于某种原因,这会导致Adobe Edge Animate Javascript API出现问题,并且无法加载合成.

基本上,我可以加载一次合成,但不能再加载.每当我尝试第二次加载合成时,我都会收到以下Javascript错误...

Uncaught TypeError: Cannot read property 'stage' of undefined    edge.5.0.1.js:4872
Uncaught TypeError: Cannot read property 'stage' of undefined    edge.5.0.1.js:4519
Run Code Online (Sandbox Code Playgroud)

我目前正在控制器内直接加载合成,如下所示......

.controller('GameTest', function($scope, $state) {
    AdobeEdge.loadComposition('edge-animate/GameTest', 'GameTest', {
      scaleToFit: "width",
      centerStage: "none",
      minW: "0",
      maxW: "undefined",
      width: "2048px",
      height: "1134px"
    }, {dom: [ ]}, {dom: [ ]});
})
Run Code Online (Sandbox Code Playgroud)

我也禁用了这个州的缓存......

.state('game-test', {
  cache: false,
  url: "/games/test",
  controller: 'GameTest',
  templateUrl: 'templates/games/test.html'
})
Run Code Online (Sandbox Code Playgroud)

欢迎所有建议,并感谢任何帮助!

谢谢

更新:我已经找到了解决方案!希望...

如果浏览器再次处理相关*_edge.js的内容,则问题似乎得到解决.由于这些注入<head>AdobeEdge.loadComposition(...)被调用(通过yepnope),并且似乎没有要问yepnope的任何方法来重新加载注入的JavaScript,我已经写了一个小服务角度,我可以用它来处理这个代替标准AdobeEdge.loadComposition(...)功能.它本质上是一个预先进行相关检查的包装器.

.service('$AdobeEdge', function() { …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs adobe-edge angular-ui-router

26
推荐指数
1
解决办法
2736
查看次数