Hi ChromeGadget, a solution to the first problem is to move the direction changing events for when Move Right and Move Left is down underneath the event "hanging = 0", above the event "NOT state = Attack".
As for the second problem, add this action to jumping: maskplayer platform tab -> Set X component of motion to "210 * maskplayer.value('dir') * Sprite.AnimFrame"
The 210 is a trial-and-error value, but the by multiplying by direction you move in the right way, and multiplying by animation frame allows it to be a strong or weak jump depending when the player presses jump.
Here is the fix uploaded: https://dl.dropbox.com/u/4714446/Swing%20Fixed.cap
I marked the two changes with comments starting with "HERE:"