That or use the ModifyExplod controller to change the position of the explod while still being bound to the character, which gives you greater control than animating the path in the AIR file.
Tried something, not sure if this is what you meant, also not sure if this is a good use of ifelse, the logic is wrong for now since the explod seems to get stuck as soon as it barely moves.
[State -2, ModifyExplod 1111 Quas1]
type = ModifyExplod
trigger1 = NumExplod(1111) = 1
ID = 1111
anim = 310
pos = var(10),var(11)
postype = p1 ;p2,front,back,left,right
facing = 1
vfacing = 1
bindtime = 1
vel = 0,0
accel = 0,0
random = 0,0
removetime = -1
pausemovetime = 0
scale = .20,.20
sprpriority = ifelse((var(11)=[-80,-100]),2,0)
ontop = 0
shadow = 0,0,0
ownpal = 1
removeongethit = 0
ignorehitpause = 1
[State -2, VarAdd Quas1 X]
type = VarAdd
trigger1 = numexplod(1111) = 1
v = 10
value = ifelse(((var(10)= 0) && (var(11)=-120)),3,ifelse(((var(10)=0) && (var(11)=-80)),-3,ifelse(((var(10)=[-42,-1]) && (var(11)=[-101,-120])),3,ifelse(((var(10)=[1,42]) && (var(11)=[-80,-99])),-3,ifelse(((var(10)=[1,42]) && (var(11)=[-101,-120])),3,ifelse(((var(10)=[-1,-42]) && (var(11)=[-80,-99])),-3,0))))))
ignorehitpause = 1
[State -2, VarAdd Quas1 Y]
type = VarAdd
trigger1 = numexplod(1111) = 1
v = 11
value = ifelse(((var(11)=-100) && (var(10)=-45)),-2,ifelse(((var(11)=-100) && (var(10) = 45)),2,ifelse(((var(11)=[-101,-118])&&(var(10)=[-45,-1])),-2,ifelse(((var(11)=[-101,-118])&&(var(10)=[1,45])),2,ifelse(((var(11)=[-78,-99])&&(var(10)=[1,45])),2,ifelse(((var(11)=[-78,-99])&&(var(10)=[-1,-45])),-2,0))))))
ignorehitpause = 1
Its late, and trigonometry was years ago, but im pretty sure it because I didn't actually try to make a working equation for the elipse so the path is not hitting the tangent points like an ellipse should and thus stops.[/s]