1

I wanted to change one value when marker with certain comment starts. I've tried something like this, but it doesn't work.

if (marker.comment("R1 L1").time > time){
  value = 40;
}

2 Answers 2

0

You need to check how expressions work. An expression sets the value of a property with the first line that returns a value. So for example an expression could just be:

40

since that line returns the value 40. The second line in your expression value = 40 does not return a value, it attempts to set the value property to 40, which doesn't work, because value is read-only.

What you need to do is return 40 if the time is after the marker, and if not return the current value, thus:

if (marker.comment("R1 L1").time > time){
  40;
} else {
  value;
}

Or more tersely, using ternary notation, which uses the form (condition)? <value if true> : <value if false>, thus:

(marker.comment("R1 L1").time > time)? 40 : value
1
  • “marker.comment” doesn't work, but “marker.key” does.
    – MG_
    Commented Jul 8, 2021 at 11:52
0

I'm not that experienced with expression, so maybe I'm understanding something wrong, but both your code and the code of @stib's answer give me clear error messages. marker.comment is not a function and above that, the code has several more issues.

Using part of the code from this reference I got the following working:

n = 0;
t = 0;
if (marker.numKeys > 0)
{
     n = marker.nearestKey(time).index;
     if (marker.key(n).time > time)
        n--;
}
if (n > 0 )
    t = time - marker.key(n).time;

if(t>0 && marker.key(n).comment=="R1 L1")
    40;
else
    value;

I've created a simple shape and applied the expression for example to the opacity property (100% at start) and added a marker with the comment "R1 L1" and as soon as the playhead passes this marker the opacity changes to 40%. I think this behaves as intended.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.