The topic of object-oriented design is a complex one; entire careers have been devoted to the academic study and professional practice of this discipline. Nevertheless, here are a few suggested approaches that can help you get started.
Think about the role that the instances of this class will play in the application. Generally, objects serve one of these three roles:
Value object: These objects serve primarily as containers of data--that is, they likely have several properties and fewer methods (or sometimes no methods). They are generally code representations of clearly defined items, such as a Song class (representing a single real-world song) or Playlist class (representing a conceptual group of songs) in a music player application.
Display object: These are objects that actually appear on the screen. Examples include user-interface elements like a drop-down list or status readout, graphical elements like creatures in a video game, and so forth.
Application structure: These objects play a broad range of supporting roles in the logic or processing performed by applications. Examples include an object that performs certain calculations in a biology simulation; one that is responsible for synchronizing values between a dial control and a volume readout in a music player application; one that manages the rules in a video game; or one that loads a saved picture in a drawing application.
Decide the specific functionality that the class will need. The different types of functionality often become the methods of the class.
If the class is intended to serve as a value object, decide the data that the instances will include. These items are good candidates for properties.
Since your class is being designed specifically for your project, what's most important is that you provide the functionality that your application needs. It might help to answer these questions for yourself:
What pieces of information will your application be storing, tracking, and manipulating? Deciding this helps you identify any value objects and properties you may want.
What sets of actions will need to be performed--for example, when the application first loads, when a particular button is clicked, when a movie stops playing, and so forth? These are good candidates for methods (or properties, if the "actions" just involve changing individual values).
For any given action, what information will the class need to know in order to perform that action? Those pieces of information become the parameters of the method.
As the application proceeds to do its work, what things will change in your class that other parts of your application will need to know about? These are good candidates for events.
If there is an existing object that is similar to the object you need, except that it's lacking some additional functionality you want to add, consider creating a subclass (a class which builds on the functionality of an existing class, rather than defining all of its own functionality). For example, if you want to create a class that will be a visual object on the screen, you'll want to use the behavior of one of the existing display objects (for example, Sprite or MovieClip) as a basis for your class. In that case, MovieClip (or Sprite) would be the base class, and your class would extend that class. For more information about creating a subclass, see Inheritance.