В AS3
, я пытаюсь добавить ребенка к определенному ребенку MovieClip
.Добавление ребенка к ребенку
Для этого я сделал следующее:
for (var r:Number = 0; r < 2; r++) {
sand = new Sand();
sLayers.getChildAt(r).addChild(sand);
}
Когда sLayers
является MovieClip
родителем, r
является конкретным ребенком sLayers
и sand
является ребенком, которого я хочу добавить.
Он приходит со следующей ошибкой:
1061: Call to a possibly undefined method addChild
through a reference with static type flash.display:DisplayObject.
К сожалению, я упростил код, это заняло бы слишком много места.
Есть ли другой способ сделать это? Или я близко, но что-то не хватает?
Ошибка в том, что 'getChildAt()' возвращает объект отображения (который может или не может быть DisplayObjectContainer, что может иметь детей из его собственных. Вам нужно бросить как 'DisplayObjectContainer' или 'Sprite', чтобы не получить ошибку компилятора. Если какой-либо дочерний элемент' sLayers' не является потомком 'DisplayObjectContainer' (например,« Shape »или« Bitmap »), вы не сможете добавить к нему ребенка – BadFeelingAboutThis
например: 'if (sLayers.getChildAt (r) - Sprite) Sprite (sLayers.getChildAt (r)). AddChild (песок);' где cast ** Sprite (object) ** сообщает компилятору, что объект на самом деле является Sprite (или подкласс его типа MovieClip) – BadFeelingAboutThis