我正在用 Angular 制作游戏。每个玩家对象都有一个x
和一个y
属性。每当玩家移动时,我想启动一个计时器,该计时器在精灵表中的几个背景位置之间循环。
我想我会用一个指令来做到这一点。问题是指令通常只允许你设置一个表达式来观察:
// "test" directive
module.directive("test", function() {
return function(scope, element, attrs) {
scope.$watch(attrs.test, function(value) {
// do something when it changes
})
}
})
// my template
<div test="name"/>
这种方法的好处是test
指令不必假设范围具有任何特定属性。当你使用指令时,你告诉它使用什么。
问题是,在我的情况下,如果 x 或 y 发生变化,我需要开始一些事情。我怎样才能做到这一点?
<div test="player.x, player.y"/>
<div test="player.x" test-two="player.y"/>
有没有你能想到的最好的方法来做到这一点?基本上,如果几个属性中的任何一个发生变化,我想制定一个在计时器上执行某些操作的指令。