This is a pretty complicated idea to try to tackle, but I figure I can take a small shot at it. The short answer is that you're going to have to figure it out on your own, but I can provide a few examples to get you started.
Ok, so when you're creating AI, you need your AI to be able to sense things. For example, I once created an enemy that would duck if it sensed oncoming player bullets. I did this with the "is overlapping at offset" condition. I also changed my condition from an "AND" condition to an "OR" condition and made it check both the left and right side of the enemy. Then, when my player shot at the enemy on either side, the enemy would "sense" the oncoming bullet and duck. The trick in that instance was that if the player got very close, the enemy couldn't duck fast enough.
When you do attacks, you can make your code set boolean variables on the player. So while the player is doing a high punch, you might have a variable on your player called "highAttack". When the attack is finished, turn "highAttack" off. This would let you send information to your AI that a high attack is happening and they then could have a chance to block it. This is also how I make my character stop moving when I do attacks in some of my games, and it works that way in Street Fighter as well. If you have any of your attacking variables on, you can set your code to not allow the player to move.
Lastly, since you're making a street fighter game, you are probably using the Platform behavior. Behaviors let you do certain conditions, and for platform, you can check if the player is on the floor or not. This is useful for things like jumping attacks.
Does this help you at all? I hope so!