Ashley & rexrainbow, I have been using firebug all along, but during the process of writing this plugin, it became clear to me how much I still don't understand about JavaScript in general, and the C2 implementation specifically. It has been quite a learning experience. :D
I believe I finally had a eureka moment yesterday, and it all started making a lot more sense. After re-reading all of these posts (for the hundredth time), I believe that I am not being clear as to what I am trying to accomplish.
Perhaps this will make it a bit more clear:
1. The constructor opens a new project.
2. They add a Sprite & Keyboard object to the layout.
3. They add my plugin (let's call it MyPlugin) to the layout.
4. In the event sheet, under the On start of layout condition, they add the definition action from my plugin (MyDefineAction). MyDefineAction contains three params: Object, Property, Value.
5. For Object, they select Sprite. (Using the AddObjectParam function.)
6. For Property, they select Sprite.Angle. (At this point I am using the AddAnyTypeParam function, but this just refers to the value, not the property index.)
7. For Value they enter 90.
8. They add a Keyboard-->On Space Pressed condition.
9. Under this condition, they add the MyPlugin.MyExecuteAction action.
10. They export the project. During the export, the MyDefineAction function in the run time adds all MyDefinitionAction actions to a hash table, which includes the Object reference, the property reference, and the value.
11. When Space is pressed, the property in the referenced object is changed to Value.
What I am looking for is a way at step 6 to capture the index of the property. Then at step 11, I would reference the object and property index to change its value. I can't predetermine what the property will be, so I need to use a reference passed from the edit time, rather than the hard coded property name.
To answer concerns about the index being unsuitable, the constructor will define an existing object and property at edit time. The index number won't change after export or when the project is run. If the plugin programmer modifies the properties in the future, it won't matter, because the property index would be determined dynamically at edit time, after the plugin has been added to the project.
I apologize for the wall of text, and also if you already understood what I was trying to accomplish. I just feel I am very close to getting this to work.
Thanks!