### Godot version

4.2

### System information

M1 Mac 

### Issue description

Since I updated to 4.2 any animation player that I create which changes a Sprite2D texture or offset is not updating the texture value if I scrub the timeline of my animation. I can see in the sidebar that the frames are changing and the frames change if I press play on the animation. But it won't change the Sprite2D's frame if I drag the scrubber back and further between frames. I need to do this in order to determine the offsets of the sprite2D frames.

Somehow scenes I previously created in 4.1.3 or earlier are not affected by this. But new scenes / animation players are.



### Steps to reproduce

1. Create a new scene in 4.2
2. Add a Sprite2D
3. Add an AnimationPlayer
4. Add a track to change the Sprite2D texture to the AnimationPlayer
5. Add keys into the animation player which change the textures of a sprite
6. Verify the texture is changing in the animation by pressing play and seeing the changes
7.  Press stop
8. Drag the scrubber between frames
9. Observe that the texture is NOT updated moving from key-to-key*

* It appears that it will transition between frames for the first 3 frames or so, but beyond those frames it stops working correctly. I don't know exactly why that is.

### Minimal reproduction project

[Test.zip](https://github.com/godotengine/godot/files/13532350/Test.zip)

return (is_playing() ? playback.assigned : "");
}
void AnimationPlayer::set_assigned_animation(const String &p_animation) {
	if (is_playing()) {
		float speed = playback.current.speed_scale;
		play(p_animation, -1.0, speed, signbit(speed));
	} else {
		ERR_FAIL_COND_MSG(!animation_set.has(p_animation), vformat("Animation not found: %s.", p_animation));
		playback.current.pos = 0;
		playback.current.from = &animation_set[p_animation];
		playback.assigned = p_animation;
		emit_signal(SNAME("current_animation_changed"), playback.assigned);
	}
}
String AnimationPlayer::get_assigned_animation() const {
	return playback.assigned;
}
void AnimationPlayer::pause() {
	_stop_internal(false, false);
}
void AnimationPlayer::stop(bool p_keep_state) {
	_stop_internal(true, p_keep_state);
}
void AnimationPlayer::set_speed_scale(float p_speed) {
	speed_scale = p_speed;
}
float AnimationPlayer::get_speed_scale() const {