flash.utilsProxy Mit der Proxyklasse können Sie das Standardverhalten von ActionScript-Vorgängen für Objekte (beispielsweise das Abrufen und Ändern von Eigenschaften) überschreiben.Object Mit der Proxyklasse können Sie das Standardverhalten von ActionScript-Vorgängen für Objekte (beispielsweise das Abrufen und Ändern von Eigenschaften) überschreiben.

Die Proxyklasse hat keinen Konstruktor und darf nicht instanziiert werden. Erstellen Sie stattdessen eine Unterklasse der Proxyklasse, um Methoden wie getProperty zu überschreiben und benutzerdefiniertes Verhalten umzusetzen. Wenn Sie versuchen, eine nicht überschriebene Methode der Proxyklasse zu verwenden, wird eine Ausnahme ausgelöst.

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 in, is, delete usw.) keine Ausnahmen erwartet. Wenn Sie nicht bereits sicher sind, dass Ihre überschreibenden Methoden keine Ausnahmen auslösen, empfiehlt Adobe die Verwendung von try..catch-Anweisungen für die Implementierung der Proxy-Klasse, um schwerwiegende Fehler beim Aufruf Ihrer Methoden durch die Operatoren zu vermeiden. Beispiel:

dynamic class MyProxy extends Proxy { flash_proxy override function callProperty(name:~~, ...rest):~~ { try { // custom code here } catch (e:Error) { // respond to error here } }

Bei der Proxyklasse handelt es sich um einen Ersatz für die Funktionen Object.__resolve und Object.addProperty aus ActionScript 2.0, die in ActionScript 3.0 nicht mehr verfügbar sind. Mit der Funktion Object.addProperty() konnten in ActionScript 2.0 dynamisch Methoden zum Abrufen und Festlegen von Eigenschaften erstellt werden. Obwohl Methoden zum Abrufen und Festlegen von Eigenschaften in ActionScript 3.0 zur Kompilierungszeit zur Verfügung stehen, können diese Objekte nur unter Verwendung der Proxyklasse dynamisch zugeordnet werden.

Zur Vermeidung von Konflikten mit dem public-Namespace befinden sich die Methoden der Proxyklasse im flash_proxy-Namespace.

Wenn Methoden der Proxyklasse ein name-Argument erfordern, kann name entweder ein String oder ein QName-Objekt sein (bei Verwendung von Namespaces).

package { import flash.display.Sprite; public class ProxyExample extends Sprite { public function ProxyExample() { var arr:ProxyArray = new ProxyArray(); arr.push(1); arr.push(-2); arr.push(3); arr.push(4); arr.push("five"); trace(arr.length); // 5 trace(arr[0]); // 1 trace(arr[1]); // -2 trace(arr[2]); // 3 trace(arr[3]); // 4 trace(arr.sum()); // 6 arr.clear(); trace(arr); // (empty string) arr[0] = "zero"; trace(arr); // zero } } } import flash.utils.Proxy; import flash.utils.flash_proxy; dynamic class ProxyArray extends Proxy { private var _item:Array; public function ProxyArray() { _item = new Array(); } override flash_proxy function callProperty(methodName:*, ... args):* { var res:*; switch (methodName.toString()) { case 'clear': _item = new Array(); break; case 'sum': var sum:Number = 0; for each (var i:* in _item) { // ignore non-numeric values if (!isNaN(i)) { sum += i; } } res = sum; break; default: res = _item[methodName].apply(_item, args); break; } return res; } override flash_proxy function getProperty(name:*):* { return _item[name]; } override flash_proxy function setProperty(name:*, value:*):void { _item[name] = value; } }
callProperty Überschreibt das Verhalten einer Objekteigenschaft, die als Funktion aufgerufen werden kann.Der Rückgabewert der aufgerufenen Methode. nameDer Name der aufgerufenen Methode. restEin Array mit den Argumenten für die aufgerufene Methode. Überschreibt das Verhalten einer Objekteigenschaft, die als Funktion aufgerufen werden kann. Beim Aufrufen einer Methode des Objekts wird diese Methode aufgerufen. Einige Objekte können als Funktion aufgerufen werden und ebenso einige Objekteigenschaften. Function.call()ECMA-262 Language Specification, 3rd Edition, Abschnitt 15deleteProperty Überschreibt die Anforderung zum Löschen einer Eigenschaft.true, wenn die Eigenschaft gelöscht wurde; andernfalls false. BooleannameDer Name der zu löschenden Eigenschaft. Überschreibt die Anforderung zum Löschen einer Eigenschaft. Beim Löschen eine Eigenschaft mit dem delete-Operator wird zum Ausführen des Löschvorgangs diese Methode aufgerufen. delete-OperatorECMA-262 Language Specification, 3rd Edition, Abschnitt 8.6.2.5getDescendants Überschreibt die Verwendung des descendant-Operators.Die Ergebnisse des descendant-Operators. nameDer Name der Eigenschaft, nachdem in dem entsprechenden Objekt gesucht werden soll. Überschreibt die Verwendung des descendant-Operators. Bei Verwendung des descendant-Operators wird diese Methode aufgerufen. descendant-OperatorE4X-SpezifikationgetProperty Überschreibt alle Anforderungen des Werts einer Eigenschaft.Die angegebene Eigenschaft oder undefined, wenn die Eigenschaft nicht vorhanden ist. nameDer Name der abzurufenden Eigenschaft. Überschreibt alle Anforderungen des Werts einer Eigenschaft. Wenn die Eigenschaft nicht vorhanden ist, gibt die Methode undefined zurück. Weitere Informationen zu diesem Verhalten finden Sie in der ECMA-262 Language Specification, 3rd Edition, Abschnitt 8.6.2.1. get-AnweisungECMA-262 Language Specification, 3rd Edition, Abschnitt 8.6.2.1hasProperty Überschreibt eine Anforderung zur Überprüfung, ob ein Objekt über eine Eigenschaft mit einem bestimmten Namen verfügt.true, wenn die Eigenschaft vorhanden ist; andernfalls false. BooleannameDer Name der zu überprüfenden Eigenschaft. Überschreibt eine Anforderung zur Überprüfung, ob ein Objekt über eine Eigenschaft mit einem bestimmten Namen verfügt. Object.hasOwnProperty()ECMA-262 Language Specification, 3rd Edition, Abschnitt 8.6.2.4isAttribute Überprüft, ob der angegebene „QName“ auch als Attribut gekennzeichnet ist.Gibt true zurück, wenn das Argument für name ein QName ist, der auch als Attribut gekennzeichnet ist. BooleannameDer Name der zu überprüfenden Eigenschaft. Überprüft, ob der angegebene „QName“ auch als Attribut gekennzeichnet ist. QName-KlassenextNameIndex Ermöglicht die Aufzählung der Eigenschaften des über die Proxyklasse zugänglich gemachten Objekts nach Indexnummer.Der Indexwert der Eigenschaft. intindexintDer auf null basierende Indexwert, ab dem die Aufzählung erfolgen soll. Ermöglicht die Aufzählung der Eigenschaften des über die Proxyklasse zugänglich gemachten Objekts nach Indexnummer. Es kann jedoch keine Aufzählung der Eigenschaften der Proxyklasse selbst erstellt werden. Diese Funktion unterstützt die Implementierung von for...in und for each..in-Schleifen für das Objekt mit dem Ziel des Abrufens von Eigenschaftsindexwerten.

Beispiel:

protected var _item:Array; // array of object's properties override flash_proxy function nextNameIndex (index:int):int { // initial call if (index == 0) { _item = new Array(); for (var x:~~ in _target) { _item.push(x); } } if (index < _item.length) { return index + 1; } else { return 0; } } override flash_proxy function nextName(index:int):String { return _item[index - 1]; }
Proxy.nextName()Proxy.nextValue()
nextName Ermöglicht die Aufzählung der Eigenschaften des über die Proxyklasse zugänglich gemachten Objekts nach Indexnummer, um die Namen der Eigenschaften abzurufen.Der Name der Eigenschaft. StringindexintDer auf null basierende Wert der Indexposition der Objekteigenschaft. Ermöglicht die Aufzählung der Eigenschaften des über die Proxyklasse zugänglich gemachten Objekts nach Indexnummer, um die Namen der Eigenschaften abzurufen. Es kann jedoch keine Aufzählung der Eigenschaften der Proxyklasse selbst erstellt werden. Diese Funktion unterstützt die Implementierung von for...in und for each..in-Schleifen für das Objekt mit dem Ziel des Abrufens der gewünschten Namen.

Beispiel (mit Code aus Proxy.nextNameIndex()):

protected var _item:Array; // array of object's properties override flash_proxy function nextNameIndex (index:int):int { // initial call if (index == 0) { _item = new Array(); for (var x:~~ in _target) { _item.push(x); } } if (index < _item.length) { return index + 1; } else { return 0; } } override flash_proxy function nextName(index:int):String { return _item[index - 1]; }
Proxy.nextNameIndex()Proxy.nextValue()
nextValue Ermöglicht die Aufzählung der Eigenschaften des über die Proxyklasse zugänglich gemachten Objekts nach Indexnummer, um die Werte der Eigenschaften abzurufen.Der Wert der Eigenschaft. indexintDer auf null basierende Wert der Indexposition der Objekteigenschaft. Ermöglicht die Aufzählung der Eigenschaften des über die Proxyklasse zugänglich gemachten Objekts nach Indexnummer, um die Werte der Eigenschaften abzurufen. Es kann jedoch keine Aufzählung der Eigenschaften der Proxyklasse selbst erstellt werden. Diese Funktion unterstützt die Implementierung von for...in und for each..in-Schleifen für das Objekt mit dem Ziel des Abrufens der gewünschten Werte.

Beispiel (mit Code aus Proxy.nextNameIndex()):

protected var _item:Array; // array of object's properties override flash_proxy function nextNameIndex (index:int):int { // initial call if (index == 0) { _item = new Array(); for (var x:~~ in _target) { _item.push(x); } } if (index < _item.length) { return index + 1; } else { return 0; } } override flash_proxy function nextName(index:int):String { return _item[index - 1]; }
Proxy.nextNameIndex()Proxy.nextName()
setProperty Überschreibt einen Aufruf zum Ändern des Werts einer Eigenschaft.nameDer Name der zu ändernden Eigenschaft. valueDer Wert, der für die Eigenschaft festgelegt werden soll. Überschreibt einen Aufruf zum Ändern des Werts einer Eigenschaft. Wenn die Eigenschaft noch nicht vorhanden ist, erstellt diese Methode eine Eigenschaft mit dem angegebenen Namen und Wert. set-AnweisungECMA-262 Language Specification, 3rd Edition, Abschnitt 8.6.2.2
ByteArray Die ByteArray-Klasse bietet Methoden und Eigenschaften, die Lese- und Schreibvorgänge für Binärdaten sowie deren Verarbeitung optimieren.flash.utils:IDataInputflash.utils:IDataOutputObject Die ByteArray-Klasse bietet Methoden und Eigenschaften, die Lese- und Schreibvorgänge für Binärdaten sowie deren Verarbeitung optimieren.

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 [] (Array-Zugriff) bearbeitet werden. Sie kann auch als im Speicher abgelegte Datei gelesen und geschrieben werden. Die dazu verwendeten Methoden entsprechen denen der Klassen URLStream und Socket.

Zusätzlich werden die zlib-Komprimierung und -Dekomprimierung sowie die Objektserialisierung im AMF-Format (Action Message Format) unterstützt.

Einsatzmöglichkeiten der ByteArray-Klasse:

  • Erstellen eines benutzerdefinierten Protokolls für die Verbindung mit einem Server
  • Programmieren eines benutzerdefinierten URLEncoder/URLDecoder
  • Programmieren eines benutzerdefinierten AMF/Remoting-Pakets
  • Optimieren der verwendeten Datengröße durch das Verwenden von Datentypen
  • Arbeiten mit binären Daten, die aus einer Datei in Adobe® AIR® geladen wurden.

Im folgenden Beispiel werden mit der Klasse ByteArrayExample ein boolescher Ausdruck und die Gleitkommadarstellung (mit doppelter Genauigkeit) der Zahl Pi in ein Bytearray geschrieben. Dies wird in den folgenden Schritten erreicht:
  1. Deklarieren Sie eine neue ByteArray-Objektinstanz mit dem Namen byteArr.
  2. Schreiben Sie den Byte-Äquivalenzwert des booleschen Werts false, prüfen Sie die Länge, und rufen Sie den Wert anschließend ab.
  3. Schreiben Sie den Äquivalenzwert der Zahl Pi in Gleitkommadarstellung (mit doppelter Genauigkeit).
  4. Rufen Sie die neun einzelnen Byte im Bytearray ab.

Hinweis: Wenn trace() für ein Byte aufgerufen wird, wird der äquivalente Dezimalwert der Byte aus dem Bytearray gedruckt.

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.

package { import flash.display.Sprite; import flash.utils.ByteArray; import flash.errors.EOFError; public class ByteArrayExample extends Sprite { public function ByteArrayExample() { var byteArr:ByteArray = new ByteArray(); byteArr.writeBoolean(false); trace(byteArr.length); // 1 trace(byteArr[0]); // 0 byteArr.writeDouble(Math.PI); trace(byteArr.length); // 9 trace(byteArr[0]); // 0 trace(byteArr[1]); // 64 trace(byteArr[2]); // 9 trace(byteArr[3]); // 33 trace(byteArr[4]); // 251 trace(byteArr[5]); // 84 trace(byteArr[6]); // 68 trace(byteArr[7]); // 45 trace(byteArr[8]); // 24 byteArr.position = 0; try { trace(byteArr.readBoolean() == false); // true } catch(e:EOFError) { trace(e); // EOFError: Error #2030: End of file was encountered. } try { trace(byteArr.readDouble()); // 3.141592653589793 } catch(e:EOFError) { trace(e); // EOFError: Error #2030: End of file was encountered. } try { trace(byteArr.readDouble()); } catch(e:EOFError) { trace(e); // EOFError: Error #2030: End of file was encountered. } } } }
[] (Array-Zugriff)Socket-KlasseURLStream-KlasseByteArray Erstellt eine ByteArray-Instanz, die ein gepacktes Bytearray darstellt, damit Sie die Methoden und Eigenschaften dieser Klasse einsetzen können, um die Datenspeicherung und den Datenstrom Ihres Programms zu optimieren. Erstellt eine ByteArray-Instanz, die ein gepacktes Bytearray darstellt, damit Sie die Methoden und Eigenschaften dieser Klasse einsetzen können, um die Datenspeicherung und den Datenstrom Ihres Programms zu optimieren. clear Löscht den Inhalt des Bytearrays und setzt die length- und position-Eigenschaft auf 0 zurück. Löscht den Inhalt des Bytearrays und setzt die length- und position-Eigenschaft auf 0 zurück. Wenn diese Methode aufgerufen wird, wird explizit Speicher freigegeben, der von der ByteArray-Instanz verwendet wird. compress Komprimiert das Bytearray.algorithmStringunknownDer beim Komprimieren zu verwendende Komprimierungsalgorithmus. Gültige Werte sind als Konstanten in der CompressionAlgorithm-Klasse definiert. Standardmäßig wird das zlib-Format verwendet. Dieser Parameter wird nur für Inhalt, der in Adobe AIR ausgeführt wird, erkannt. Flash Player unterstützt nur den Standardalgorithmus (zlib) und gibt einen Ausnahmefehler zurück, wenn Sie versuchen, einen Wert für diesen Parameter zu übergeben. Das Aufrufen von compress(CompressionAlgorithm.DEFLATE) hat den gleichen Effekt wie das Aufrufen der deflate()-Methode. Komprimiert das Bytearray. Das gesamte Bytearray wird komprimiert. Für Inhalt, der in Adobe AIR ausgeführt wird, können Sie einen Komprimierungsalgorithmus festlegen, indem Sie einen (in der CompressionAlgorithm-Klasse definierten) Wert als algorithm-Parameter übergeben. Flash Player unterstützt nur den Standardalgorithmus, zlib.

Nach dem Aufruf wird die Eigenschaft length des ByteArray auf die neue Länge eingestellt. Die Eigenschaft position wird auf das Ende des Byte-Arrays eingestellt.

Eine Beschreibung des komprimierten Datenformats zlib finden Sie unter http://www.ietf.org/rfc/rfc1950.txt.

Eine Beschreibung des Komprimierungsalgorithmus deflate finden Sie unter http://www.ietf.org/rfc/rfc1951.txt.

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 compress(airCompressionAlgorithm.DEFLATE) auf dem ursprünglichen ByteArray zurückgegeben wird. Das Ergebnis von compress(air.CompressionAlgorithm.ZLIB) enthält jedoch auch die Metadaten, während das Ergebnis von compress(CompressionAlgorithm.DEFLATE) nur die komprimierte Version der ursprünglichen ByteArray-Daten enthält.

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 compress(CompressionAlgorithm.DEFLATE) aufrufen. Sie müssen ein ByteArray erstellen, das gemäß der Spezifikation des Komprimierungsformats strukturiert ist, einschließlich der jeweiligen Metadaten sowie der komprimierten Daten, die Sie mit dem deflate-Format erhalten. Um in einem bestimmten Format (z. B. gzip oder zip) komprimierte Daten zu decodieren, genügt es nicht, einfach uncompress(CompressionAlgorithm.DEFLATE) für diese Daten aufzurufen. Sie müssen zunächst die Metadaten von den komprimierten Daten trennen. Dann können Sie das deflate-Format verwenden, um die Daten zu dekomprimieren.

uncompress()flash.utils.CompressionAlgorithm
deflate Komprimiert das Bytearray unter Verwendung des deflate-Komprimierungsalgorithmus. Komprimiert das Bytearray unter Verwendung des deflate-Komprimierungsalgorithmus. Das gesamte Bytearray wird komprimiert.

Nach dem Aufruf wird die Eigenschaft length des ByteArray auf die neue Länge eingestellt. Die Eigenschaft position wird auf das Ende des Byte-Arrays eingestellt.

Eine Beschreibung des Komprimierungsalgorithmus deflate finden Sie unter http://www.ietf.org/rfc/rfc1951.txt.

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 deflate() aufrufen. Sie müssen ein ByteArray erstellen, das gemäß der Spezifikation des Komprimierungsformats strukturiert ist, einschließlich der jeweiligen Metadaten sowie der komprimierten Daten, die Sie mit dem deflate-Format erhalten. Analog hierzu können Sie zum Dekodieren von Daten, die in einem Format wie z. B. gzip oder zip komprimiert sind, nicht einfach inflate() für diese Daten aufrufen. Sie müssen zunächst die Metadaten von den komprimierten Daten trennen. Dann können Sie das deflate-Format verwenden, um die Daten zu dekomprimieren.

inflate()
inflate Dekomprimiert das Bytearray unter Verwendung des deflate-Komprimierungsalgorithmus.Die Daten sind keine gültigen komprimierten Daten; sie wurden nicht mit demselben Komprimierungsalgorithmus dekomprimiert, der zum Komprimieren verwendet wurde. IOErrorflash.errors:IOError Dekomprimiert das Bytearray unter Verwendung des deflate-Komprimierungsalgorithmus. Das ByteArray muss mit demselben Komprimierungsalgorithmus komprimiert worden sein.

Nach dem Aufruf wird die Eigenschaft length des ByteArray auf die neue Länge eingestellt. Die position-Eigenschaft wird auf 0 gesetzt.

Eine Beschreibung des Komprimierungsalgorithmus deflate finden Sie unter http://www.ietf.org/rfc/rfc1951.txt.

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 inflate() auf einem ByteArray, das die Daten im komprimierten Format enthält, aufgerufen werden. Sie müssen zunächst die Metadaten, die als Teil des komprimierten Datenformats enthalten sind, von den tatsächlichen komprimierten Daten trennen. Weitere Informationen finden Sie in der Beschreibung der compress()-Methode.

deflate()
readBoolean Liest einen booleschen Wert vom Bytedatenstream.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorGibt true zurück, wenn das Byte ungleich 0 ist, andernfalls false. Boolean Liest einen booleschen Wert vom Bytedatenstream. Es wird ein einzelnes Byte gelesen und true zurückgegeben, wenn das Byte ungleich 0 ist, oder andernfalls false. readByte Liest ein vorzeichenbehaftetes Byte vom Bytedatenstream.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorEine Ganzzahl zwischen -128 und 127. int Liest ein vorzeichenbehaftetes Byte vom Bytedatenstream.

Der Rückgabewert liegt im Bereich von -128 bis 127.

readBytes Liest die Anzahl der im Parameter „length“ angegebenen Datenbyte aus dem Bytestrom.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorDie kombinierten Werte für Länge und Offset sind größer als der Höchstwert für eine vorzeichenlose Ganzzahl. RangeErrorRangeErrorbytesflash.utils:ByteArrayDas ByteArray-Objekt, in das die Daten gelesen werden. offsetuint0Der Offset (die Position) in bytes, ab dem die gelesenen Daten geschrieben werden sollten. lengthuint0Die Anzahl der zu lesenden Byte. Der Standardwert 0 bewirkt, dass alle verfügbaren Daten gelesen werden. Liest die Anzahl der im Parameter length angegebenen Datenbyte aus dem Bytestrom. Die Byte werden in das ByteArray-Objekt gelesen, das vom Parameter bytes angegeben wird, und in das Ziel-ByteArray geschrieben, das an der durch offset festgelegten Position beginnt. readDouble Liest eine Gleitkommazahl nach IEEE 754 mit doppelter Genauigkeit (64 Bit) vom Bytedatenstream.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorEine Gleitkommazahl mit doppelter Genauigkeit (64 Bit). Number Liest eine Gleitkommazahl nach IEEE 754 mit doppelter Genauigkeit (64 Bit) vom Bytedatenstream. readFloat Liest eine Gleitkommazahl nach IEEE 754 mit einfacher Genauigkeit (32 Bit) vom Bytedatenstream.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorEine Gleitkommazahl mit einfacher Genauigkeit (32 Bit). Number Liest eine Gleitkommazahl nach IEEE 754 mit einfacher Genauigkeit (32 Bit) vom Bytedatenstream. readInt Liest eine vorzeichenbehaftete 32-Bit-Ganzzahl vom Bytedatenstream.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorEine vorzeichenbehaftete 32-Bit-Ganzzahl zwischen -2147483648 und 2147483647. int Liest eine vorzeichenbehaftete 32-Bit-Ganzzahl vom Bytedatenstream.

Der Rückgabewert liegt im Bereich von -2147483648 bis 2147483647.

readMultiByte Liest einen Multibyte-String der angegebenen Länge unter Verwendung des angegebenen Zeichensatzes vom Bytedatenstream.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorEin UTF-8-kodierter String. StringlengthuintDie Anzahl der aus dem Bytestream zu lesenden Byte. charSetStringDer String, der den zum Interpretieren der Byte zu verwendenden Zeichensatz angibt. Mögliche Zeichensatz-Strings sind unter anderem "shift-jis", "cn-gb" und "iso-8859-1". Eine vollständige Liste finden Sie unter Unterstützte Zeichensätze.

Hinweis: Wird der Wert des charSet-Parameters vom aktuellen System nicht erkannt, verwendet die Anwendung die Standard-Codepage des Systems als Zeichensatz. Beispielsweise kann ein Wert des Parameters charSet wie bei myTest.readMultiByte(22, "iso-8859-01"), wo 01 anstelle von 1 eingesetzt wird, auf Ihrem Entwicklungssystem funktionieren, aber auf keinem anderen System. Auf anderen Systemen greift die Anwendung auf die Standard-Codepage des Systems zurück.

Liest einen Multibyte-String der angegebenen Länge unter Verwendung des angegebenen Zeichensatzes vom Bytedatenstream.
readObject Liest ein Objekt vom Bytedatenstream, das im serialisierten AMF-Format kodiert ist.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorDas deserialisierte Objekt. Liest ein Objekt vom Bytedatenstream, das im serialisierten AMF-Format kodiert ist. flash.net.registerClassAlias()readShort Liest eine vorzeichenbehaftete 16-Bit-Ganzzahl vom Bytedatenstream.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorEine vorzeichenbehaftete 16-Bit-Ganzzahl zwischen -32768 und 32767. int Liest eine vorzeichenbehaftete 16-Bit-Ganzzahl vom Bytedatenstream.

Der Rückgabewert liegt im Bereich von -32768 bis 32767.

readUTFBytes Liest eine Folge von UTF-8-Byte, die vom length-Parameter angegeben ist, aus dem Bytedatenstream und gibt einen String zurück.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorEin String der angegebenen Länge, der aus den UTF-8-Byte besteht. StringlengthuintEin vorzeichenloses short-Element mit der Länge des UTF-8-Strings. Liest eine Folge von UTF-8-Byte, die vom length-Parameter angegeben ist, aus dem Bytedatenstream und gibt einen String zurück. readUTF Liest einen UTF-8-String vom Bytedatenstream.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorEin UTF-8-kodierter String. String Liest einen UTF-8-String vom Bytedatenstream. Es wird davon ausgegangen, dass dem String eine short-Ganzzahl ohne Vorzeichen mit der Länge in Byte vorangestellt ist. flash.utils.IDataInput.readUTF()readUnsignedByte Liest ein vorzeichenloses Byte vom Bytedatenstream.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorEine vorzeichenlose 32-Bit-Ganzzahl zwischen 0 und 255. uint Liest ein vorzeichenloses Byte vom Bytedatenstream.

Der Rückgabewert liegt im Bereich von 0 bis 255.

readUnsignedInt Liest eine vorzeichenlose 32-Bit-Ganzzahl vom Bytedatenstream.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorEine vorzeichenlose 32-Bit-Ganzzahl zwischen 0 und 4294967295. uint Liest eine vorzeichenlose 32-Bit-Ganzzahl vom Bytedatenstream.

Der Rückgabewert liegt im Bereich von 0 bis 4294967295.

readUnsignedShort Liest eine vorzeichenlose 16-Bit-Ganzzahl vom Bytedatenstream.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorEine vorzeichenlose 16-Bit-Ganzzahl zwischen 0 und 65535. uint Liest eine vorzeichenlose 16-Bit-Ganzzahl vom Bytedatenstream.

Der Rückgabewert liegt im Bereich von 0 bis 65535.

toString Konvertiert das Bytearray in einen String.Die Stringdarstellung des Byte-Arrays. String Konvertiert das Bytearray in einen String. Wenn die Daten im Array mit einer Unicode-Bytereihenfolgenkennung beginnen, wird diese von der Anwendung bei der Konvertierung in einen String berücksichtigt. Wenn System.useCodePage auf true gesetzt ist, behandelt die Anwendung die Daten im Array beim Konvertieren, als lägen sie in der Kodierung der Codepage des Systems vor. uncompress Dekomprimiert das Bytearray.Die Daten sind keine gültigen komprimierten Daten; sie wurden nicht mit demselben Komprimierungsalgorithmus dekomprimiert, der zum Komprimieren verwendet wurde. IOErrorflash.errors:IOErroralgorithmStringunknownDer beim Dekomprimieren zu verwendende Komprimierungsalgorithmus. Es muss sich um denselben Komprimierungsalgorithmus handeln, der beim Komprimieren der Daten verwendet wurde. Gültige Werte sind als Konstanten in der CompressionAlgorithm-Klasse definiert. Standardmäßig wird das zlib-Format verwendet. Dieser Parameter wird nur für Inhalt, der in Adobe AIR ausgeführt wird, erkannt. Flash Player unterstützt nur den Standardalgorithmus (zlib) und gibt einen Ausnahmefehler zurück, wenn Sie versuchen, einen Wert für diesen Parameter zu übergeben. Dekomprimiert das Bytearray. Für Inhalt, der in Adobe AIR ausgeführt wird, können Sie einen Komprimierungsalgorithmus festlegen, indem Sie einen (in der CompressionAlgorithm-Klasse definierten) Wert als algorithm-Parameter übergeben. Das ByteArray muss mit demselben Komprimierungsalgorithmus komprimiert worden sein. Flash Player unterstützt nur den Standardalgorithmus, zlib.

Nach dem Aufruf wird die Eigenschaft length des ByteArray auf die neue Länge eingestellt. Die position-Eigenschaft wird auf 0 gesetzt.

Eine Beschreibung des komprimierten Datenformats zlib finden Sie unter http://www.ietf.org/rfc/rfc1950.txt.

Eine Beschreibung des Komprimierungsalgorithmus deflate finden Sie unter http://www.ietf.org/rfc/rfc1951.txt.

Um Daten zu dekodieren, die in einem Format komprimiert wurden, das den deflate-Komprimierungsalgorithmus verwendet (z. B. gzip oder zip), genügt es nicht, uncompress(CompressionAlgorithm.DEFLATE) für ein ByteArray mit den komprimierten Daten aufzurufen. Sie müssen zunächst die Metadaten, die als Teil des komprimierten Datenformats enthalten sind, von den tatsächlichen komprimierten Daten trennen. Weitere Informationen finden Sie in der Beschreibung der compress()-Methode.

compress()flash.utils.CompressionAlgorithm
writeBoolean Schreibt einen booleschen Wert.valueBooleanEin boolescher Wert, der angibt, welches Byte geschrieben wird. Ist der Parameter true, schreibt die Methode eine 1. Bei false wird eine 0 geschrieben. Schreibt einen booleschen Wert. Entsprechend dem Parameter value wird ein einzelnes Byte geschrieben: 1, wenn der Wert true ist oder 0, wenn der Wert false ist. writeByte Schreibt ein Byte in den Bytedatenstream.valueintEine 32-Bit-Ganzzahl. Die niedrigstwertigen 8 Bit werden in den Bytedatenstream geschrieben. Schreibt ein Byte in den Bytedatenstream.

Es werden die unteren 8 Bit des Parameters verwendet. Die oberen 24 Bit werden ignoriert.

writeBytes Schreibt eine Bytefolge der Länge „length aus dem angegebenen Bytearray „bytes“ ab Position „offset“ (auf null basierender Index) in den Bytestream.bytesflash.utils:ByteArrayDas ByteArray-Objekt. offsetuint0Ein auf null basierender Index, der die Array-Position angibt, ab der geschrieben werden soll. lengthuint0Eine vorzeichenlose Ganzzahl, die angibt, wie viele Byte des Puffers geschrieben werden sollen. Schreibt eine Bytefolge der Länge length aus dem angegebenen Bytearray bytes ab der Position offset (auf null basierender Index) in den Bytedatenstream.

Wird der Parameter length weggelassen, wird die Standardlänge 0 verwendet. Die Methode schreibt den gesamten Puffer ab der Position offset. Wird auch der Parameter offset weggelassen, so wird der gesamte Pufferinhalt geschrieben.

Wenn sich die Parameter offset bzw. length außerhalb des gültigen Bereichs befinden, werden sie auf den Anfang bzw. auf das Ende des bytes-Array gesetzt.

writeDouble Schreibt eine Gleitkommazahl nach IEEE 754 mit doppelter Genauigkeit (64 Bit) in den Bytedatenstream.valueNumberEine Gleitkommazahl mit doppelter Genauigkeit (64 Bit). Schreibt eine Gleitkommazahl nach IEEE 754 mit doppelter Genauigkeit (64 Bit) in den Bytedatenstream. writeFloat Schreibt eine Gleitkommazahl nach IEEE 754 mit einfacher Genauigkeit (32 Bit) in den Bytedatenstream.valueNumberEine Gleitkommazahl mit einfacher Genauigkeit (32 Bit). Schreibt eine Gleitkommazahl nach IEEE 754 mit einfacher Genauigkeit (32 Bit) in den Bytedatenstream. writeInt Schreibt eine vorzeichenbehaftete 32-Bit-Ganzzahl in den Bytedatenstream.valueintEine Ganzzahl, die in den Bytedatenstream geschrieben werden soll. Schreibt eine vorzeichenbehaftete 32-Bit-Ganzzahl in den Bytedatenstream. writeMultiByte Schreibt einen Multibyte-String unter Verwendung des angegebenen Zeichensatzes in den Bytedatenstream.valueStringDer String-Wert, der geschrieben werden soll. charSetStringDer String, der den zu verwendenden Zeichensatz angibt. Mögliche Zeichensatz-Strings sind unter anderem "shift-jis", "cn-gb" und "iso-8859-1". Eine vollständige Liste finden Sie unter Unterstützte Zeichensätze. Schreibt einen Multibyte-String unter Verwendung des angegebenen Zeichensatzes in den Bytedatenstream. writeObject Schreibt ein Objekt im serialisierten AMF-Format in den Bytedatenstream.objectDas zu serialisierende Objekt. Schreibt ein Objekt im serialisierten AMF-Format in den Bytedatenstream. flash.net.registerClassAlias()writeShort Schreibt eine 16-Bit-Ganzzahl in den Bytedatenstream.valueintEine 32-Bit-Ganzzahl, deren niedrigstwertige 16 Bit in den Bytedatenstream geschrieben werden. Schreibt eine 16-Bit-Ganzzahl in den Bytedatenstream. Es werden die unteren 16 Bit des Parameters verwendet. Die oberen 16 Bit werden ignoriert. writeUTFBytes Schreibt einen UTF-8-String in den Bytedatenstream.valueStringDer String-Wert, der geschrieben werden soll. Schreibt einen UTF-8-String in den Bytedatenstream. Entspricht der writeUTF()-Methode, doch bei writeUTFBytes() wird dem String kein 16-Bit-Wort mit der Längenangabe vorangestellt. writeUTF Schreibt einen UTF-8-String in den Bytedatenstream.Wenn die Länge größer als 65535 ist. RangeErrorRangeErrorvalueStringDer String-Wert, der geschrieben werden soll. Schreibt einen UTF-8-String in den Bytedatenstream. Die Länge des UTF-8-Strings in Byte als 16-Bit-Ganzzahl wird zuerst geschrieben, gefolgt von den Byte für die Zeichen des Strings. writeUnsignedInt Schreibt eine vorzeichenlose 32-Bit-Ganzzahl in den Bytedatenstream.valueuintEine vorzeichenlose Ganzzahl, die in den Bytedatenstream geschrieben werden soll. Schreibt eine vorzeichenlose 32-Bit-Ganzzahl in den Bytedatenstream. bytesAvailable Die Anzahl der ab der aktuellen Position im Bytearray bis zum Ende des Arrays zum Lesen verfügbaren Datenbyte.uint Die Anzahl der ab der aktuellen Position im Bytearray bis zum Ende des Arrays zum Lesen verfügbaren Datenbyte.

Verwenden Sie bei jedem Zugriff auf ein ByteArray-Objekt die bytesAvailable-Eigenschaft zusammen mit den Lesemethoden, um sicherzustellen, dass gültige Daten gelesen werden.

defaultObjectEncoding Gibt die Standardkodierung für Objekte der ByteArray-Klasse an, die für neue ByteArray-Instanzen verwendet wird.uint Gibt die Standardkodierung für Objekte der ByteArray-Klasse an, die für neue ByteArray-Instanzen verwendet wird. Beim Erstellen einer neuen ByteArray-Instanz beginnt die Kodierung für diese Instanz mit dem Wert von defaultObjectEncoding. Die Eigenschaft defaultObjectEncoding wird auf ObjectEncoding.AMF3 initialisiert.

Beim Schreiben oder Lesen eines Objekts aus Binärdaten wird anhand des Werts von objectEncoding ermittelt, ob als Format ActionScript 3.0, ActionScript 2.0 oder ActionScript 1.0 verwendet wird. Der Wert ist eine Konstante der ObjectEncoding-Klasse.

ObjectEncoding-Klasseflash.utils.ByteArray.objectEncoding
endian Ändert oder liest die Bytereihenfolge für die Daten; entweder Endian.BIG_ENDIAN oder Endian.LITTLE_ENDIAN.String Ändert oder liest die Bytereihenfolge für die Daten; entweder Endian.BIG_ENDIAN oder Endian.LITTLE_ENDIAN. Endian-Klasselength Die Länge des ByteArray-Objekts in Byte.uint Die Länge des ByteArray-Objekts in Byte.

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.

objectEncoding Anhand dieses Werts wird ermittelt, ob beim Schreiben oder Lesen einer ByteArray-Instanz als Format ActionScript 3.0, ActionScript 2.0 oder ActionScript 1.0 verwendet werden soll.uint Anhand dieses Werts wird ermittelt, ob beim Schreiben oder Lesen einer ByteArray-Instanz als Format ActionScript 3.0, ActionScript 2.0 oder ActionScript 1.0 verwendet werden soll. Der Wert ist eine Konstante der ObjectEncoding-Klasse. ObjectEncoding-Klasseflash.utils.ByteArray.defaultObjectEncodingposition Bewegt den Dateizeiger im ByteArray-Objekt oder gibt dessen aktuelle Position in Byte zurück.uint Bewegt den Dateizeiger im ByteArray-Objekt oder gibt dessen aktuelle Position in Byte zurück. Dies ist die Position, ab der beim nächsten Aufruf einer Lese- oder Schreibmethode Daten gelesen bzw. geschrieben werden.
IDataOutput Die IDataOutput-Schnittstelle bietet eine Reihe von Methoden zum Schreiben von Binärdaten. Die IDataOutput-Schnittstelle bietet eine Reihe von Methoden zum Schreiben von Binärdaten. Diese Schnittstelle ist das I/O-Gegenstück zur IDataInput-Schnittstelle, mit der Binärdaten gelesen werden. Die IDataOutput-Schnittstelle wird von den Klassen FileStream, Socket und ByteArray implementiert.

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 IDataInput.readUnsignedByte() und IDataInput.readUnsignedShort(). Dies bedeutet:

  • Verwenden Sie IDataOutput.writeByte() mit IDataInput.readUnsignedByte() und IDataInput.readByte().
  • Verwenden Sie IDataOutput.writeShort() mit IDataInput.readUnsignedShort() und IDataInput.readShort().
Im folgenden Beispiel werden mit der Klasse DataOutputExample ein boolescher Ausdruck und die Gleitkommadarstellung (mit doppelter Genauigkeit) der Zahl Pi in ein Bytearray geschrieben. Dies wird in den folgenden Schritten erreicht:
  1. Deklarieren Sie eine neue ByteArray-Objektinstanz mit dem Namen byteArr.
  2. Schreiben Sie den Byte-Äquivalenzwert des booleschen Werts false und die Gleitkommadarstellung (mit doppelter Genauigkeit) der Zahl Pi.
  3. Rufen Sie den booleschen Wert und den Gleitkommawert ab.

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.

package { import flash.display.Sprite; import flash.utils.ByteArray; import flash.errors.EOFError; public class DataOutputExample extends Sprite { public function DataOutputExample() { var byteArr:ByteArray = new ByteArray(); byteArr.writeBoolean(false); byteArr.writeDouble(Math.PI); byteArr.position = 0; try { trace(byteArr.readBoolean()); // false } catch(e:EOFError) { trace(e); // EOFError: Error #2030: End of file was encountered. } try { trace(byteArr.readDouble()); // 3.141592653589793 } catch(e:EOFError) { trace(e); // EOFError: Error #2030: End of file was encountered. } try { trace(byteArr.readDouble()); } catch(e:EOFError) { trace(e); // EOFError: Error #2030: End of file was encountered. } } } }
IDataInput-SchnittstelleendianFileStream-KlasseSocket-KlasseURLStream-KlasseByteArray-KlassewriteBoolean Schreibt einen booleschen Wert.valueBooleanEin boolescher Wert, der angibt, welches Byte geschrieben wird. Hat der Parameter den Wert true, wird 1 geschrieben; bei false wird 0 geschrieben. Schreibt einen booleschen Wert. Entsprechend dem Parameter value wird ein einzelnes Byte geschrieben: 1, wenn der Wert true ist oder 0, wenn der Wert false ist. writeByte Schreibt ein Byte.valueintEin Byte-Wert als Ganzzahl. Schreibt ein Byte. Die unteren 8 Bit des Parameters werden verwendet, die oberen 24 Bit werden ignoriert. writeBytes Schreibt eine Bytesequenz vom angegebenen Byte-Array in den Dateistream, Bytestream oder das Byte-Array, beginnend mit dem durch „offset“ festgelegten Byte (unter Verwendung einer auf null basierenden Indexposition) mit einer durch „length“ festgelegten Länge.bytesflash.utils:ByteArrayDas zu schreibende Byte-Array. offsetuint0Eine auf null basierende Indexposition, welche die Array-Position festlegt, ab der geschrieben werden soll. lengthuint0Eine vorzeichenlose Ganzzahl, die festlegt, wie viele Byte des Puffers geschrieben werden sollen. Schreibt eine Byte-Sequenz vom angegebenen Bytearray in den Dateistream, Bytestream oder das Bytearray, beginnend mit dem durch offset festgelegten Byte (unter Verwendung einer auf null basierenden Indexposition) mit einer durch length festgelegten Länge.

Wird der Parameter length weggelassen, wird die Standardlänge 0 verwendet und der gesamte Puffer wird ab der Position offset geschrieben. Wird auch der Parameter offset weggelassen, so wird der gesamte Pufferinhalt geschrieben.

Wenn sich die Parameter offset bzw. length außerhalb des gültigen Bereichs befinden, werden sie auf den Anfang bzw. auf das Ende des bytes-Array gesetzt.

writeDouble Schreibt eine Gleitkommazahl nach IEEE 754 mit doppelter Genauigkeit (64 Bit).valueNumberEine Gleitkommazahl mit doppelter Genauigkeit (64 Bit). Schreibt eine Gleitkommazahl nach IEEE 754 mit doppelter Genauigkeit (64 Bit). writeFloat Schreibt eine Gleitkommazahl nach IEEE 754 mit einfacher Genauigkeit (32 Bit).valueNumberEine Gleitkommazahl mit einfacher Genauigkeit (32 Bit). Schreibt eine Gleitkommazahl nach IEEE 754 mit einfacher Genauigkeit (32 Bit). writeInt Schreibt eine vorzeichenbehaftete 32-Bit-Ganzzahl.valueintEin Byte-Wert als vorzeichenbehaftete Ganzzahl. Schreibt eine vorzeichenbehaftete 32-Bit-Ganzzahl. writeMultiByte Schreibt einen Multibyte-String unter Verwendung des angegebenen Zeichensatzes in den Dateistream, Bytestream oder Byte-Array.valueStringDer String-Wert, der geschrieben werden soll. charSetStringDer String, der den zu verwendenden Zeichensatz angibt. Mögliche Zeichensatz-Strings sind unter anderem "shift-jis", "cn-gb" und "iso-8859-1". Eine vollständige Liste finden Sie unter Unterstützte Zeichensätze. Schreibt einen Multibyte-String unter Verwendung des angegebenen Zeichensatzes in den Dateistream, Bytestream oder Byte-Array. writeObject Schreibt ein Objekt im serialisierten AMF-Format in den Dateistream, Bytestream oder Byte-Array.objectDas zu serialisierende Objekt Schreibt ein Objekt im serialisierten AMF-Format in den Dateistream, Bytestream oder Byte-Array. objectEncodingflash.net.registerClassAlias()writeShort Schreibt eine 16-Bit-Ganzzahl.valueintEin Byte-Wert als Ganzzahl. Schreibt eine 16-Bit-Ganzzahl. Die unteren 16 Bit des Parameters werden verwendet, die oberen 16 Bit werden ignoriert. writeUTFBytes Schreibt einen UTF-8-String.valueStringDer String-Wert, der geschrieben werden soll. Schreibt einen UTF-8-String. Entspricht writeUTF(), doch dem String wird kein 16-Bit-Wort mit der Längenangabe vorangestellt. writeUTF Schreibt einen UTF-8-String in den Dateistream, Bytestream oder Byte-Array.Wenn die Länge größer als 65535 ist. RangeErrorRangeErrorvalueStringDer String-Wert, der geschrieben werden soll. Schreibt einen UTF-8-String in den Dateistream, Bytestream oder Bytearray. Die Länge des UTF-8-Strings in Byte als 16-Bit-Ganzzahl wird zuerst geschrieben, gefolgt von den Byte für die Zeichen des Strings. writeUnsignedInt Schreibt eine vorzeichenlose 32-Bit-Ganzzahl.valueuintEin Byte-Wert als vorzeichenlose Ganzzahl. Schreibt eine vorzeichenlose 32-Bit-Ganzzahl. endian Die Bytereihenfolge der Daten. Entweder die Konstante BIG_ENDIAN oder LITTLE_ENDIAN der Endian-Klasse.String Die Bytereihenfolge der Daten. Entweder die Konstante BIG_ENDIAN oder LITTLE_ENDIAN der Endian-Klasse. Endian-KlasseobjectEncoding Wird verwendet, um festzustellen, ob das Format AMF3 oder AMF0 verwendet wird, wenn binäre Daten mit der writeObject()-Methode geschrieben oder gelesen werden.uint Wird verwendet, um festzustellen, ob das Format AMF3 oder AMF0 verwendet wird, wenn binäre Daten mit der writeObject()-Methode geschrieben oder gelesen werden. Der Wert ist eine Konstante der ObjectEncoding-Klasse. IDataInput.readObject()writeObject()ObjectEncoding-Klasse
Endian Die Endian-Klasse enthält Werte, mit denen die Bytereihenfolge für die Darstellung von Multibyte-Zahlen angegeben wird.Object Die Endian-Klasse enthält Werte, mit denen die Bytereihenfolge für die Darstellung von Multibyte-Zahlen angegeben wird. Als Bytereihenfolge sind die beiden Werte „bigEndian“ (höchstwertige Byte zuerst) oder „littleEndian“ (niedrigstwertige Byte zuerst) möglich.

Material im Flash Player oder in Adobe® AIR™ kann bei der Datenübertragung mit einem Server direkt das Binärprotokoll dieses Servers verwenden. Einige Server verwenden die Bytereihenfolge „bigEndian“ und andere die Bytereihenfolge „littleEndian“. Die meisten Server im Internet verwenden die Bytereihenfolge „bigEndian“, da dies der Bytereihenfolge in Netzwerken entspricht. Die Bytereihenfolge „littleEndian“ ist verbreitet, da sie von der Intel x86-Prozessorarchitektur verwendet wird. Verwenden Sie die Bytereihenfolge, die dem Protokoll des Servers entspricht, der die Daten sendet oder empfängt.

flash.utils.ByteArray.endianflash.filesystem.FileStream.endianflash.utils.IDataInput.endianflash.utils.IDataOutput.endianflash.net.Socket.endianflash.net.URLStream.endianBIG_ENDIAN Gibt an, dass das höchstwertige Byte der Multibyte-Zahl an erster Stelle der Bytefolge steht.bigEndianString Gibt an, dass das höchstwertige Byte der Multibyte-Zahl an erster Stelle der Bytefolge steht.

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
	 
LITTLE_ENDIAN Gibt an, dass das niedrigstwertige Byte der Multibyte-Zahl an erster Stelle der Bytefolge steht.littleEndianString Gibt an, dass das niedrigstwertige Byte der Multibyte-Zahl an erster Stelle der Bytefolge steht.

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
	 
IExternalizable Mithilfe der IExternalizable-Schnittstelle kann die Serialisierung einer Klasse beim Kodieren in einen Datenstrom gesteuert werden. Mithilfe der IExternalizable-Schnittstelle kann die Serialisierung einer Klasse beim Kodieren in einen Datenstrom gesteuert werden. Die writeExternal()- und readExternal()-Methode der IExternalizable-Schnittstelle werden von einer Klasse implementiert, um den Inhalt und das Format des Datenstroms (jedoch nicht den Klassennamen oder Typ) eines Objekts und seiner übergeordneten Typen anpassen zu können. Jede einzelne Klasse muss den Status ihrer Instanzen serialisieren und wiederherstellen. Zum Speichern des Status müssen diese Methoden symmetrisch zum übergeordneten Typ sein. Diese Methoden ersetzen das native AMF-Serialisierungsverhalten (Action Message Format).

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:

class Example { private var one:int; private var two:int; }

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:

class Example implement IExternalizable { private var one:int; private var two:int; public function writeExternal(output:IDataOutput) { output.writeInt(one); output.writeInt(two); } public function readExternal(input:IDataInput) { one = input.readInt(); two = input.readInt(); } }

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:

public class Base implements IExternalizable { private var one:Boolean; public function writeExternal(output:IDataOutput):void { output.writeBoolean(one); } public function readExternal(input:IDataInput):void { one = input.readBoolean(); } } public class Example extends Base { private var one:String; public override function writeExternal(output:IDataOutput):void { super.writeExternal(output); output.writeUTF(one); } public override function readExternal(input:IDataInput):void { super.readExternal(input); one = input.readUTF(); } }

Sie können die IExternalizable-Schnittstelle auch zum Komprimieren von Daten verwenden, bevor diese in einen Datenstrom geschrieben werden. Beispiel:

class Example implements IExternalizable { public var one:Boolean; public var two:Boolean; public var three:Boolean; public var four:Boolean; public var five:Boolean; public var six:Boolean; public var seven:Boolean; public var eight:Boolean; public function writeExternal(output:IDataOutput) { var flag:int = 0; if (one) flag |= 1; if (two) flag |= 2; if (three) flag |= 4; if (four) flag |= 8; if (five) flag |= 16; if (six) flag |= 32; if (seven) flag |= 64; if (eight) flag |= 128; output.writeByte(flag); } public function readExternal(input:IDataInput) { var flag:int = input.readByte(); one = (flag & 1) != 0; two = (flag & 2) != 0; three = (flag & 4) != 0; four = (flag & 8) != 0; five = (flag & 16) != 0; six = (flag & 32) != 0; seven = (flag & 64) != 0; eight = (flag & 128) != 0; } }
flash.net.ObjectEncodingreadExternal Eine Klasse implementiert diese Methode, um sich selbst aus einem Datenstrom zu dekodieren, indem sie die Methoden der IDataInput-Schnittstelle aufruft.inputflash.utils:IDataInputDer Name der Klasse, die die IDataInput-Schnittstelle implementiert. Eine Klasse implementiert diese Methode, um sich selbst aus einem Datenstrom zu dekodieren, indem sie die Methoden der IDataInput-Schnittstelle aufruft. Diese Methode muss die Werte in derselben Reihenfolge und mit denselben Typen lesen, wie diese von der writeExternal()-Methode geschrieben wurden. writeExternal Eine Klasse implementiert diese Methode, um sich selbst in einen Datenstrom zu kodieren, indem sie die Methoden der IDataOutput-Schnittstelle aufruft.outputflash.utils:IDataOutputDer Name der Klasse, die die IDataOutput-Schnittstelle implementiert. Eine Klasse implementiert diese Methode, um sich selbst in einen Datenstrom zu kodieren, indem sie die Methoden der IDataOutput-Schnittstelle aufruft.
describeType Erstellt ein XML-Objekt, das das als Parameter der Methode angegebene ActionScript-Objekt beschreibt.Ein XML-Objekt mit Detailinformationen zu dem als Parameter übergebenen Objekt. Es enthält die folgenden Angaben zum Objekt:
  • Klasse des Objekts
  • Attribute der Klasse
  • Vererbungshierarchie von der Klasse bis zu ihren Basisklassen
  • Implementierte Schnittstellen durch die Klasse
  • Deklarierte Instanzeigenschaften der Klasse
  • Deklarierte statische Eigenschaften der Klasse
  • Instanzmethoden der Klasse
  • Statische Methoden der Klasse
  • Name, Anzahl der Parameter, Rückgabetyp und Datentypen der Parameter für jede Methode der Klasse

Hinweis: Mit describeType() werden nur öffentliche Eigenschaften und Methoden angezeigt, nicht solche, die als privat oder paketintern deklariert sind oder sich in benutzerdefinierten Namespaces befinden.

XML
valueDas Objekt, für das eine Typbeschreibung gewünscht wird. Dieser Methode können beliebige ActionScript-Werte übergeben werden, einschließlich aller verfügbaren ActionScript-Typen, Objektinstanzen, Grunddatentypen wie „uint“ und Klassenobjekte.
Erstellt ein XML-Objekt, das das als Parameter der Methode angegebene ActionScript-Objekt beschreibt. Diese Methode implementiert das Programmierkonzept von reflection für die ActionScript-Programmiersprache.

Wenn der Parameter value eine Instanz eines bestimmten Typs ist, enthält das zurückgegebene XML-Objekt alle Instanzeigenschaften dieses Typs, jedoch nicht die statischen Eigenschaften. Sie können dies beim Analysieren des XML-Objekts feststellen, indem Sie das Attribut des Tags <type> isStatic überprüfen. Dieses Attribut hat den Wert false, wenn der Parameter value eine Instanz eines Typs ist.

Um die statischen Eigenschaften eines Typs zu erhalten, müssen Sie als Parameter value den Typ selbst übergeben. Das zurückgegebene XML-Objekt enthält nicht nur die statischen Eigenschaften des Typs, sondern auch alle entsprechenden Instanzeigenschaften. Die Instanzeigenschaften sind innerhalb eines Tags mit der Bezeichnung <factory> zusammengefasst und unterscheiden sich so von den statischen Eigenschaften. In diesem Fall hat das Attribut isStatic des Tags <type> den Wert true.

Hinweis: Wenn Sie nur die Vererbungshierarchie eines Objekts überprüfen möchten und die durch describeType() bereitgestellten weiteren Informationen nicht benötigen, verwenden Sie stattdessen die Funktionen getQualifiedClassName() und getQualifiedSuperclassName().

Die folgende Tabelle beschreibt einige der Tags und Attribute des XML-Objekts, das von describeType() generiert wurde (alle zurückgegebenen Klassen- und Interfacenamen sind im voll qualifizierten Format):

TagAttributBeschreibung<type> Das Haupt-Tag des XML-Objekts. nameDer Name des Datentyps des ActionScript-Objekts. baseDie direkte Superklasse der Definitionsklasse des ActionScript-Objekts. Wenn das ActionScript-Objekt ein Klassenobjekt ist, ist der Wert Class. isDynamictrue, wenn die Definitionsklasse des ActionScript-Objekts dynamisch ist, sonst false. Wenn das ActionScript-Objekt ein Klassenobjekt ist, ist der Wert true, da die Class-Klasse dynamisch ist. isFinaltrue, wenn die Definitionsklasse des ActionScript-Objekts final ist, sonst false. isStatictrue, wenn das ActionScript-Objekt ein Klassenobjekt oder eine Konstruktorfunktion ist, sonst false. Dieses Attribut hat die Bezeichnung isStatic, da beim Wert true alle nicht im Tag factory verschachtelten Tags statisch sind.<extendsClass> Für jede Superklasse der Definitionsklasse des ActionScript-Objekts gibt es ein eigenes extendsClass-Tag. typeDer Name einer Superklasse, die die Definitionsklasse des ActionScript-Objekts erweitert.<implementsInterface> Für jede von der Definitionsklasse des ActionScript-Objekts oder einer ihrer Superklassen implementierten Schnittstelle gibt es ein eigenes implementsInterface-Tag. typeDer Name einer Schnittstelle, die über die Definitionsklasse des ActionScript-Objekts implementiert wird.<accessor> Dies ist eine Eigenschaft, die von Funktionen zum Abrufen und Setzen von Werten definiert wird. nameDer Name der accessor-Eigenschaft. accessDie Zugriffsrechte der Eigenschaft. Mögliche Werte sind u. a. readonly, writeonly und readwrite. typeDer Datentyp der Eigenschaft. declaredByDie Klasse, die die verknüpften get-/set-Funktionen enthält.<constant> Eine Konstante ist eine mit der const-Anweisung definierte Eigenschaft. nameDer Name der Konstante. typeDer Datentyp der Konstante.<Methode> Eine Methode ist eine als Teil einer Klassendefinition deklarierte Funktion. nameDer Name der Methode. declaredByDie Klasse, die die Methodendefinition enthält. returnTypeDer Datentyp des Rückgabewerts der Methode.<parameter> Für jeden von einer Methode definierten Parameter gibt es ein eigenes parameter-Tag. Dieses Tag ist immer innerhalb eines <method>-Tags geschachtelt. indexEin Zahlenwert, der der Position des Parameters in der Parameterliste der Methode entspricht. Der erste Parameter hat den Wert 1. typeDer Datentyp des Parameters. optionaltrue, wenn der Parameter optional ist, andernfalls false.<variable> Eine Variable ist eine mit der var-Anweisung definierte Eigenschaft. nameDer Name der Variablen. typeDer Datentyp der Variablen.<factory> Wenn das ActionScript-Objekt ein Klassenobjekt oder eine Konstruktorfunktion ist, sind alle Instanzeigenschaften und Methoden innerhalb dieses Tags geschachtelt. Wenn das Attribut isStatic des <type>-Tags den Wert true hat, sind alle nicht im <factory>-Tag verschachtelten Eigenschaften und Methoden statisch. Dieses Tag ist nur vorhanden, wenn das ActionScript-Objekt ein Klassenobjekt oder eine Konstruktorfunktion ist.
package { import flash.display.Sprite; import flash.utils.describeType; public class DescribeTypeExample extends Sprite { public function DescribeTypeExample() { var child:Sprite = new Sprite(); var description:XML = describeType(child); trace(description..accessor.@name.toXMLString()); } } }
getQualifiedClassName()getQualifiedSuperclassName()
escapeMultiByte Gibt in Abhängigkeit vom Wert „System.useCodePage“ eine entweder als UTF-8 oder in der System-Codepage kodierte, mit Escape-Sequenzen versehene Kopie des Eingabestrings zurück.Eine mit Escape-Sequenzen versehene Kopie des Eingabestrings. Wenn „System.useCodePage“ den Wert true aufweist, wird zum Umwandeln in Escape-Sequenzen die Codepage des Systems verwendet. Wenn „System.useCodePage“ den Wert false aufweist, wird zum Umwandeln in Escape-Sequenzen die Kodierung UTF-8 verwendet. Zum Beispiel wird der Eingabestring "Crüe" auf allen Systemen in die Zeichenfolge "Cr%C3%BCe" konvertiert, wenn "System.useCodePage" den Wert false aufweist. Wenn "System.useCodePage" den Wert true aufweist und das System die Codepage "Latin" verwendet, wird "Crüe" in "Cr%FCe" umgewandelt. Wenn das System eine andere Codepage verwendet, die nicht den Buchstaben 'ü' enthält, ist das Ergebnis mit hoher Wahrscheinlichkeit "Cr?e". Wenn "System.useCodePage" den Wert true hat, führt das Entfernen der Escape-Sequenzen aus dem Eingabestring "Cr%C3%BCe" je nach System zu unterschiedlichen falschen Ergebnissen, beispielsweise zu "Crüe" auf Systemen mit lateinischer Codepage. Ebenso führt das Entfernen der Escape-Sequenzen aus dem Eingabestring "Cr%FCe" zu "Cre", "Cr?e" oder je nach Codepage zu anderen Varianten, wenn „System.useCodePage“ den Wert false hat. StringvalueStringDer mit Escape-Sequenzen zu versehende String. Gibt in Abhängigkeit vom Wert „System.useCodePage“ eine entweder als UTF-8 oder in der System-Codepage kodierte, mit Escape-Sequenzen versehene Kopie des Eingabestrings zurück. Durch die Verwendung von „System.useCodePage“ können mit der Laufzeitumgebung auch ältere, in lokalen Codepages kodierte Inhalte wiedergegeben werden, jedoch nur auf Systemen, die diese Codepage verwenden. So werden zum Beispiel als Shift-JIS kodierte japanische Daten nur unter einem Betriebssystem ordnungsgemäß in Escape-Sequenzen konvertiert und rückkonvertiert, das als Standard-Codepage Japanisch verwendet. getDefinitionByName Gibt einen Verweis auf das Klassenobjekt der im Parameter „name“ angegebenen Klasse zurück.Es ist keine öffentliche Definition mit dem angegebenen Namen vorhanden. ReferenceErrorReferenceErrorGibt einen Verweis auf das Klassenobjekt der im Parameter name angegebenen Klasse zurück. ObjectnameStringDer Name einer Klasse. Gibt einen Verweis auf das Klassenobjekt der im Parameter name angegebenen Klasse zurück. Im folgenden Beispiel werden mit der Klasse GetDefinitionByNameExample nacheinander fünf orangefarbene Quadrate erstellt. Dies wird in den folgenden Schritten erreicht:
  1. Es werden Variablen für die orange Hintergrundfarbe und die Größe von 80 Pixel deklariert, die später für die Zeichnung des Quadrats benötigt werden.
  2. Im Konstruktor wird die ClassReference-Variable vom Typ „Class“ dem Typ „Sprite“ zugewiesen.
  3. Es wird die ClassReference-Instanz instance instanziiert.
  4. Da es sich bei instance per Referenz um ein Sprite-Objekt handelt, kann ein Quadrat gezeichnet und der Anzeigeliste mit den für Sprite verfügbaren Methoden hinzugefügt werden.
package { import flash.display.DisplayObject; import flash.display.Sprite; import flash.utils.getDefinitionByName; public class GetDefinitionByNameExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 80; public function GetDefinitionByNameExample() { var ClassReference:Class = getDefinitionByName("flash.display.Sprite") as Class; var instance:Object = new ClassReference(); instance.graphics.beginFill(bgColor); instance.graphics.drawRect(0, 0, size, size); instance.graphics.endFill(); addChild(DisplayObject(instance)); } } }
getQualifiedClassName Gibt den vollständig qualifizierten Klassennamen eines Objekts zurück.Ein String mit dem vollständig qualifizierten Klassennamen. StringvalueDas Objekt, für das ein vollständig qualifizierter Klassenname gewünscht wird. Dieser Methode können beliebige ActionScript-Werte übergeben werden, einschließlich aller verfügbaren ActionScript-Typen, Objektinstanzen, Grunddatentypen wie „uint“ und Klassenobjekte. Gibt den vollständig qualifizierten Klassennamen eines Objekts zurück. describeType()getQualifiedSuperclassName()getQualifiedSuperclassName Gibt den vollständig qualifizierten Klassennamen der Basisklasse des im Parameter „value“ angegebenen Objekts zurück.Ein vollständig qualifizierter Basisklassenname oder null, wenn keiner vorhanden ist. StringvalueEin beliebiger Wert. Gibt den vollständig qualifizierten Klassennamen der Basisklasse des im Parameter value angegebenen Objekts zurück. Diese Funktion stellt eine schnellere Möglichkeit zum Abrufen des Basisklassennamens dar als describeType(), gibt jedoch nicht alle der Informationen zurück, die describeType() liefert.

Nachdem Sie mit dieser Funktion den Namen einer Klasse abgerufen haben, können Sie diesen mit der Funktion getDefinitionByName() in einen Klassenverweis umwandeln.

Hinweis: Diese Funktion ist auf Instanzhierarchien beschränkt, während die describeType()-Funktion Klassenobjekthierarchien verwendet, wenn der Parameter value ein Datentyp ist. Der Aufruf von describeType() für einen Datentyp gibt die anhand der Klassenobjekthierarchie ermittelte Superklasse zurück. In der Klassenobjekthierarchie erben alle Klassenobjekte von „Class“. Die getQualifiedSuperclassName()-Funktion ignoriert jedoch die Klassenobjekthierarchie und gibt die Superklasse anhand der vertrauteren Instanzhierarchie zurück. Zum Beispiel gibt der Aufruf von getQualifiedSuperclassName(String) den Wert Object zurück, obwohl technisch gesehen das String-Klassenobjekt von „Class“ geerbt wird. Anders ausgedrückt führt der Aufruf mit einer Instanz eines Typs oder mit dem Typ selbst zum selben Ergebnis.

describeType()getDefinitionByName()getQualifiedClassName()
getTimer Wird zur Berechnung der relativen Zeit verwendet.Die Anzahl der Millisekunden seit der Initialisierung der Laufzeitumgebung (bei Verarbeitung von ActionScript 2.0) oder seit dem Start des virtuellen Computers (bei Verarbeitung von ActionScript 3.0). Wenn die Laufzeitumgebung die Wiedergabe einer SWF-Datei startet und später eine weitere SWF-Datei geladen wird, stellt der Rückgabewert die Differenz zum Zeitpunkt des Ladens der ersten SWF-Datei dar. int Wird zur Berechnung der relativen Zeit verwendet. Für eine Flash-Laufzeitumgebung, die ActionScript 3.0 verarbeitet, gibt diese Methode die Anzahl der Millisekunden an, die seit dem Start des virtuellen Rechners für ActionScript 3.0 (AVM2) verstrichen sind. Für eine Flash-Laufzeitumgebung, die ActionScript 2.0 verarbeitet, gibt diese Methode die Anzahl der Millisekunden an, die seit dem Beginn der Initialisierung durch die Flash-Laufzeitumgebung verstrichen sind. Flash-Laufzeitumgebungen verwenden zwei virtuelle Rechner für die Verarbeitung von ActionScript. AVM1 ist der virtuelle ActionScript-Recher, der für die Ausführung von ActionScript 1.0 und 2.0 verwendet wird. AVM2 ist der virtuelle ActionScript-Rechner, der für die Ausführung von ActionScript 3.0 verwendet wird. Das Verhalten der getTimer()-Methode für AVM1 unterscheidet sich vom Verhalten für AVM2.

Informationen zu einem Kalenderdatum (Zeitstempel) finden Sie bei den Angaben zum Date-Objekt.

Im folgenden Beispiel wird mit der Klasse GetTimerExample ermittelt und angezeigt, wie viele Millisekunden seit der Initialisierung der Laufzeitumgebung vergangen sind. package { import flash.utils.getTimer; import flash.display.Sprite; public class GetTimerExample extends Sprite { public function GetTimerExample() { var duration:uint = getTimer(); trace("duration: " + duration); } } }
flash.display.AVM1MovieDate-Klasse
unescapeMultiByte Gibt in Abhängigkeit vom Wert „System.useCodePage“ eine entweder aus UTF-8 oder aus der System-Codepage dekodierte Kopie des Eingabestrings ohne Escape-Sequenzen zurück.Eine Kopie des Eingabestrings ohne Escape-Sequenzen. Wenn „System.useCodePage“ den Wert true aufweist, wird zum Umwandeln der Escape-Sequenzen die Codepage des Systems verwendet. Wenn „System.useCodePage“ den Wert false aufweist, werden die Escape-Sequenzen aus der Kodierung UTF-8 rückkonvertiert. Wenn der Eingabestring beispielsweise "Crüe" und „System.useCodePage“ false ist, ist das Ergebnis auf allen Systemen "Crüe". Wenn „System.useCodePage“ true und der Eingabestring "CR%FCe" ist und das System eine lateinische Codepage verwendet, ist das Ergebnis ebenfalls "CRüe". Wenn die Escape-Sequenzen in "CR%C3%BCe" entfernt werden und „System.useCodePage“ auf true gesetzt ist, entstehen auf verschiedenen Systemen verschiedene unerwünschte Ergebnisse, wie z. B. "Crüe" auf einem lateinischen System. Ebenso führt das Entfernen der Escape-Sequenzen aus dem Eingabestring "Cr%FCe" zu "Cre", "Cr?e" oder je nach Codepage zu anderen Varianten, wenn „System.useCodePage“ den Wert false hat. StringvalueStringDer mit Escape-Sequenzen versehene String, der rückkonvertiert werden soll. Gibt in Abhängigkeit vom Wert „System.useCodePage“ eine entweder aus UTF-8 oder aus der System-Codepage dekodierte Kopie des Eingabestrings ohne Escape-Sequenzen zurück. Durch die Verwendung von „System.useCodePage“ können mit der Laufzeitumgebung auch ältere, in lokalen Codepages kodierte Inhalte wiedergegeben werden, jedoch nur auf Systemen, die diese Codepage verwenden. So werden zum Beispiel als Shift-JIS kodierte japanische Daten nur unter einem Betriebssystem ordnungsgemäß in Escape-Sequenzen konvertiert und rückkonvertiert, das als Standard-Codepage Japanisch verwendet. clearInterval Bricht den angegebenen setInterval()-Aufruf ab.iduintDer Bezeichner des setInterval()-Aufrufs, den Sie wie im folgenden Beispiel einer Variablen zuweisen: Bricht den angegebenen setInterval()-Aufruf ab. Im folgenden Beispiel wird mithilfe der setInterval()-Methode ein Zeitintervall erstellt, und die myRepeatingFunction()-Methode wird in regelmäßigen Intervallen von einer Sekunde aufgerufen.

Bei jedem Aufruf der myRepeatingFunction-Methode wird der Wert der counter-Eigenschaft erhöht. Wenn der Wert der stopCount-Eigenschaft erreicht ist, wird die clearInterval() -Methode in der intervalId-Eigenschaft aufgerufen. Hierbei handelt es sich um eine Referenz-ID für das zuvor erstellte Intervall.

package { import flash.display.Sprite; import flash.utils.*; public class ClearIntervalExample extends Sprite { private var intervalDuration:Number = 1000; // duration between intervals, in milliseconds private var intervalId:uint; private var counter:uint = 0; private var stopCount:uint = 3; public function ClearIntervalExample() { intervalId = setInterval(myRepeatingFunction, intervalDuration, "Hello", "World"); } public function myRepeatingFunction():void { trace(arguments[0] + " " + arguments[1]); counter++; if(counter == stopCount) { trace("Clearing Interval"); clearInterval(intervalId); } } } }
setInterval()
clearTimeout Bricht den angegebenen setTimeout()-Aufruf ab.iduintDer Bezeichner des setTimeout()-Aufrufs, den Sie wie im folgenden Beispiel einer Variablen zuweisen: Bricht den angegebenen Aufruf von setTimeout() ab. Im folgenden Beispiel wird mit der setTimeout()-Methode eine weitere Methode nach einer angegebenen Verzögerung aufgerufen.

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 clearTimeout() die setTimeout()-Anforderung gelöscht, und myDelayedFunction() wird nicht aufgerufen.

package { import flash.display.Sprite; import flash.utils.*; public class ClearTimeoutExample extends Sprite { private var delay:Number = 1000; // delay before calling myDelayedFunction private var intervalId:uint; private var count:uint = 1000000; public function ClearTimeoutExample() { intervalId = setTimeout(myDelayedFunction, delay); startCounting(); } public function startCounting():void { var i:uint = 0; do { if(i == count-1) { clearTimeout(intervalId); trace("Your computer can count to " + count + " in less than " + delay/1000 + " seconds."); } i++; } while(i < count) } public function myDelayedFunction():void { trace("Time expired."); } } }
setTimeout()
setInterval Führt eine Funktion in bestimmten Intervallen aus (Angabe in Millisekunden).Eindeutiger numerischer Bezeichner für den in Intervallen auszuführenden Prozess. Verwenden Sie diesen Bezeichner, um den Prozess abzubrechen, indem Sie die clearInterval()-Methode aufrufen. uintclosureFunctionDer Name der auszuführenden Funktion. Der Name darf keine Anführungszeichen oder Klammern sowie keine Parameter der aufzurufenden Funktion enthalten. Verwenden Sie beispielsweise functionName und nicht functionName() oder functionName(param). delayNumberDas Intervall in Millisekunden. argumentsEine optionale Liste von Parametern, die an die closure-Funktion übergeben werden. Führt eine Funktion in bestimmten Intervallen aus (Angabe in Millisekunden).

Anstelle der setInterval()-Methode empfiehlt es sich, ein Timerobjekt mit dem angegebenen Intervall zu erstellen und als Parameter repeatCount den Wert 0 (endlose Wiederholung) zu verwenden.

Wenn Sie die clearInterval()-Methode verwenden möchten, um den setInterval()-Aufruf zu stornieren, weisen Sie den setInterval()-Aufruf einer Variablen zu (die die clearInterval()-Funktion später referenzieren wird). Wenn Sie die clearInterval()-Funktion nicht aufrufen, um den setInterval()-Aufruf zu stornieren, wird das Objekt, das die setTimeout-Schließfunktion enthält, nicht im Garbagekollektor abgelegt.

Im folgenden Beispiel wird mithilfe der setInterval()-Methode ein Zeitintervall erstellt, und die myRepeatingFunction()-Methode wird in regelmäßigen Intervallen von einer Sekunde aufgerufen. package { import flash.display.Sprite; import flash.utils.*; public class SetIntervalExample extends Sprite { private var intervalDuration:Number = 1000; // duration between intervals, in milliseconds public function SetIntervalExample() { var intervalId:uint = setInterval(myRepeatingFunction, intervalDuration, "Hello", "World"); } public function myRepeatingFunction():void { trace(arguments[0] + " " + arguments[1]); } } }
clearInterval()
setTimeout Führt eine bestimmte Funktion nach der angegebenen Verzögerung aus (Angabe in Millisekunden).Eindeutiger numerischer Bezeichner für den in Intervallen auszuführenden Prozess. Verwenden Sie diesen Bezeichner, um den Prozess abzubrechen, indem Sie die clearTimeout()-Methode aufrufen. uintclosureFunctionDer Name der auszuführenden Funktion. Der Name darf keine Anführungszeichen oder Klammern sowie keine Parameter der aufzurufenden Funktion enthalten. Verwenden Sie beispielsweise functionName und nicht functionName() oder functionName(param). delayNumberDie Verzögerung in Millisekunden, bis die Funktion ausgeführt wird. argumentsEine optionale Liste von Parametern, die an die closure-Funktion übergeben werden. Führt eine bestimmte Funktion nach der angegebenen Verzögerung aus (Angabe in Millisekunden).

Anstatt diese Methode zu verwenden, empfiehlt es sich, ein Timerobjekt mit dem angegebenen Intervall zu erstellen und als repeatCount-Parameter den Wert 1 (einmalige Ausführung) zu verwenden.

Wenn Sie die clearTimeout()-Methode verwenden möchten, um den setTimeout()-Aufruf zu stornieren, weisen Sie dem setTimeout()-Aufruf eine Variable zu (die die clearTimeout()-Funktion später referenziert). Wenn Sie die clearTimeout()-Funktion nicht aufrufen, um den setTimeout()-Aufruf zu stornieren, wird das Objekt, das die setTimeout-Schließfunktion enthält, nicht im Garbagekollektor abgelegt.

Im folgenden Beispiel wird mit der setTimeout()-Methode eine weitere Methode nach einer angegebenen Verzögerung aufgerufen. package { import flash.display.Sprite; import flash.utils.*; public class SetTimeoutExample extends Sprite { private var delay:Number = 1000; // delay before calling myDelayedFunction public function SetTimeoutExample() { var intervalId:uint = setTimeout(myDelayedFunction, delay, "Hello", "World"); } public function myDelayedFunction():void { trace(arguments[0] + " " + arguments[1]); } } }
clearTimeout()
Timer Die Timer-Klasse ist die Schnittstelle zu Zeitgebern, mit denen sich Code in einer bestimmten zeitlichen Abfolge ausführen lässt.flash.events:EventDispatcher Die Timer-Klasse ist die Schnittstelle zu Zeitgebern, mit denen sich Code in einer bestimmten zeitlichen Abfolge ausführen lässt. Verwenden Sie zum Starten eines Timers die start()-Methode. Fügen Sie einen Ereignis-Listener für das timer-Ereignis hinzu, um Programmcode einzurichten, der bei Ablauf des Timers ausgeführt wird.

Sie können festlegen, ob Timerobjekte einmalig oder in bestimmten Abständen wiederholt ausgeführt werden sollen, um Programmcode nach einem Zeitplan auszuführen. Abhängig von der Bildrate der SWF-Datei oder der Umgebung der Laufzeitumgebung (freier Speicher und andere Faktoren) werden Ereignisse in der Laufzeitumgebung möglicherweise zu leicht versetzten Zeitpunkten ausgelöst. Wenn eine SWF-Datei beispielsweise zur Wiedergabe mit 10 Bildern pro Sekunde eingerichtet ist, bedeutet dies Abstände von 100 Millisekunden. Wenn der Timer so eingestellt ist, dass ein Ereignis bei 80 Millisekunden ausgelöst wird, wird das Ereignis kurz vor dem 100-Millisekunden-Intervall ausgelöst. Auch speicherintensive Skripten können zum zeitversetzten Auslösen von Ereignissen führen.

Im folgenden Beispiel wird anhand der Klasse TimerExample erläutert, wie die Listener-Methode timerHandler() für auszulösende TimerEvent-Ereignisse konfiguriert werden kann. Der Timer wird gestartet, wenn start() aufgerufen wird. Anschließend werden die Timerereignisse ausgelöst. package { import flash.utils.Timer; import flash.events.TimerEvent; import flash.display.Sprite; public class TimerExample extends Sprite { public function TimerExample() { var myTimer:Timer = new Timer(1000, 2); myTimer.addEventListener("timer", timerHandler); myTimer.start(); } public function timerHandler(event:TimerEvent):void { trace("timerHandler: " + event); } } }
timerComplete Wird ausgelöst, wenn die Anzahl der in „Timer.repeatCount“ festgelegten Anforderungen ausgeführt wurde.flash.events.TimerEvent.TIMER_COMPLETEflash.events.TimerEvent Wird ausgelöst, sobald die Anzahl der in Timer.repeatCount festgelegten Anforderungen ausgeführt wurde. timer Wird ausgelöst, wenn ein Timerobjekt das in der Timer.delay-Eigenschaft festgelegte Intervall erreicht hat.flash.events.TimerEvent.TIMERflash.events.TimerEvent Wird ausgelöst, sobald ein Timerobjekt das in der Timer.delay-Eigenschaft festgelegte Intervall erreicht hat. Timer Erstellt ein neues Timerobjekt mit den angegebenen Zuständen für „delay“ und „repeatCount“.Die angegebene Verzögerung ist ein negativer Wert oder keine endliche Zahl. ErrorErrordelayNumberDie Dauer zwischen zwei Timerereignissen in Millisekunden. Ein Wert von weniger als 20 Millisekunden für delay wird nicht empfohlen. Die Timer-Frequenz ist auf 60 Bilder pro Sekunde begrenzt. Eine Verzögerung unter 16,6 Millisekunden führt zu Laufzeitproblemen. repeatCountint0Gibt die Anzahl der Wiederholungen an. Wenn der Wert 0 ist, wird der Timer unbegrenzt ausgeführt. Wenn der Wert ungleich 0 ist, wird der Timer so oft ausgeführt wie angegeben und dann angehalten. Erstellt ein neues Timerobjekt mit den angegebenen Zuständen für delay und repeatCount.

Der Timer startet nicht automatisch. Sie müssen dazu die start()-Methode aufrufen.

Im folgenden Beispiel hat der Benutzer 90 Sekunden Zeit, eine Antwort in ein Eingabetextfeld einzugeben. Alle 30 Sekunden wird der Benutzer mit einer Statusmeldung darüber informiert, wie viel Zeit ihm noch verbleibt.

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 myTimer werden zwei Ereignis-Listener hinzugefügt. Der erste wird durch das TimerEvent.TIMER-Ereignis ausgelöst, das bei jedem Starten des Timers auftritt. Die timerHandler()-Methode ändert den Text für das statusTextField-Textfeld, um die verbleibenden Sekunden anzugeben.

Hinweis: Die Timer-Klasse verfolgt, wie viele Male ein Start erforderlich ist (repeats), indem die Zahl in der currentCount-Eigenschaft erhöht wird.)

Nachdem der Timer zum letzten Mal aufgerufen wurde, wird das TimerEvent.TIMER_COMPLETE-Ereignis ausgelöst und die completeHandler()-Methode wird aufgerufen. Die completeHandler()-Methode ändert den Typ des Textfeldes inputTextField von INPUT zu DYNAMIC, sodass der Benutzer keinen Text mehr eingeben oder ändern kann.

package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; import flash.text.TextFieldAutoSize; import flash.utils.Timer; import flash.events.TimerEvent; import flash.events.Event; public class Timer_constructorExample extends Sprite { private var statusTextField:TextField = new TextField(); private var inputTextField:TextField = new TextField(); private var delay:uint = 30000; private var repeat:uint = 3; private var myTimer:Timer = new Timer(delay, repeat); public function Timer_constructorExample() { inputTextField.x = 10; inputTextField.y = 10; inputTextField.border = true; inputTextField.background = true; inputTextField.height = 200; inputTextField.width = 200; inputTextField.multiline = true; inputTextField.wordWrap = true; inputTextField.type = TextFieldType.INPUT; statusTextField.x = 10; statusTextField.y = 220; statusTextField.background = true; statusTextField.autoSize = TextFieldAutoSize.LEFT; myTimer.start(); statusTextField.text = "You have " + ((delay * repeat) / 1000) + " seconds to enter your response."; myTimer.addEventListener(TimerEvent.TIMER, timerHandler); myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, completeHandler); addChild(inputTextField); addChild(statusTextField); } private function timerHandler(e:TimerEvent):void{ repeat--; statusTextField.text = ((delay * repeat) / 1000) + " seconds left."; } private function completeHandler(e:TimerEvent):void { statusTextField.text = "Times Up."; inputTextField.type = TextFieldType.DYNAMIC; } } }
reset Hält den Timer an, wenn dieser ausgeführt wird, und setzt die currentCount-Eigenschaft (wie der Resert-Knopf einer Stoppuhr) wieder auf 0. Hält den Timer an, wenn dieser ausgeführt wird, und setzt die currentCount-Eigenschaft (wie der Reset-Knopf einer Stoppuhr) wieder auf 0. Wird anschließend start() aufgerufen, wird die Timer-Instanz die mit dem repeatCount-Wert festgelegte Anzahl an Wiederholungen ausgeführt. Timer.stop()start Startet den Timer, sofern dieser noch nicht ausgeführt wird. Startet den Timer, sofern dieser noch nicht ausgeführt wird. stop Hält den Timer an. Hält den Timer an. Wird nach der start()-Methode die stop()-Methode aufgerufen, wird die Timer-Instanz die mit dem repeatCount-Wert festgelegte verbleibende Anzahl an Wiederholungen ausgeführt. Timer.reset()currentCount Die Gesamtzahl der Ereignisse, die der Timer ausgelöst hat, seit er bei 0 gestartet wurde.int Die Gesamtzahl der Ereignisse, die der Timer ausgelöst hat, seit er bei 0 gestartet wurde. Wenn der Timer zurückgesetzt wurde, werden nur die seitdem erfolgten Ereignisse gezählt. delay Die Dauer zwischen den Timerereignissen in Millisekunden.NumberEs wird eine Ausnahme ausgelöst, wenn die angegebene Verzögerung ein negativer Wert oder keine endliche Zahl ist. ErrorError Die Dauer zwischen den Timerereignissen in Millisekunden. Wenn Sie das Zeitintervall festlegen, während der Timer ausgeführt wird, wird der Timer mit derselben repeatCount-Iteration neu gestartet.

Hinweis: Ein Wert von weniger als 20 Millisekunden für delay wird nicht empfohlen. Die Timer-Frequenz ist auf 60 Bilder pro Sekunde begrenzt. Eine Verzögerung unter 16,6 Millisekunden führt zu Laufzeitproblemen.

repeatCount Die Gesamtzahl der für den Timer festgelegten Ausführungen.int Die Gesamtzahl der für den Timer festgelegten Ausführungen. Wenn als Anzahl der Wiederholungen 0 festgelegt ist, wird der Timer unbegrenzt ausgeführt, bis die stop()-Methode aufgerufen oder das Programm beendet wird. Wenn als Anzahl der Wiederholungen ein Wert ungleich 0 festgelegt ist, wird der Timer entsprechend oft ausgeführt. Wenn für repeatCount ein Wert angegeben ist, der gleich oder kleiner dem Wert von currentCount ist, wird der Timer angehalten und löst keine Ereignisse mehr aus. running Der aktuelle Zustand des Timers. Wird der Timer ausgeführt, ist dieser Wert „true“, sonst „false“.Boolean Der aktuelle Zustand des Timers. Wird der Timer ausgeführt, ist dieser Wert true, sonst false.
CompressionAlgorithm Die CompressionAlgorithm-Klasse definiert Stringkonstanten für die Namen der Komprimierungs- und Dekomprimierungsoptionen.Object Die CompressionAlgorithm-Klasse definiert Stringkonstanten für die Namen der Komprimierungs- und Dekomprimierungsoptionen. Diese Konstanten werden als Werte des algorithm-Parameters der ByteArray.compress()- und der ByteArray.uncompress()-Methode verwendet. flash.utils.ByteArray.compress()flash.utils.ByteArray.uncompress()DEFLATE Definiert den String, der für den deflate-Komprimierungsalgorithmus verwendet werden soll.deflateString Definiert den String, der für den deflate-Komprimierungsalgorithmus verwendet werden soll. ZLIB Definiert den String, der für den zlib-Komprimierungsalgorithmus verwendet werden soll.zlibString Definiert den String, der für den zlib-Komprimierungsalgorithmus verwendet werden soll. IDataInput Die IDataInput-Schnittstelle bietet eine Reihe von Methoden zum Lesen von Binärdaten. Die IDataInput-Schnittstelle bietet eine Reihe von Methoden zum Lesen von Binärdaten. Diese Schnittstelle ist das I/O-Gegenstück zur IDataOutput-Schnittstelle, mit der Binärdaten geschrieben werden.

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 EOFError-Ausnahme ausgelöst. Verwenden Sie die IDataInput.bytesAvailable-Eigenschaft um zu ermitteln, wie viele Daten zum Lesen bereitstehen.

Vorzeichenerweiterung ist nur beim Lesen von Daten relevant, jedoch nicht beim Schreiben. Sie benötigen deshalb keine unterschiedlichen Schreibmethoden für die Datentypen IDataInput.readUnsignedByte() und IDataInput.readUnsignedShort(). Dies bedeutet:

  • Verwenden Sie IDataOutput.writeByte() mit IDataInput.readUnsignedByte() und IDataInput.readByte().
  • Verwenden Sie IDataOutput.writeShort() mit IDataInput.readUnsignedShort() und IDataInput.readShort().
Im folgenden Beispiel werden mit der Klasse DataInputExample ein boolescher Ausdruck und die Gleitkommadarstellung (mit doppelter Genauigkeit) der Zahl Pi in ein Bytearray geschrieben. Dies wird in den folgenden Schritten erreicht:
  1. Deklarieren Sie eine neue ByteArray-Objektinstanz mit dem Namen byteArr.
  2. Schreiben Sie den Byte-Äquivalenzwert des booleschen Werts false und die Gleitkommadarstellung (mit doppelter Genauigkeit) der Zahl Pi.
  3. Rufen Sie den booleschen Wert und den Gleitkommawert ab.

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.

package { import flash.display.Sprite; import flash.utils.ByteArray; import flash.errors.EOFError; public class DataInputExample extends Sprite { public function DataInputExample() { var byteArr:ByteArray = new ByteArray(); byteArr.writeBoolean(false); byteArr.writeDouble(Math.PI); byteArr.position = 0; try { trace(byteArr.readBoolean()); // false } catch(e:EOFError) { trace(e); // EOFError: Error #2030: End of file was encountered. } try { trace(byteArr.readDouble()); // 3.141592653589793 } catch(e:EOFError) { trace(e); // EOFError: Error #2030: End of file was encountered. } try { trace(byteArr.readDouble()); } catch(e:EOFError) { trace(e); // EOFError: Error #2030: End of file was encountered. } } } }
IDataOutput-SchnittstelleendianFileStream-KlasseSocket-KlasseURLStream-KlasseByteArray-KlasseEOFError-KlassereadBoolean Liest einen booleschen Wert vom Dateistream, Bytestream oder Byte-Array.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorEin boolescher Wert. Der Wert ist true, wenn das Byte ungleich 0 ist, oder andernfalls false. Boolean Liest einen booleschen Wert vom Dateistream, Bytestream oder Bytearray. Es wird ein einzelnes Byte gelesen und true zurückgegeben, wenn das Byte ungleich 0 ist; andernfalls wird false zurückgegeben. readByte Liest ein vorzeichenbehaftetes Byte vom Dateistream, Bytestream oder Byte-Array.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorDer Rückgabewert liegt im Bereich von -128 bis 127. int Liest ein vorzeichenbehaftetes Byte vom Dateistream, Bytestream oder Byte-Array. readBytes Liest die Anzahl der vom length-Parameter angegebenen Datenbyte aus dem Dateistream, Bytestream oder Byte-Array.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorbytesflash.utils:ByteArrayDas ByteArray-Objekt, in das die Daten eingelesen werden. offsetuint0Der Offset innerhalb des mit dem Parameter bytes angegebenen Bereichs, ab dem das Lesen der Daten beginnt. lengthuint0Die Anzahl der zu lesenden Byte. Der Standardwert 0 bewirkt, dass alle verfügbaren Daten gelesen werden. Liest die Anzahl der vom length-Parameter angegebenen Datenbyte aus dem Dateistream, Bytestream oder Bytearray. Die Bytedaten werden ab der im Parameter bytes festgelegten Position in das im Parameter offset angegebenen ByteArray-Objekt gelesen. readDouble Liest eine IEEE 754-Gleitkommazahl mit doppelter Genauigkeit vom Dateistream, Bytestream oder Byte-Array.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorEine Gleitkommazahl nach IEEE 754 mit doppelter Genauigkeit. Number Liest eine IEEE 754-Gleitkommazahl mit doppelter Genauigkeit vom Dateistream, Bytestream oder Byte-Array. readFloat Liest eine IEEE 754-Gleitkommazahl mit einfacher Genauigkeit vom Dateistream, Bytestream oder Byte-Array.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorEine Gleitkommazahl nach IEEE 754 mit einfacher Genauigkeit. Number Liest eine IEEE 754-Gleitkommazahl mit einfacher Genauigkeit vom Dateistream, Bytestream oder Byte-Array. readInt Liest eine vorzeichenbehaftete 32-Bit-Ganzzahl vom Dateistream, Bytestream oder Byte-Array.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorDer Rückgabewert liegt im Bereich von -2147483648 bis 2147483647. int Liest eine vorzeichenbehaftete 32-Bit-Ganzzahl vom Dateistream, Bytestream oder Byte-Array. readMultiByte Liest einen Multibyte-String der angegebenen Länge unter Verwendung des angegebenen Zeichensatzes vom Dateistream, Bytestream oder Byte-Array.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorEin UTF-8-kodierter String. StringlengthuintDie Anzahl der aus dem Bytestream zu lesenden Byte. charSetStringDer String, der den zum Interpretieren der Byte zu verwendenden Zeichensatz angibt. Mögliche Zeichensatz-Strings sind unter anderem "shift-jis", "cn-gb" und "iso-8859-1". Eine vollständige Liste finden Sie unter Unterstützte Zeichensätze.

Hinweis: Wird der Wert des charSet-Parameters vom aktuellen System nicht erkannt, verwenden Adobe® Flash® Player oder Adobe® AIR® die Standard-Codepage des Systems als Zeichensatz. Beispielsweise kann ein Wert des Parameters charSet wie bei myTest.readMultiByte(22, "iso-8859-01"), wo 01 anstelle von 1 eingesetzt wird, auf Ihrem Entwicklungssystem funktionieren, aber auf keinem anderen System. Auf dem anderen System verwendet Flash Player oder die AIR-Laufzeitumgebung die Standard-Codepage des Systems.

Liest einen Multibyte-String der angegebenen Länge unter Verwendung des angegebenen Zeichensatzes vom Dateistream, Bytestream oder Byte-Array.
readObject Liest ein Objekt vom Dateistream, Bytestream oder Byte-Array, das im serialisierten AMF-Format kodiert ist.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorDas deserialisierte Objekt. Liest ein Objekt vom Dateistream, Bytestream oder Byte-Array, das im serialisierten AMF-Format kodiert ist. objectEncodingflash.net.registerClassAlias()readShort Liest eine vorzeichenbehaftete 16-Bit-Ganzzahl vom Dateistream, Bytestream oder Byte-Array.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorDer Rückgabewert liegt im Bereich von -32768 bis 32767. int Liest eine vorzeichenbehaftete 16-Bit-Ganzzahl vom Dateistream, Bytestream oder Byte-Array. readUTFBytes Liest eine Folge von UTF-8-Byte der Anzahl vom Byte-Datenstrom oder Byte-Array und gibt einen String zurück.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorEin durch die Bytedarstellung von Zeichen erstellter UTF-8-String der angegebenen Länge. StringlengthuintDie Anzahl der zu lesenden Byte. Liest eine Folge von UTF-8-Byte der Anzahl vom Byte-Datenstrom oder Byte-Array und gibt einen String zurück. readUTF Liest einen UTF-8-String vom Dateistream, Bytestream oder Byte-Array.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorEin durch die Bytedarstellung von Zeichen erstellter UTF-8-String. String Liest einen UTF-8-String vom Dateistream, Bytestream oder Bytearray. Es wird davon ausgegangen, dass dem String eine short-Ganzzahl ohne Vorzeichen mit der Länge in Byte vorangestellt ist.

Diese Methode entspricht der readUTF()-Methode der Java®-Schnittstelle „IDataInput“.

readUnsignedByte Liest ein vorzeichenloses Byte vom Dateistream, Bytestream oder Byte-Array.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorDer Rückgabewert liegt im Bereich von 0 bis 255. uint Liest ein vorzeichenloses Byte vom Dateistream, Bytestream oder Byte-Array. readUnsignedInt Liest eine vorzeichenlose 32-Bit-Ganzzahl vom Dateistream, Bytestream oder Byte-Array.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorDer Rückgabewert liegt im Bereich von 0 bis 4294967295. uint Liest eine vorzeichenlose 32-Bit-Ganzzahl vom Dateistream, Bytestream oder Byte-Array. readUnsignedShort Liest eine vorzeichenlose 16-Bit-Ganzzahl vom Dateistream, Bytestream oder Byte-Array.Es sind nicht genug zu lesende Daten vorhanden. EOFErrorflash.errors:EOFErrorDer Rückgabewert liegt im Bereich von 0 bis 65535. uint Liest eine vorzeichenlose 16-Bit-Ganzzahl vom Dateistream, Bytestream oder Byte-Array. bytesAvailable Gibt für die zum Lesen verfügbaren Daten im Eingabepuffer die Anzahl der Byte an.uint Gibt für die zum Lesen verfügbaren Daten im Eingabepuffer die Anzahl der Byte an. Aus dem Programmcode der Benutzer muss bytesAvailable aufgerufen werden, um sicherzustellen, dass genügend Daten verfügbar sind, bevor diese mit einer der Lesemethoden gelesen werden. endian Die Bytereihenfolge der Daten. Entweder die Konstante BIG_ENDIAN oder LITTLE_ENDIAN der Endian-Klasse.String Die Bytereihenfolge der Daten. Entweder die Konstante BIG_ENDIAN oder LITTLE_ENDIAN der Endian-Klasse. Endian-KlasseobjectEncoding Wird verwendet, um festzustellen, ob das Format AMF3 oder AMF0 verwendet wird, wenn binäre Daten mit der readObject()-Methode geschrieben oder gelesen werden.uint Wird verwendet, um festzustellen, ob das Format AMF3 oder AMF0 verwendet wird, wenn binäre Daten mit der readObject()-Methode geschrieben oder gelesen werden. Der Wert ist eine Konstante der ObjectEncoding-Klasse. readObject()IDataOutput.writeObject()ObjectEncoding-Klasse
Dictionary Mit der Dictionary-Klasse können Sie eine dynamische Sammlung von Eigenschaften erstellen, die strikte Gleichheit (===) für Schlüsselvergleiche verwendet.Object Mit der Dictionary-Klasse können Sie eine dynamische Sammlung von Eigenschaften erstellen, die strikte Gleichheit (===) für Schlüsselvergleiche verwendet. Wenn ein Objekt als Schlüssel verwendet wird, erfolgt die Suche nach dem Objekt mithilfe dessen Identität statt mit dem Wert, der durch den Aufruf von toString() für das Objekt zurückgegeben wird.

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
 
=== (strikte Gleichheit)Dictionary Erstellt ein neues Dictionary-Objekt.weakKeysBooleanfalseWeist das Dictionary-Objekt an, für Objektschlüssel „schwache“ Verweise zu verwenden. Wenn sich der einzige Verweis auf ein Objekt in dem angegebenen Dictionary-Objekt befindet, unterliegt der Schlüssel dem Garbagekollektor und wird beim Wiedergewinnen des freigegebenen Objektspeichers aus der Tabelle entfernt. Erstellt ein neues Dictionary-Objekt. Verwenden Sie den delete-Operator, um einen Schlüssel aus einem Dictionary-Objekt zu entfernen.