2010-06-16 4 views
0

j'ai écrit une fonction comme,Erreur Flex: - 1151: Un conflit existe avec obj_inst1 définition dans l'espace de noms interne

private function addSelectedFunc():void 
{ 
    /** 
    * Adds newly selected privilegs to assignedPrivileges 
    */ 
    var obj_inst1:Array = obj_inst.selectedItems; 

    for each(var obj_inst1:Object in obj_inst1) 
     { 
     objInstance1Array.addItem(obj_inste); 
     } 
} 

<ov:HPList id="obj_inst" enabled="true" allowMultipleSelection="true" width="164" height="70" dataProvider="{obj_type.selectedItem}" />  

<ov:HPList id="obj_inst1" enabled="true" allowMultipleSelection="true" width="164" height="70" /> 

obtenir erreur: 1151: A conflict exists with definition obj_inst1 in namespace internal.

Répondre

3
var obj_inst1:Array = obj_inst.selectedItems; 

Cette déclare obj_inst1 comme Array

for each(var obj_inst1:Object in obj_inst1) 

Ceci tente de redéclarer obj_inst1 comme Object - naturellement le compilateur est confus. Utilisez un identifiant différent pour la variable d'itération.

ActionScript Le compilateur ne se plaindrait pas si vous essayez de redéclarer une variable locale avec le même type que celui qui a été déclaré en premier lieu (bien que je ne puisse pas penser à une raison valable pour le faire).

En outre, bien qu'il ne contribue pas à cette erreur, il existe une autre variable obj_inst1 de type HPList dans votre code; ce n'est pas une bonne pratique de tout nommer obj_inst et al. Envisagez d'utiliser des noms plus significatifs dans votre contexte d'application.

//items is again a generic one, you should be able to do better 
var items:Array = obj_inst.selectedItems; 
for each(var item:Object in items) 
{ 
    objInstance1Array.addItem(item); 
} 

Lequel des sons suivants est le mieux?

obj_inst1.function1(obj_inst2.var3); 
//or 
employees.addItem(dept.head); 
+0

Merci Amar, il est résolu. – Ravikanth

Questions connexes