If you are loading the plugins dynamically, there is no reason to add a reference to the plugin at compile time. Simply load the swf using the file or http protocol.
Typically what plugin developers do, if they are using Flex Builder, is create an AS3 project, which outputs a swf.
You can test the loading of your plugin by using this sample app:
Just type the URL of your plugin into the input box and click "Load Plugin". Since remote SWFs cannot access local files, you won't be able to use the file protocol, but you could copy your plugin swf to a web server or localhost and load it from there. Or you can grab the source for that sample app from the OSMF source and run it locally. That sample can load plugins dynamically or statically. But for static loading, it needs a reference to the plugin's PluginInfo class, which you'll see in the source. To load dynamically, all it needs is a url to a swf.
That's all awesome information. Thank you for clarifying.
I do have one more question.
Previously I was passing in metadata to specific plugins from my player app. How would I go about doing the same with dynamicall loaded plugins since I don't have reference to the PluginInfo classes?
Well, the metadata can be added to the plugin resource and/or the media resource. You don't need the PluginInfo class to do that. Although some plugin developers will put constants for the metadata namespace and keys in the PluginInfo class. What I've done in the past for people who want to load my plugin dynamically, or for plugins I don't want to hand out source for, is to create a library (swc) that contains a string utils class containing these constants and the plugin is built against that. The player project references the SWC and this prevents the player devs from having to type in strings for the metadata namespace and key constants.
That's exactly what i was looking for.