METHOD AND APPARATUS FOR
PHYSICALLY MANIFESTING COSTUME
OBJECTS IN A FLEXIBLE MANNER IN AN
CROSS-REFERENCES TO RELATED
This is a 37 C.F.R. § 1.53(b) continuation of application Ser. No. 08/887,767 filed on Jul. 3, 1997, now U.S. Pat. No. 5,912,665, which is a file-wrapper continuation of application Ser. No. 08/510,029 filed Aug. 01, 1995, now abandoned, which is a file-wrapper continuation of Ser. No. 08/040,654 filed Mar. 31, 1993, now abandoned.
BACKGROUND OF THE INVENTION
The present invention relates to a computer system running in an object-oriented programming environment and more particularly to methods and means for associating objects to their presentation in the environment.
Authors of computer-based multimedia presentations (titles) face the difficult task of creating scripts to control the objects in their title. These scripts, which are essentially a type of computer program, are needed to display objects having desired images, such as circles, rectangles, spreadsheets, etc. The writing of a script is frequently a complex and time-consuming task that demands highly specialized skills. Typically, these skills are difficult to acquire and very few multimedia authors wish to spend the time to learn them.
Examples of multimedia scripting languages can be found in such computer program products as HyperCard, developed by Apple Computer, Inc., MacroMind Director, developed by MacroMedia Inc., and Authorware Professional from MacroMedia, Inc. These multimedia scripting languages require the multimedia author to learn all the intricacies of the scripting language and to develop scripts comprising several hundred lines of code to create desired presentations. This code is complex to develop and typically cannot be readily reused.
Further, these languages use a conventional, procedurally oriented approach to scripting. It is generally recognized that object oriented approaches have many advantages over procedurally oriented approaches, such as the ability to easily reuse code and develop complex code in an efficient manner.
It is currently possible to associate images and sound to objects in prior art object-oriented systems. For example, programming systems such as Smalltalk or C++ provide multiple inheritance classes which allow a "mixed in" class to add in methods for displaying images on the screen of a monitor to an existing (parent) class.
The object-oriented approach of using multiple inheritance to display images allows for reuse of code to some extent, but there are still problems. For example, to mix in display methods, an author typically needs to create a new class in a programming environment, and needs to resolve conflicts for any methods that are defined by both the parent class and the "mix in" class.
The technique of multiple inheritance requires the author to (1) write a new class to use a certain display method and (2) have the knowledge and skill to resolve the conflicts between the classes. The use of this technique is typically found in programming environments involving compilers, linkers, and debuggers. As a result, this technique can only
be learned and used after years of formal training. Thus, the technique of multiple inheritance is typically not available to a non-programmer author in an interactive real-time environment where incremental experimentation allows for
5 rapid learning and exploration.
Existing environments also do not provide a convenient mechanism for changing the appearance of an object over time while the program is running. The new class always inherits from the mix in class. In addition, the environment
1° can result in a proliferation of confusing and complex classes.
SUMMARY OF THE INVENTION
Broadly stated, the invention provides a flexible system
15 for changing the physical presentation of an object in an object-oriented programming environment. The system includes presentation means (e.g., monitors in the case of visual images or speakers in the case of audio signals) for presenting physical manifestations of objects. The system
20 comprises a first target object containing a first presentation method having a universal interface protocol. The first presentation method presents a first physical manifestation (e.g., a certain image or sound) on the presentation means. This universal interface protocol allows the first presentation
25 method to be accessible by other objects capable of communicating using the universal interface protocol. The system also contains a costume object containing means for communicating with the first target object using the universal interface protocol. The costume object causes the first
30 presentation method to present the first physical manifestation of the costume object—e..g., the costume causes the target object to display itself at the costume object's position on the screen, in effect displaying the costume object wearing the costume of the target object.
35 If the user desires that the costume object present a second physical manifestation (e.g., another image), the user associates it with a second target object. The second target object contains a second presentation method having the universal interface protocol. The second presentation method presents
40 the second physical manifestation on the presentation means. The costume object then causes the second target object to present the costume object's second physical manifestation on the presentation means. As a result, it is possible for the costume object to have different physical
In this manner, a costume object is capable of presenting itself as a target object, i.e., drawing itself on the screen using the target object's appearance. The costume object accomplishes this by requesting that the target object present itself using one or more properties of the costume object. For example, the target object might draw itself at the costume object's current position on the screen, in effect causing the costume object to change its appearance.
55 Therefore, it is an object of the present invention to provide a simple yet powerful programming environment to multimedia authors.
It is a further object of the present invention to reduce the number of classes in an object-oriented programming envi
If is yet another object of the present invention to avoid multiple inheritance in the creation of classes and objects.
It is also an object of the present invention to allow multimedia authors to easily change the presentation format 65 of an object.
Other objects, advantages, and features of the present invention will become apparent to those skilled in the art