我在Flash(AS3)中創建了動態遮擋地形,並且一切都很順利,地形正確放置。但我需要包含碰撞,並且我希望這些塊位於動畫片段(精靈)內,因此我可以測試與地形本身的碰撞。AS3:無法將子索引影片剪輯添加到精靈中
Ps:我不知道是否可以單獨測試每個塊的衝突,因爲我將使用enterframe函數,並且塊生成是動態的。
我面臨的問題是我有一個名爲blockHolder的精靈,但我不能將塊添加到它。
下面的代碼(我簡化,它使我們在級聯所創建的塊,如果你的AddChild他們進入階段直接,如的addChild(clonedSquare)
我收到的錯誤: 類型錯誤:錯誤#1009:無法訪問空對象引用的屬性或方法
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();
你問爲什麼你得到這個錯誤? – Ronnie
在'blockHolder.addChild(clonedSquare)'之前,如果你跟蹤(blockHolder)'',你會得到什麼? –