A field control would probably be the most optimal route at least I think. For the meantime (I did this yesterday) what I've done is implement a RadFileExplorer control with a search pattern of *.swf and it does what I need it to for today. I put it in my control's designer class and set the OnClientItemSelected to populate a text field I'm using to store the URL in the designer.
Another thing I've tried is changing the allowed extensions on videos to allow .swf files to be uploaded, which works and they store just fine in the system, but the silverlight player won't play them (which of course is expected since it's a video player lol) so they can't be previewed through Sitefinity itself, and if I try to store them in a library that's stored on the file system instead of in the database the entire filename is replaced with a Guid which would make it tougher for the client to know which flash file to select. The flash player we're using to play files expects a url to a .swf file so I'm sure you can see the dilemma there I'd have to write an entirely new player to support Sitefinity, or devise some classes that would extract the video out of the library and put them in a specific url, etc, that could get messy. So in my case I'm just having them upload .swf files directly to a specific directory through the RadFileExplorer control.