XML-Format der externen API

Bei der Kommunikation zwischen ActionScript und einer Anwendung, in der ein Shockwave Flash-ActiveX-Steuerelement ausgeführt wird, wird zum Kodieren der Funktionsaufrufe und Rückgabewerte ein spezielles XML-Format verwendet. Es liegen zwei Formen des in der externen API verwendeten XML-Formats vor. Das eine Format wird zum Darstellen von Funktionsaufrufen verwendet. Das andere dient zum Abbilden einzelner Werte. Es wird für Funktionsparameter sowie für Rückgabewerte von Funktionen verwendet. Das XML-Format für Funktionsaufrufe wird für Aufrufe zwischen ActionScript und dem ActiveX-Steuerelement verwendet. Bei einem Funktionsaufruf aus ActionScript wird der XML-String in Flash Player an den Container übergeben. Bei einem Aufruf aus dem Container erwartet Flash Player einen XML-String in diesem Format. Im folgenden XML-Fragment ist ein Beispiel für einen XML-formatierten Funktionsaufruf dargestellt:

<invoke name="functionName" returntype="xml">
    <arguments>
        ... (individual argument values)
    </arguments>
</invoke>

Der Stammknoten ist der invoke-Knoten. Er verfügt über zwei Attribute: name gibt den Namen der aufzurufenden Funktion an. returntype hat immer den Wert xml. Wenn der Funktionsaufruf Parameter enthält, hat der invoke-Knoten einen untergeordneten arguments-Knoten, dessen untergeordnete Knoten wiederum die Parameterwerte sind. Je nach Wert sind diese individuell formatiert, wie im Folgenden dargestellt ist.

Bei individuellen Werten einschließlich Funktionsnamen und Rückgabewerten wird ein Formatierungsschema verwendet, das zusätzlich zu den eigentlichen Werten auch eine Datentypangabe enthält. In der folgenden Tabelle sind ActionScript-Klassen und das XML-Format aufgeführt, das zum Kodieren der Werte für den jeweiligen Datentyp verwendet wird:

ActionScript-Klasse/-Wert

C#-Klasse/-Wert

Format

Anmerkungen

null

null

<null/>

 

Boolean true

bool true

<true/>

 

Boolean false

bool false

<false/>

 

String

string

<string>Stringwert</string>

 

Number, int, uint

single, double, int, uint

<number>27.5</number>
<number>-12</number>

 

Array (Elemente unterschiedlicher Datentypen möglich)

Eine Sammlung, die Elemente unterschiedlicher Datentypen zulässt, z. B. ArrayList oder object[]

<array>
<property id="0">
<number>27.5</number>
</property>
<property id="1">
<string>Hello there!</string>
</property>
...
</array>

Der property-Knoten definiert einzelne Elemente. Das id-Attribut ist der numerische auf Null basierende Index.

Object

Ein Wörterbuch mit Stringschlüsseln und Objektwerten, z. B. HashTable mit Stringschlüsseln

<object>
<property id="name">
<string>John Doe</string>
</property>
<property id="age">
<string>33</string>
</property>
...
</object>

Der property-Knoten definiert einzelne Eigenschaften. Das id-Attribut ist der jeweilige Name der Eigenschaft (ein String).

Weitere integrierte oder benutzerdefinierte Klassen

 

<null/>
oder
<object></object>

ActionScript kodiert andere Objekte als null oder als ein leeres Objekt. In beiden Fällen gehen alle Eigenschaftswerte verloren.

HINWEIS

 

Als Beispiel sind in dieser Tabelle zusätzlich zu den ActionScript-Klassen entsprechende C#-Klassen dargestellt. Die externe API kann jedoch eingesetzt werden, um mit beliebigen Programmiersprachen oder Laufzeitumgebungen zu kommunizieren, die ActiveX-Steuerelemente unterstützen. Sie ist nicht auf C#-Anwendungen beschränkt.

Wenn Sie Anwendungen mithilfe der externen API und einem ActiveX-Container erstellen, ist es möglicherweise hilfreich, eine Proxy-Klasse zu programmieren, mit der die jeweiligen Funktionsaufrufe in das serialisierte XML-Format konvertiert werden. Ein Beispiel einer in C# programmierten Proxy-Klasse finden Sie unter Details der ExternalInterfaceProxy-Klasse.


Flash CS3

 

Eine E-Mail an mich senden, wenn dieser Seite Kommentare hinzugefügt werden | Kommentarbericht

Aktuelle Seite: http://livedocs.adobe.com/flash/9.0_de/main/00000344.html