Erstellen eigener Klassen
Das Erstellen von Klassen für Ihre Projekte scheint eine große Herausforderung zu sein. Der schwierigste Teil beim Erstellen der Klasse ist jedoch eher die Strukturierung ihrer Methoden, Eigenschaften und Ereignisse.
Strategien beim Strukturieren einer KlasseDer objektorientierte Programmentwurf ist ein komplexes Thema. Ganze Karrieren wurden dem akademischen Studium und der professionellen Anwendung dieser Disziplin gewidmet. Dennoch sind an dieser Stelle einige empfohlene Vorgehensweisen aufgeführt, die Ihnen die ersten Schritte erleichtern sollen.
Denken Sie an die Rolle, die Instanzen dieser Klasse in der Anwendung spielen. Im Allgemeinen haben Objekte eine der folgenden drei Rollen:
Wertobjekt: Diese Objekte dienen in erster Linie als Datencontainer. Meist haben sie mehrere Eigenschaften, aber nur wenige Methoden (oder gar keine Methoden). Es handelt sich bei diesen Objekten meist um Codedarstellungen von klar definierten Elementen. Beispielsweise könnte eine Musik-Player-Anwendung eine Song-Klasse für einzelne Musiktitel und eine Playlist-Klasse für eine Musiktitelgruppe enthalten.
Anzeigeobjekt: Hierbei handelt es sich um Objekte, die auf dem Bildschirm angezeigt werden. Dies sind z. B. Steuerelemente in einer Benutzeroberfläche wie eine Dropdownliste, eine Statusanzeige oder grafische Elemente wie die Figuren in einem Videospiel.
Anwendungsstruktur: Diese Objekte sind vielfach in unterstützenden Funktionen in der Logik oder Verarbeitung von Anwendungen zu finden. Beispielsweise können Sie festlegen, dass ein Objekt in einer biologischen Simulation bestimmte Berechnungen vornimmt. Oder Sie erstellen ein Objekt, dessen Aufgabe es ist, die Werte zwischen einem Regler und einer Lautstärkeanzeige in einer Musik-Player-Anwendung zu synchronisieren. Ein anderes Objekt kann für die Verwaltung der Regeln in einem Videospiel zuständig sein. Ein weiteres Beispiel wäre eine Klasse, die ein gespeichertes Bild in einer Zeichnungsanwendung lädt.
Überlegen Sie, über welche Funktionalität die Klasse verfügen muss. Diese verschiedenen Funktionalitätstypen werden häufig zu den Methoden der Klasse.
Soll die Klasse als Wertobjekt verwendet werden, überlegen Sie, welche Daten die Klasseninstanzen aufnehmen werden. Diese Objekte sind gute Kandidaten für Eigenschaften.
Da Ihre Klasse speziell für Ihr Projekt entwickelt wird, ist es am wichtigsten, dass Sie die Funktionalität bereitstellen, die für Ihre Anwendung erforderlich ist. Überlegen Sie sich Antworten auf die folgenden Fragen:
Welche Informationen werden in Ihrer Anwendung gespeichert, verfolgt und geändert? Durch die Beantwortung dieser Frage können Sie die erforderlichen Wertobjekte und Eigenschaften bestimmen.
Welche Aktionen führt die Anwendung aus? Was passiert zum Beispiel, wenn die Anwendung zum ersten Mal geladen wird, wenn der Benutzer auf eine bestimmte Schaltfläche klickt oder wenn die Wiedergabe eines Films angehalten wird? Dies sind gute Kandidaten für Methoden. Es kann sich auch um Eigenschaften handeln, wenn die „Aktionen“ eine Änderung einzelner Werte nach sich ziehen.
Welche Informationen sind zur Ausführung der einzelnen Aktionen erforderlich? Diese Informationen werden die Parameter der Methode.
Was ändert sich in Ihrer Klasse, über das andere Teile der Anwendung informiert sein müssen, während die Anwendung ausgeführt wird? Dies sind gute Kandidaten für Ereignisse.
Ist ein Objekt vorhanden, das dem benötigten Objekt ähnelt, aber nicht die gesamte erforderliche Funktionalität bereitstellt? In diesem Fall könnte die Erstellung einer Unterklasse sinnvoll sein. (Eine Unterklasse bedient sich der Funktionalität einer vorhandenen Klasse, anstatt ihre eigene Funktionalität komplett selbst zu definieren.) Wenn Sie beispielsweise eine Klasse für ein visuelles Objekt auf dem Bildschirm erstellen möchten, verwenden Sie das Verhalten eines vorhandenen Anzeigeobjekts als Grundlage für die Klasse. In diesem Fall wäre das Anzeigeobjekt (wie MovieClip oder Sprite) die Basisklasse, die von Ihrer Klasse erweitert wird.
Schreiben des Codes für eine KlasseNachdem Sie ein Konzept Ihrer Klasse erarbeitet haben oder zumindest in groben Zügen wissen, welche Informationen sie speichert und welche Aktionen sie ausführt, ist die tatsächliche Syntax zum Schreiben der Klasse relativ einfach.
Das Erstellen einer eigenen ActionScript-Klasse umfasst in jedem Fall die folgenden Schritte:
Öffnen Sie ein neues Textdokument in Ihrem ActionScript-Texteditor.
Geben Sie eine class-Anweisung ein, um den Namen der Klasse festzulegen. Zum Hinzufügen einer class-Anweisung geben Sie die Wörter public class und dann den Namen der Klasse ein. Fügen Sie ein geschweiftes Klammernpaar hinzu, das den Inhalt der Klasse einschließen wird (die Methoden- und Eigenschaftsdefinitionen). Zum Beispiel:
public class MyClass
{
}
public gibt an, dass aus beliebigem anderen Code auf die Klasse zugegriffen werden kann. Informationen zu anderen Alternativen finden Sie unter Namespace-Attribute zur Zugriffskontrolle.
Geben Sie eine package-Anweisung ein, um den Namen des Pakets anzugeben, das Ihre Klasse enthält. Verwenden Sie folgende Syntax: das Wort package gefolgt vom vollständigen Paketnamen, gefolgt von einem geschweiften Klammernpaar um den class-Anweisungsblock herum. Ändern Sie den Code aus dem vorherigen Schritt beispielsweise wie folgt:
package mypackage
{
public class MyClass
{
}
}
Definieren Sie die Eigenschaften der Klasse mithilfe der var-Anweisung innerhalb des Klassenrumpfs. Die Syntax ist die gleiche, die Sie bereits zum Deklarieren der Variablen verwendet haben (abgesehen von dem hinzugefügten Modifizierer public). Wenn Sie beispielsweise die folgenden Zeilen zwischen der öffnenden und der schließenden geschweiften Klammer der Klassendefinition hinzufügen, werden Eigenschaften namens textProperty, numericProperty und dateProperty erstellt:
public var textProperty:String = "some default value";
public var numericProperty:Number = 17;
public var dateProperty:Date;
Definieren Sie die Methoden der Klasse mit der gleichen Syntax, die Sie zur Definition einer Funktion verwendet haben. Zum Beispiel:
Geben Sie zum Erstellen einer myMethod()-Methode Folgendes ein:
public function myMethod(param1:String, param2:Number):void
{
// do something with parameters
}
Zum Erstellen eines Konstruktors definieren Sie eine Methode, deren Name exakt dem Klassennamen entspricht. Ein Konstruktor ist eine spezielle Methode, die als Teil des Prozesses zum Erstellen einer Klasseninstanz aufgerufen wird.
public function MyClass()
{
// do stuff to set initial values for properties
// and otherwise set up the object
textVariable = "Hello there!";
dateVariable = new Date(2001, 5, 11);
}
Wenn Sie keine Konstruktormethode in Ihre Klasse aufnehmen, erstellt der Compiler automatisch einen leeren Konstruktor in Ihrer Klasse. (Dies ist ein Konstruktor ohne Parameter und Anweisungen.)
Sie können einige weitere Klassenelemente definieren. Diese Elemente sind komplexer.
Accessors (Zugriffsmethoden) sind ein Mittelding zwischen Methode und Eigenschaft. Beim Schreiben des Codes zum Definieren der Klasse erstellen Sie den Accessor genauso wie eine Methode. Sie können mehrere Aktionen durchführen, anstatt nur einen Wert zu lesen oder zuzuweisen – mehr ist beim Definieren einer Eigenschaft nicht möglich. Wenn Sie jedoch eine Instanz Ihrer Klasse erstellen, behandeln Sie den Accessor wie eine Eigenschaft und verwenden den Namen, um einen Wert zu lesen oder zuzuweisen.
Ereignisse werden in ActionScript nicht mit einer besonderen Syntax definiert. Stattdessen definieren Sie die Ereignisse in Ihrer Klasse mithilfe der Funktionalität der EventDispatcher-Klasse.
|
|