| Paket | Oberste Ebene |
| Klasse | public dynamic class Class |
| Vererbung | Class Object |
| Sprachversion: | ActionScript 3.0 |
| Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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.
Verwandte API-Elemente
- Deklarieren Sie zwei Klassen:
ClassAundClassB. - Deklarieren Sie eine Variablen vom Typ Class mit dem Namen
classToConstructund eine vom Typ BooleanchooseClassA, die in diesem Fall auftruegesetzt 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 {
}
Tue Jun 12 2018, 10:04 AM Z
Vererbte öffentliche Eigenschaften ausblenden
Vererbte öffentliche Eigenschaften anzeigen