Why do you necessarily want the character to get to a point when a frame is drawn? You want your logic to be separated from view, that's why you use a timer and not onEnterFrame event, in first place. at smooth 30 FPS or more, a player won't see a difference.
What you want to do is not actually drawing the character on desired position, but behaving like if he was there. What you do now is probably calculating a
delta_time everyframe by substracting old timestamp from an actual time:
delta_time = Now() - old_timestamp; old_timestamp = Now();. And then using this data to move objects (e.g.
x += vx * delta_time) etc. and then update them on screen. What you want to do in this case is to calculate objects (at least these that can be altered by the character's position) twice - at the moment the character reached a point, and at a moment right after, that is, delta_time after previous frame:
Calculate when the character will come to point B (from A):
journey_time = distance / speed.
On next frame, get the
delta_time from previous frame.
delta_time >= journey_time go to next point (4). Else
journey_time -= delta_time and go to point 2.
Calculate everything for the moment the character reaches destination point, e.g.
simulatePhysics ( journey_time );
Add actions special to the event (because you want to detect reaching the point for some particular reason I suppose), e.g. make the character ghostlike:
physics.removeChild ( character );
Calculate second part of the 'frame':
simulatePhysics ( delta_time - journey_time );.
Redraw the frame.