2010-09-11 20 views
1

Recherche de hitTestObject sur des instances placées dynamiquement sur la scène.hitTestObject sur des instances MovieClip placées dynamiquement

Recevoir une erreur:

TypeError: Error #2007: Parameter hitTestObject must be non-null. 
    at flash.display::DisplayObject/_hitTest() 
    at flash.display::DisplayObject/hitTestObject() 
    at eatCircle() 

ActionScript:

var circ; 
    var circle_ary:Array = new Array; 
    var circ_num:int;//number of circles on the stage 

    // function with hitTestObject not working --------------------------------- 
    function eatCircle(event:Event):void { 
     if (player_ary[me].hitTestObject(circle_ary[circ])) { // does not work 
       trace ("I ate the circle"); 
       removeChild(circle_ary[circ]); // does not work 
      } else { 
       trace ("I didn't eat the circle"); 
      } 
    }   

// creates instances of the Circle class and are randomly placed on the stage 
    var circ_num:int=5;//number of circles on the stage 

       for(var i=0; i<circ_num; i++) { 
        circle_ary[i] = new Circle(); //linkage in the library 
        addChild(circle_ary[i]); 

        circle_ary[i].x = Math.random() * (stage.stageWidth -circle_ary[i].width); 
        circle_ary[i].y = Math.random() * (stage.stageHeight -circle_ary[i].height); 
       } 

Répondre

1

comme je vous told avant, vous faites la même erreur, utiliser cet extrait à la place:

function eatCircle(event:Event):void { 
     if((player_ary[me]!=null)&&(circle_ary[circ]!=null)&&(player_ary[me].hitTestObject(circle_ary[circ]))) { 
       trace ("I ate the circle"); 
       removeChild(circle_ary[circ]); 
      } else { 
       trace ("I didn't eat the circle"); 
      } 
    } 
+0

laissez-nous savoir si cela fonctionne pour vous. – Eugene

+0

Reçu quelques erreurs: 1084: Erreur de syntaxe: identifiant attendu avant les notes. if (circle_ary [circ])! = null) – jc70

+0

1008: L'attribut n'est pas valide. if (player_ary [moi] .hitTestObject (circle_ary [circ])) { – jc70