fortree
you beat the sixth gym
After the weather instute, and before the town with the 6th gym u meet ur "rival" and neighbor. He/she gives the HM to you. (remeber that you have to beat the 6th gym for it to work)
It's is beat may then get fly and after beat 6th gym leader you can use fly .
Beat the Gym Leader
you have to beat groudon then surf to the middle of the city with the last gym in it
You get Fly after you beat the 5th Gym Leader (Chuck). Chuck's wife will be outside the Gym, and if you talk to her, you will get Fly.
After you beat your rival after the 6th gym
after you beat the seventh gym, if you follow the gameplay, you'll get it
8th gym leader
Emerald Beat the hole game Ruby beat 7 gym Saphirre beat 7 gym Diamond/Pearl pal park
you get fly after you beat bianca after you beat the 5th gym leader
You have to beat the 4th Gym and may will come to you and give something that will stop the Sandstorm.