2014-04-03 73 views
0
if (goblin.hitTestPoint(character.aMode.lance.x, character.aMode.lance.x, true)) 
{ 
trace("goblin been hit, please minus one life"); 
} 

這是代碼和錯誤是: 1119: Access of possibly undefined property aMode through a reference with static type player.啓用訪問嵌套的影片剪輯

這是我怎麼設置我的代碼

public static var character:player; 
character = new player; 
container.addChild(character); 

字符被動態地添加到容器中。在角色中有四個框架,第三個框架包含一個動畫片段,它在實例名稱中被稱爲「aMode」。在影片剪輯中,還有另一個名爲Lance的movieclip,其實例名稱爲「lance」。

在As2我相信這會工作。

我認爲問題在於,由於aMode不在第一幀,character.aMode(應該在第一幀),以便它的工作。

或者它可能沒有添加到顯示列表中,但閃光燈應該自動將它添加到顯示列表中,對嗎?

對不起,如果它太多了。

這是一張圖片,用於視覺輔助。 enter image description here 你可以看到這個A模式movievlip是在角色的動畫片段中不同的幀(這是動態添加)

回答

1

AS2中我敢肯定,這會工作。 在AS2中,你可能會得到一個未定義的,它會被忽略。

如果你的剪輯(玩家,在這種情況下)停在一個沒有特定資產/財產的框架上,你將會拋出該錯誤。這樣做就足夠了:

if (character.aMode && goblin.hitTestPoint(character.aMode.lance.x, character.aMode.lance.x, true))... 
+0

謝謝,但輸出給我一個錯誤!1119:通過靜態類型播放器的引用訪問可能未定義的屬性aMode。 – Moynul

+0

你能告訴我們更多你的代碼/類嗎? – Fygo

+0

https://gist.github.com/anonymous/9964929這裏是主類 – Moynul