原諒我對這個(我是Flash新手)的無知,但我到處搜索了3天才找到這個,我嘗試了很多不同的東西,似乎沒有任何工作。這應該是簡單的...noob試圖讓這個壞傢伙在Flash遊戲中爆炸
場景:簡單的遊戲,玩家飛過太空拍攝壞人。 (我的起步步驟,這個偉大的教程:http://www.makeflashgames.com/tutorials/tut4.php)
我現在想讓我的敵人在發現碰撞時爆炸。我用爆炸動畫製作了一個新的動畫片段,將該動畫片段放到了我敵人動畫片段的一個框架中。這個框架我標記爲Explode。
在GameController.as上,我探討了在檢測到子彈碰撞時移除敵人的代碼,並刪除了removeChild代碼,並將其替換爲: Enemy.gotoAndPlay(「Explode」); 這給我錯誤1061:調用一個可能未定義的方法gotoAndPlay通過靜態類型的引用類。
我試過了_root.Enemy.gotoAndPlay(「Explode」); 它沒有工作(我讀_root不能在as3中工作)
我錯過了什麼?
我寫的代碼位於幾個不同的區域。在gamecontroller.as 我有
for (var i=bullets.length - 1; i >= 0; i--)
{
for (var j=enemies.length - 1; j >= 0; j--)
{
if (bullets[i].hitTestObject(enemies[j].collisionArea))
{
playerScore += enemies[j].getPointsWorth();
mcGameStage.removeChild(bullets[i]);
bullets.splice(i,1);
Enemy.gotoAndPlay("Explode");
break;
}
}
}
如果刪除了的gotoAndPlay,只是放在一個
mcGameStage.removeChild(敵人[J]); enemies.splice(j,1);
那麼遊戲運行正常(沒有爆炸動畫)
@Sunil d: 你的代碼的工作就像一個魅力。但是,它給我帶來了一個新問題。我需要刪除我的敵人時爆炸動畫完成(框架35) 我想這個代碼
enemy.addEventListener(Event.ENTER_FRAME,checkFrame);
function checkFrame(event:Event):void
{
if (enemy.currentFrame == 35)
{
mcGameStage.removeChild(enemies[j]);
enemies.splice(j,1);
enemy.removeEventListener(Event.ENTER_FRAME,checkFrame);
}
}
這是給我的錯誤#2007:參數孩子必須爲非空。 at flash.display :: DisplayObjectContainer/removeChild() at MethodInfo-243()
任何想法?
對。謝謝。我不瞭解那裏的差異,但現在你說出來了,這很有道理。 – 2013-03-08 05:11:36