In Pokémon Emerald, you can use Fly after earning the Feather Badge from Winona, the Gym Leader of Fortree City. This badge allows you to use the Fly move outside of battle, enabling you to travel quickly to previously visited locations. Be sure to have a Pokémon that knows Fly in your party to utilize this feature.
After you get the Cobble badge from the Veilstone gym.
You need to have beaten Maylene (the fourth gym leader who is in Veilstone) to be able to use fly.
In Pokémon Diamond and Pearl you must defeat Maylene in Veilstone City's Gym and receive the Cobble Badge, this will allow you to use the HM Fly outside of battle.
The badge from Cianwood.
You need the Thunder Badge.
The fourth one.
To use the HM Fly, you have to have the Thunder Badge, won from Lt. Surge in Vermilion City.
No
No
You can use the move as soon as you get it. You can fly to different towns with a certain badge.
get the 4th badge in celadon city
No, Dustox cannot learn HM02- Fly in Pokémon Emerald