ActionScript® 3.0 Referenzhandbuch für die Adobe® Flash®-Plattform
Home  |  Liste der Pakete und Klassen ausblenden |  Pakete  |  Klassen  |  Neue Funktionen  |  Stichwortverzeichnis  |  Anhänge  |  Warum auf Englisch?
Filter: Daten werden vom Server abgerufen...
Daten werden vom Server abgerufen...
Oberste Ebene 

Class  - AS3

PaketOberste Ebene
Klassepublic dynamic class Class
VererbungClass Inheritance Object

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Ein Class-Objekt wird für jede Klassendefinition in einem Programm erstellt. Jedes Class-Objekt ist eine Instanz der Class-Klasse. Das Class-Objekt enthält die statischen Eigenschaften und Methoden der Klasse. Das Klassenobjekt erstellt Instanzen der Klasse, wenn es mit dem Operator new erstellt worden ist.

Einige Methoden, wie etwa flash.net.getClassByAlias() geben ein Objekt vom Class-Typ zurück. Andere Methoden haben einen Parameter vom Class-Typ, z. B. flash.net.registerClassAlias().

Der Name der Klasse ist der Verweis auf das Class-Objekt, wie das folgende Beispiel veranschaulicht:

 
 class Foo {
 }
 

Die Anweisung class Foo{} ist die Klassendefinition, die dass Class-Objekt Foo erstellt. Außerdem wird die Anwendung new Foo() eine neue Instanz der Foo-Klasse erstellen, und das Ergebnis wird vom Typ Foo sein.

Verwenden Sie die Anwendung class, um Ihre Klasse zu deklarieren. Class-Objekte sind nützlich für fortgeschrittene Techniken wie das Zuweisen von Klassen zu einem vorhandenen Instanzobjekt während der Laufzeit (vgl. den Abschnitt „Beispiele“ weiter unten).

Statische Eigenschaften und Methoden einer Klasse befinden sich im Class-Objekt einer Klasse. „Class“ selbst deklariert prototype.

Im Allgemeinen müssen Sie Variablen vom Typ Class nicht manuell deklarieren. Im nachfolgenden Code jedoch wird eine Klasse als öffentliche Class-Eigenschaft circleClass zugewiesen, und Sie können auf diese Class-Eigenschaft als eine Eigenschaft der Hauptklasse Library verweisen.

 package {
  import flash.display.Sprite;
  public class Library extends Sprite {
      
      public var circleClass:Class = Circle;
      public function Library() {
      }
  }
 }
  
 import flash.display.Shape;
 class Circle extends Shape {
  public function Circle(color:uint = 0xFFCC00, radius:Number = 10) {
      graphics.beginFill(color);
      graphics.drawCircle(radius, radius, radius);
  }
 }
 

Eine andere SWF-Datei kann die resultierende Datei „Library.swf“ laden und dann Objekte vom Typ Circle instanziieren. Das folgende Beispiel zeigt eine Möglichkeit, auf die Bestände einer untergeordneten SWF-Datei zuzugreifen. (Andere mögliche Verfahren sind die Verwendung von flash.utils.getDefnitionByName() oder das Importieren von Teildefinitionen aus der untergeordneten SWF-Datei.)

 package {
  import flash.display.Sprite;
  import flash.display.Shape;
  import flash.display.Loader;
  import flash.net.URLRequest;
  import flash.events.Event;
  public class LibaryLoader extends Sprite {
      public function LibaryLoader() {
          var ldr:Loader = new Loader();
          var urlReq:URLRequest = new URLRequest("Library.swf");
          ldr.load(urlReq);
          ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
      }
      private function loaded(event:Event):void {
          var library:Object = event.target.content;
          var circle:Shape = new library.circleClass();
          addChild(circle);
      }
  }
 }
 

In ActionScript 3.0 können Sie für externe Bestände (wie Grafiken, Sounds oder Schriften) eingebettete Klassen erstellen, die in SWF-Dateien kompiliert werden. In früheren ActionScript-Versionen haben Sie diese Bestände verknüpft, indem Sie in der Methode MovieClip.attachMovie() eine Verknüpfungs-ID verwendet haben. In ActionScript 3.0 wird jeder eingebettete Bestand durch eine einmalige eingebettete Bestandklasse repräsentiert. Daher können Sie die mit dem Bestand verbundene Klasse mithilfe des Operators new instanziieren und für diesen Bestandsartikel Methoden und Eigenschaft aufrufen.

Beispiele anzeigen

Verwandte API-Elemente



Öffentliche Eigenschaften
 EigenschaftDefiniert von
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
Öffentliche Methoden
 MethodeDefiniert von
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
 Inherited
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas.
Object
 Inherited
Gibt das angegebene Objekt als String zurück.
Object
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
Class.1.as

Im folgenden Beispiel wird veranschaulicht, wie Sie mit Class-Objekten die Entscheidung darüber, welche Klasse instanziiert werden soll, bis zur Laufzeit zurückstellen können. Führen Sie dazu die folgenden Schritte aus:
  1. Deklarieren Sie zwei Klassen: ClassA und ClassB.
  2. Deklarieren Sie eine Variablen vom Typ Class mit dem Namen classToConstruct und eine vom Typ Boolean chooseClassA, die in diesem Fall auf true gesetzt ist. Sie können den Wert dieser Variablen jedoch auch mit einen benutzerdefinierten Test-Ausdruck festlegen.
package {
    import flash.display.Sprite;
    
    public class ClassExample extends Sprite {
        public function ClassExample() {
            var classToConstruct:Class;            
            var classInstance:Object;

            classToConstruct = ClassA;
            classInstance = new classToConstruct();
            trace(classInstance);    // [object ClassA]

            classToConstruct = ClassB;
            classInstance = new classToConstruct();
            trace(classInstance);    // [object ClassB]
        }
    }
}

class ClassA {
}
    
class ClassB {
}




[ X ]Warum auf Englisch?
Inhalt des ActionScript 3.0-Referenzhandbuchs wird in englischer Sprache angezeigt

Nicht alle Teile des ActionScript 3.0-Referenzhandbuchs wurden in alle Sprachen übersetzt. Wenn der Text zu einem Sprachelement nicht übersetzt wurde, wird er auf Englisch angezeigt. Zum Beispiel wurden die Informationen zur ga.controls.HelpBox-Klasse nicht in andere Sprachen übersetzt. In der deutschen Version des Referenzhandbuchs erscheint der Abschnitt zur ga.controls.HelpBox-Klasse deshalb auf Englisch.