Il formato XML dell'API esterna

La comunicazione tra ActionScript e un'applicazione che contiene il controllo ActiveX di Shockwave Flash utilizza un formato XML specifico per codificare le chiamate alle funzioni e i valori. Il formato XML utilizzato dall'API esterna è suddiviso in due parti. Un formato viene utilizzato per rappresentare le chiamate alle funzioni. Un altro viene utilizzato per rappresentare i singoli valori; questo formato viene utilizzato per i parametri nelle funzioni, nonché per i valori restituiti da queste ultime. Il formato XML per le chiamate alle funzioni viene utilizzato per le chiamate verso e da ActionScript. Per una chiamata a una funzione proveniente da ActionScript, Flash Player passa l'XML al contenitore; per una chiamata proveniente dal contenitore, Flash Player prevede che l'applicazione contenitore passi una stringa XML in questo formato. Il frammento XML seguente mostra un esempio di chiamata a una funzione in formato XML:

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

Il nodo radice è il nodo invoke e ha due attributi: name indica il nome della funzione da chiamare, mentre returntype è sempre xml. Se la chiamata alla funzione comprende dei parametri, il nodo invoke ha un nodo arguments secondario, i cui nodi secondari sono costituiti dai valori di parametro formattati utilizzando il formato dei singoli valori illustrato di seguito.

I singoli valori, compresi i parametri della funzione e i valori da essa restituiti, utilizzano uno schema di formattazione che oltre ai valori effettivi include le informazioni sul tipo di dati. L'elenco seguente illustra le classi ActionScript e il formato XML utilizzato per codificare i valori per tale tipo di dati:

Classe/valore ActionScript

Classe/valore C#

Formato

Commenti

null

null

<null/>

 

Boolean true

bool true

<true/>

 

Boolean false

bool false

<false/>

 

String

string

<string>valore stringa</string>

 

Number, int, uint

single, double, int, uint

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

 

Array (gli elementi possono essere di tipi diversi)

Una raccolta che consente l'uso di elementi di tipi diversi, quale ArrayList oppure object[]

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

Il nodo property definisce i singoli elementi, mentre l'attributo id è l'indice numerico a base zero.

Object

Un dizionario con chiavi in formato stringa e valori oggetto, quale HashTable con chiavi in formato stringa

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

Il nodo property definisce le singole proprietà, mentre l'attributo id è il nome della proprietà (una stringa).

Altre classi incorporate o personalizzate

 

<null/>
oppure
<object></object>

ActionScript codifica gli altri oggetti come null o come un oggetto vuoto. In entrambi i casi, qualunque valore di proprietà va perso.

NOTA

 

A titolo di esempio, oltre alle classi ActionScript questa tabella mostra le classi C# equivalenti; tuttavia, l'API esterna può essere utilizzata per comunicare con qualunque linguaggio di programmazione o ambiente di runtime che supporti i controlli ActiveX e non si limita alle applicazioni C#.

Quando si creano delle applicazioni che utilizzano l'API esterna con un'applicazione contenitore ActiveX, probabilmente è più comodo scrivere un proxy che esegua l'operazione di conversione delle chiamate alle funzioni native nel formato XML serializzato. Per un esempio di una classe proxy scritta in C#, vedere Funzionamento della classe ExternalInterfaceProxy.


Flash CS3

 

Inviami un messaggio e-mail quando vengono aggiunti dei commenti a questa | Rapporto sui commenti

Pagina corrente: http://livedocs.adobe.com/flash/9.0_it/main/00000344.html