It’s not clear to me exactly what you’re trying to do, but basically, if an expression refers to the value of the property hosting that expression, it only has access to the pre-expression value. Expressions on any other property accessing the value of that property only have access to the post-expression value. It’s confusing, until you get used to it.
There is a hack, that used to work in some circumstances (but I haven’t tried it lately) where an expression can publish its host property’s pre-expression value for other expressions to use by using negative time. You would do something like this (let’s say for the position property):
if (time < 0){
valueAtTime(-time);
}else{
// regular expression goes here
}
then the expression for any other property that needed the pre-expression position value would do this:
p = position.valueAtTime(-time);
to get the pre-expression position value. There is an issue about what happens at time = 0, but if that matters in your scenario, you can just add an offset to the negative time used:
valueAtTime(-time-1);
and correspondingly:
p = position.valueAtTime(-time-1);
I don’t know if any of this is useful to you, and as I mentioned, I’m not even sure it will still work.
Dan