Je crée un terrain dynamique bloqué en flash (AS3), et tout va bien, le terrain est correctement placé. Mais j'ai besoin d'inclure les collisions et je veux que les blocs soient dans un MovieClip (sprite), donc je peux tester la collision avec le terrain lui-même. Ps: Je ne sais pas s'il serait bon de tester individuellement les collisions avec chaque bloc car j'utiliserai une fonction enterframe et la génération de blocs est dynamique. Le problème auquel je suis confronté est que j'ai un sprite appelé blockHolder, mais je ne peux pas ajouter les blocs à cela.AS3: impossible de rajouter des clips vidéo indexés dans un sprite
Voici le code (je l'ai simplifié si nous avons les blocs en cours de création en cascade si vous les AddChild dans la scène directement, comme addChild (clonedSquare)
L'erreur que je reçois. TypeError: erreur # 1009: ne peut pas accéder à la propriété ou la méthode d'une référence d'objet nul
var blockHolder:Sprite = new Sprite();
var clonedSquare = new square();
var lowestPoint:int = 10;
var highestPoint:int = 20;
var areaLenght:int = 10;
function createLvl():void
{
for (var i:Number = 0; i<(areaLenght); i++)
{
clonedSquare = new square();
clonedSquare.x = i * clonedSquare.width;
//sets the height of the first block
if (i == 0)
{
var firstY:Number = Math.ceil(Math.random()*((lowestPoint-highestPoint))+highestPoint)*clonedSquare.height;
clonedSquare.y = firstY;
trace("terrain begins " + firstY + " px down");
}
else
{
var previousId:Number = i - 1;
clonedSquare.y = getChildByName("newSquare"+previousId).y + clonedSquare.height;
}
//sets the entity (block) name based on the iteration
clonedSquare.name = "newSquare" + i;
//adds the cloned square
blockHolder.addChild(clonedSquare);
}
addChild(blockHolder);
}
createLvl();
demandez-vous pourquoi vous obtenez cette erreur? – Ronnie
Avant 'blockHolder.addChild (clonedSquare)', qu'est-ce que vous obtenez si vous tracez (blockHolder) '? –