【发布时间】:2023-03-22 07:52:01
【问题描述】:
我正在制作一个包含路线图的安卓游戏。 (5 个世界,每张地图 7 个站点)
如果级别为 3,则用户必须为步行设置动画以停止 3。
我创建了这个 svg 动画
<animateMotion id="test" begin="0.5s" dur="3s" repeatCount="0" rotate="0" path="{{animate}}" fill="freeze"/>
它工作正常,直到我为它应该使用的范围创建一个 if else 函数。(每个路线图有 7 个停靠点/级别,我的级别是 3,它的范围是 world1,因此属性很好地连接到页面)
information.once("value", function(snapshot) {
var data = snapshot.val();
if (data.level < 7) {
console.log("world1");
$scope.animate = "M0,0 q225,150 0,200";
}
else if (data.level > 7) {
console.log("world2")
$scope.animate = "M0,0 0,0 0,0";
}
});
我认为问题在于 svg 在 if else 语句完成选择正确的范围之前加载。
有什么方法可以使用 Angular 启动动画吗?而不是自动加载播放。
(information.once 和数据快照用于存储我的用户数据的 firebase)
【问题讨论】:
-
这是非常模糊的。调用 information.once() 的上下文是什么?请参阅 creating an mcve 和 how to ask。此外,您需要在异步设置数据时调用 $scope.apply() 或 $timeout() 以通知 Angular 编译器。见Handling Async Operations。文档 FTW。
标签: javascript angularjs animation svg firebase