2014-02-21 63 views
0

當我嘗試使推土機出現在舞臺上時,出現上述錯誤代碼。這讓我瘋狂,我不知道爲什麼會發生。我的圖書館裏有推土機剪輯,它似乎被正確定義。任何幫助將不勝感激。AS3錯誤#2007:參數子項必須爲非空

import flash.display.MovieClip; 
import flash.events.MouseEvent; 
import flash.ui.Mouse; 

//START SCREEN 
var startScreen: MovieClip; 
var bulldozer: MovieClip; 

startClick.addEventListener(MouseEvent.CLICK, startGame); 


function startGame(event: MouseEvent): void { 
    startScreen.parent.removeChild(startScreen); 
    startClick.parent.removeChild(startClick); 
    addChild(bulldozer); 
    var enemyGenerator: Number = Math.random(); 
    if (enemyGenerator >= 0.8) { 
     bulldozer.x = stage.x = 150; 
     bulldozer.y = stage.y = 150; 
    } else if (enemyGenerator >= 0.6) { 
     bulldozer.x = stage.x = 250; 
     bulldozer.y = stage.y = 250; 
    } else if (enemyGenerator >= 0.4) { 
     bulldozer.x = stage.x = 350; 
     bulldozer.y = stage.y = 350; 
    } else if (enemyGenerator >= 0.2) { 
     bulldozer.x = stage.x = 400; 
     bulldozer.y = stage.y = 400; 
    } else { 
     bulldozer.x = stage.x = 450; 
     bulldozer.y = stage.y = 450; 
    } 

    startClick.removeEventListener(MouseEvent.CLICK, startGame); 
} 
+0

另外:什麼是startClick?另外:當你的問題涉及錯誤時,請發佈完整的錯誤。 – FlavorScape

回答

1

您必須創建一個推土機的實例!

var bulldozer: MovieClip = new MovieClip(); 

上述代碼將創建一個可以從該類中的任何函數訪問的類級實例變量。如果你說

public var MovieClip = new MovieClip(); 

然後你就可以從這門課以外訪問它。沖洗並重復開始畫面。

nullundefined之間的差異。這是任何面嚮對象語言的基本原則。您的物體推土機(您要添加的孩子)在此處爲空,因爲它尚未用新構建。如果它未定義,那意味着var startScreen: MovieClip;丟失。

請查看構造函數和實例變量。

+0

好的,當我替換「var推土機:MovieClip」時「var bulldozer:MovieClip = new MovieClip;」,它仍然不起作用。 startClick是一個動態文本片段。我的新錯誤與替換讀取,「錯誤:錯誤#2071:舞臺類不執行此屬性或方法 \t at Error $/throwError() \t at flash.display :: Stage/set x() \t在PlanetEarthGame_fla :: MainTimeline/startGame() 「 – user3335696

+0

我以前的錯誤讀,」 類型錯誤:錯誤#2007:參數孩子必須爲非空 \t在flash.display使用::級DisplayObjectContainer /的addChild() \t在PlanetEarthGame_fla: :MainTimeline/startGame() 「 – user3335696

+1

你是新的錯誤來自類似'bulldozer.x = stage.x = 150;'你試圖設置'stage'的''x'屬性,那就是不允許。 – Marcela

0

您有以下問題:

您需要創建推土機的實例作爲FlavorScape如上所述。

這條線被定義推土機作爲一個變量,但該變量是空的,或「空」:

var bulldozer: MovieClip; 

不能空變量添加到舞臺,所以它導致錯誤(#2007 ),除非你創建這樣一個實例:

var bulldozer: MovieClip = new MovieClip(); 

第二個錯誤(#2071)是試圖設置x和舞臺的y屬性的結果。舞臺從來沒有x或y屬性,所以線路是這樣的:

bulldozer.x = stage.x = 150; 
bulldozer.y = stage.y = 150; 

應該

bulldozer.x = 150; 
bulldozer.y = 150; 
相關問題