2010-09-24 8 views
2

J'ai de nombreux objets de la même classe personnalisée, et plusieurs autres objets d'une autre classe personnalisée. Je voudrais créer une instruction switch pour déterminer à partir de laquelle des classes l'objet appartient. le code suivant ne compile pas, donc je ne suis pas sûr que ce soit possible. est la seule alternative à utiliser si déclarations?ActionScript - Utilisation de "is" dans l'instruction switch?

function mouseClickEventHandler(evt:MouseEvent):void 
    { 
    switch (evt.currentTarget) 
      { 
      case (is customClassA): trace("is instance of customClassA"); break 
      case (is customClassB): trace("is instance of customClassB"); 
      } 
    } 

Répondre

12

Cela devrait fonctionner:

function mouseClickEventHandler (evt:MouseEvent):void 
{ 
    switch (evt.currentTarget.constructor) 
    { 
     case CustomClassA: 
      trace("is instance of customClassA"); 
      break; 

     case CustomClassB: 
      trace("is instance of customClassB"); 
      break; 
    } 
} 

Voir Object.constructor.

+0

rad. totalement ne savait pas à ce sujet. Merci! – TheDarkIn1978

+0

+1. Cool. Je ne savais pas que c'était possible. –

3
function clickHandler (event:MouseEvent):void 
{ 
    var target:Object = event.currentTarget; 
    switch (true) 
    { 
     case (target is CustomClassA): 
      trace("is instance of customClassA"); 
      break; 

     case (target is CustomClassB): 
      trace("is instance of customClassB"); 
      break; 
    } 
}

Je ne sais pas si les accolades sont nécessaires