2010-10-21 10 views
1

Dans le Lynda.com titre "ActionScript 3.0 in Flash CS3 Professional - Beyond the Basics" Todd Perkins montre comment une façon de transtypageEn quoi ces deux méthodes de typage sont-elles différentes dans ActionScript 3?

var xml: XML; 
xml = event.target.data as XML 

ne fonctionne pas, alors que

var xml: XML; 
xml = XML(event.target.data) 

fait. Les deux formes ne devraient-elles pas agir de la même manière? Comment sont-ils différents?
TIA
Steven

modifier
déclarations ajouté au code

Répondre

4

Fondamentalement, ils sont différents par XML(event.target.data) ce qui signifie «transtyper ce type», où event.target.data as XML signifie «prétendre que c'est XML».

Le premier est le même casting que vous attendez dans d'autres langages comme Java. C'est un moyen utile pour que le code n'ait pas besoin d'un bloc try-catch autour d'une distribution. L'utilisation as retournera alors, soit le premier opérande si elle est le type correct ou nul autre.

Vous devriez jeter un oeil à la as operator si vous avez besoin de plus d'informations.

1

L'opérateur as retourne null si l'opérande gauche (event.target.data) n'est pas une instance du droit opérande (type attendu = XML) , alors que le typage résulte en une exception dans ce cas.

+0

'xml' est déclaré comme un type XML. En effet, la forme 'as' renvoie' null', mais la seconde forme renvoie les données XML de l'URLLoader. – stevenvh

+0

Si cette réponse dit « opérande gauche », il fait référence à 'event.target.data', pas' xml'. – fenomas

+1

Je suis curieux de savoir à quoi sert le downvote? – splash

Questions connexes