Despite there being frame numbers in Spine editor, keys are actually saved according to time in seconds, and animations are applied in seconds too. So there's really no such thing as "frame 2" anywhere in the data.
You really do have to do:
const float framesPerSecond = 30f;
state.GetCurrent(0).time = myFrameNumber / framesPerSecond;
Which is potentially not precise enough because of float division, so if you rely on that sort of functionality, you may want to either:
(a) Switch to using the 0, 30, 60 frame marks so you get exact results (ie, 1 second, 2 seconds, 3 seconds)
Or (b) don't think about it in Flash terms and come up with a different scheme to control your skeleton, like make each state a unique Animation, instead of stuffing everything in one long animation.