在下面的代碼中,我有幾個都是TheBeetle()的MovieClip。它們位於另一個名爲gamelevel的MovieClip中,並且也被推入一個名爲bArray的數組中。以前我已經在gamelevel中對它們進行了索引,但是在調用事件偵聽器之後,我無法對它們編制索引,並收到錯誤「1118:將靜態類型Object的值隱式強制爲可能無關的類型flash.display:DisplayObject。」。當用戶點擊它們時,它們會死亡(並改變框架),並且屍體也會落在其他活體下,這就是我需要在死亡時將它們索引到1的原因。我明白錯誤在說什麼,但我該怎麼做我需要做的事情? 代碼工作得很好,但它不會在兩行我已經提到它,所以來看看,請:爲什麼我在這裏得到錯誤1118?
public function clicked (event:MouseEvent)
{
if (event.target is TheBeetle && event.target.currentFrame <= 2)
{
var mc:Object = event.target
// TheBeetle is actually a MovieClip but i cannot write: var mc:MovieClip = event.target, if i do i receive 1118
if (mc.currentFrame == 1)
{
mc.gotoAndStop (Math.floor(Math.random() * 3 + 4));
}
else
{
mc.gotoAndStop (3);
}
mc.filters = null;
// Here i need to index the TheBeetle as i did before like gamelevel.setChildIndex(mc,1) but i'd receive 1118!
bArray.splice (bArray.indexOf(mc),1);
if (bArray.length == 0)
{
removeEventListener (Event.ENTER_FRAME,frameHandler);
waveTimer.removeEventListener (TimerEvent.TIMER_COMPLETE, changeLocation);
}
}
}
嗯,是不是'TheBeetle(e.target)'等於'e.target作爲TheBeetle'?如果不是,返回null比獲取異常要好。 – Vesper
他們不相等。 'TheBeetle(e.target)'會拋出異常,像TheBeetle @ as6d54sad不能被轉換成SomeAnotherClass @ asd5fas5df。這就像嚴格的演員陣容,但這種類型的演員陣容工作得更快。 –