Die Proxyklasse hat keinen Konstruktor und darf nicht instanziiert werden. Erstellen Sie stattdessen eine Unterklasse der Proxyklasse, um Methoden wie
Beachten Sie auch, dass Ihr eigener Programmcode, mit dem die Methoden der Proxyklasse überschrieben werden, ebenfalls unbeabsichtigt Ausnahmen auslösen kann. Das Auslösen von Ausnahmen bei Verwendung dieser Methoden verursacht Probleme, da der aufrufende Programmcode (mit Operatoren wie
Bei der Proxyklasse handelt es sich um einen Ersatz für die Funktionen
Zur Vermeidung von Konflikten mit dem
Wenn Methoden der Proxyklasse ein
Beispiel:
Beispiel (mit Code aus
Beispiel (mit Code aus
Hinweis: Die ByteArray-Klasse ist für fortgeschrittene Entwickler bestimmt, die Datenzugriff auf Byteebene benötigen.
Im Speicher abgelegte Daten sind in einem Bytearray angeordnet (die kompakteste Darstellung des Datentyps), doch eine Instanz der ByteArray-Klasse kann mit dem Standardoperator
Zusätzlich werden die zlib-Komprimierung und -Dekomprimierung sowie die Objektserialisierung im AMF-Format (Action Message Format) unterstützt.
Einsatzmöglichkeiten der ByteArray-Klasse:
Hinweis: Wenn
Am Ende wird ein Codesegment eingefügt, mit dem auf Dateiende-Fehler geprüft wird. Hiermit wird sichergestellt, dass nicht über das Ende des Bytestroms hinaus gelesen wird.
Nach dem Aufruf wird die Eigenschaft
Eine Beschreibung des komprimierten Datenformats zlib finden Sie unter
Eine Beschreibung des Komprimierungsalgorithmus deflate finden Sie unter
Der deflate-Komprimierungsalgorithmus wird in verschiedenen Komprimierungsformaten verwendet, zum Beispiel zlib, gzip, einige zip-Implementierungen. Wenn Daten in einem dieser Formate komprimiert werden, enthalten Komprimierungsformatdaten (zum Beispiel die .zip-Datei), neben der komprimierten Version der Originaldaten auch Metadaten. Zu dieses Metadaten, die in verschiedenen Dateiformaten enthalten sind, gehören unter anderem Dateiname, Datum und Uhrzeit der Dateiänderung, ursprüngliche Dateigröße, optionale Kommentare und Prüfsummendaten.
Wenn zum Beispiel ein ByteArray mit dem zlib-Algorithmus komprimiert wird, weist das resultierende ByteArray eine bestimmte Struktur auf. Bestimmte Byte enthalten Metadaten zu den komprimierten Daten, während andere Byte die komprimierte Version der ursprünglichen ByteArray-Daten enthalten. Gemäß der Formatspezifikation für komprimierte Daten im zlib-Format werden diese Byte (der Teil, der die komprimierte Version der Originaldaten enthält) mit dem deflate-Algorithmus komprimiert. Folglich sind diese Byte identisch mit dem Ergebnis, das beim Aufrufen von
Um das deflate-Format zum Komprimieren der Daten einer ByteArray-Instanz in einem bestimmten Format wie z. B. gzip oder zip zu verwenden, können Sie nicht einfach
Nach dem Aufruf wird die Eigenschaft
Eine Beschreibung des Komprimierungsalgorithmus deflate finden Sie unter
Um das deflate-Format zum Komprimieren der Daten einer ByteArray-Instanz in einem bestimmten Format wie z. B. gzip oder zip zu verwenden, können Sie nicht einfach
Nach dem Aufruf wird die Eigenschaft
Eine Beschreibung des Komprimierungsalgorithmus deflate finden Sie unter
Um Daten zu dekodieren, die in einem Format komprimiert sind, das den deflate-Komprimierungsalgorithmus verwendet (z. B. Daten im GZIP- oder ZIP-Format) kann nicht einfach
Der Rückgabewert liegt im Bereich von -128 bis 127.
Der Rückgabewert liegt im Bereich von -2147483648 bis 2147483647.
Hinweis: Wird der Wert des
Der Rückgabewert liegt im Bereich von -32768 bis 32767.
Der Rückgabewert liegt im Bereich von 0 bis 255.
Der Rückgabewert liegt im Bereich von 0 bis 4294967295.
Der Rückgabewert liegt im Bereich von 0 bis 65535.
Nach dem Aufruf wird die Eigenschaft
Eine Beschreibung des komprimierten Datenformats zlib finden Sie unter
Eine Beschreibung des Komprimierungsalgorithmus deflate finden Sie unter
Um Daten zu dekodieren, die in einem Format komprimiert wurden, das den deflate-Komprimierungsalgorithmus verwendet (z. B. gzip oder zip), genügt es nicht,
Es werden die unteren 8 Bit des Parameters verwendet. Die oberen 24 Bit werden ignoriert.
Wird der Parameter
Wenn sich die Parameter
Verwenden Sie bei jedem Zugriff auf ein ByteArray-Objekt die
Beim Schreiben oder Lesen eines Objekts aus Binärdaten wird anhand des Werts von
Wenn die Länge auf einen Wert eingestellt wird, der größer als die aktuelle Länge ist, wird die rechte Seite des Byte-Arrays mit Nullen gefüllt.
Wenn für die Länge ein Wert angegeben wird, der kleiner als die aktuelle Länge ist, wird das Bytearray abgeschnitten.
Alle IDataInput- und IDataOutput-Vorgänge erfolgen in der Standardeinstellung im Format „bigEndian“ (das höchstwertige Byte der Folge wird an der niedrigsten bzw. ersten Speicheradresse gespeichert) und ungeblockt.
Vorzeichenerweiterung ist nur beim Lesen von Daten relevant, jedoch nicht beim Schreiben. Sie benötigen deshalb keine unterschiedlichen Schreibmethoden für die Datentypen
Am Ende wird ein Codesegment eingefügt, mit dem auf Dateiende-Fehler geprüft wird. Hiermit wird sichergestellt, dass nicht über das Ende des Bytestroms hinaus gelesen wird.
Wird der Parameter
Wenn sich die Parameter
Material im
Die Hexadezimalzahl 0x12345678 besteht aus 4 Byte (2 Hexadezimalziffern pro Byte). Das höchstwertige Byte ist 0x12. Das niedrigstwertige Byte ist 0x78. (Bei der entsprechenden Dezimalzahl 305419896 ist die höchstwertige Ziffer die 3 und die niedrigstwertige Ziffer die 6).
In einem Datenstrom mit der Bytereihenfolge „bigEndian“ (höchstwertiges Byte zuerst) werden die Daten wie folgt geschrieben:
12 34 56 78
Die Hexadezimalzahl 0x12345678 besteht aus 4 Byte (2 Hexadezimalziffern pro Byte). Das höchstwertige Byte ist 0x12. Das niedrigstwertige Byte ist 0x78. (Bei der entsprechenden Dezimalzahl 305419896 ist die höchstwertige Ziffer die 3 und die niedrigstwertige Ziffer die 6).
In einem Datenstrom mit der Bytereihenfolge „littleEndian“ (niedrigstwertiges Byte zuerst) werden die Daten wie folgt geschrieben:
78 56 34 12
Wenn eine Klasse die IExternalizable-Schnittstelle weder implementiert noch von einer anderen Klasse erbt, die diese implementiert, werden Instanzen dieser Klasse nur mithilfe der Standardmechanismen für öffentliche Mitglieder serialisiert. Als Folge davon sind private, interne und geschützte Mitglieder einer Klasse nicht verfügbar.
Zum Serialisieren privater Mitglieder muss eine Klasse die IExternalizable-Schnittstelle implementieren. Beispielsweise serialisiert die folgende Klasse keines ihrer Mitglieder, da diese als privat deklariert sind:
Wenn Sie jedoch die IExternalizable-Schnittstelle implementieren, können die privaten Mitglieder der Klasse wie folgt in den Datenstrom geschrieben bzw. von ihm gelesen werden:
Hinweis: Wenn eine Klasse die IExternalizable-Schnittstelle implementiert, wird auf Instanzen dieser Klasse nicht mehr die Standardserialisierung angewendet. Wenn diese Klasse öffentliche Mitglieder einer übergeordneten Klasse erbt, müssen Sie diese Mitglieder ebenfalls sorgfältig verwalten.
Wenn die Unterklasse einer Klasse, die die IExternalizable-Schnittstelle implementiert, über eigene private Member verfügt, muss die Unterklasse die Methoden von „IExternalizable“ wie folgt überschreiben:
Sie können die IExternalizable-Schnittstelle auch zum Komprimieren von Daten verwenden, bevor diese in einen Datenstrom geschrieben werden. Beispiel:
Hinweis: Mit
Wenn der Parameter
Um die statischen Eigenschaften eines Typs zu erhalten, müssen Sie als Parameter
Hinweis: Wenn Sie nur die Vererbungshierarchie eines Objekts überprüfen möchten und die durch
Die folgende Tabelle beschreibt einige der Tags und Attribute des XML-Objekts, das von
Nachdem Sie mit dieser Funktion den Namen einer Klasse abgerufen haben, können Sie diesen mit der Funktion
Hinweis: Diese Funktion ist auf Instanzhierarchien beschränkt, während die
Informationen zu einem Kalenderdatum (Zeitstempel) finden Sie bei den Angaben zum Date-Objekt.
Bei jedem Aufruf der
Es wird eine Schleife mit einer Million Durchläufen erstellt. Wenn das System die Anforderung bearbeiten kann, bevor eine zweite Anforderung ihre Gültigkeit verliert, wird durch
Anstelle der
Wenn Sie die
Anstatt diese Methode zu verwenden, empfiehlt es sich, ein Timerobjekt mit dem angegebenen Intervall zu erstellen und als
Wenn Sie die
Sie können festlegen, ob Timerobjekte einmalig oder in bestimmten Abständen wiederholt ausgeführt werden sollen, um Programmcode nach einem Zeitplan auszuführen.
Der Timer startet nicht automatisch. Sie müssen dazu die
Es wird ein Timerobjekt erstellt, das in 30 Sekunden startet (die Verzögerung ist auf 30000 Millisekunden eingestellt) und drei Mal wiederholt wird, sodass sich der Gesamtzeitraum von 90 Sekunden ergibt. (Der Timer stoppt nach dem dritten Mal.)
Für den Timer
Hinweis: Die Timer-Klasse verfolgt, wie viele Male ein Start erforderlich ist (
Nachdem der Timer zum letzten Mal aufgerufen wurde, wird das
Hinweis: Ein Wert von weniger als 20 Millisekunden für
Alle IDataInput- und IDataOutput-Vorgänge erfolgen in der Standardeinstellung im Format „bigEndian“ (das höchstwertige Byte der Folge wird an der niedrigsten bzw. ersten Speicheradresse gespeichert) und ungeblockt. Wenn nicht genug Daten vorhanden sind, wird eine
Vorzeichenerweiterung ist nur beim Lesen von Daten relevant, jedoch nicht beim Schreiben. Sie benötigen deshalb keine unterschiedlichen Schreibmethoden für die Datentypen
Am Ende wird ein Codesegment eingefügt, mit dem auf Dateiende-Fehler geprüft wird. Hiermit wird sichergestellt, dass nicht über das Ende des Bytestroms hinaus gelesen wird.
Hinweis: Wird der Wert des
Diese Methode entspricht der
Die nachstehenden Anweisungen veranschaulichen die Beziehung zwischen einem Dictionary-Objekt und einem Schlüsselobjekt:
var dict = new Dictionary(); var obj = new Object(); var key:Object = new Object(); key.toString = function() { return "key" } dict[key] = "Letters"; obj["key"] = "Letters"; dict[key] == "Letters"; // true obj["key"] == "Letters"; // true obj[key] == "Letters"; // true because key == "key" is true b/c key.toString == "key" dict["key"] == "Letters"; // false because "key" === key is false delete dict[key]; //removes the key