2014-09-01 127 views
0

我使用的是Flash CS 5.5.if在錯誤發生時,我在按鈕單擊事件中調用了一個函數。任何人都說錯了什麼?TypeError:錯誤#1009:無法訪問空對象引用的屬性或方法

這是我的代碼:

var visited:Object = { 
    Movieclip: 0, 
    one: 0, 
    two: 0, 
    three: 0, 
    four: 0, 
    five: 0, 
    six: 0, 
    seven7: 0 
}; 

function saveCourseStatus():void 
{ 

    var suspend_str:String = visited.Movieclip + "," + visited.one + "," + visited.two + "," + visited.three + "," + visited.four + "," + visited.five + "," + visited.six + "," + visited.seven; 
    scorm.set("cmi.suspend_data", suspend_str); 
    scorm.save(); 
} 

Newbutton.addEventListener(MouseEvent.CLICK, Nxt); 

function Nxt(event:MouseEvent):void 
{ 
    saveCourseStatus(); 
    MovieClip(this.root).gotoAndPlay(0, "one"); 
} 

我有這個error.saveCourseStatus();

peError: Error #1009: Cannot access a property or method of a null object reference. 
    at New_fla::MainTimeline/saveCourseStatus()[New_fla.MainTimeline::frame98:116] 
    at New_fla::MainTimeline/Nxt()[New_fla.MainTimeline::frame98:125] 
+0

什麼是'visited.MovieClip'?另外,檢查'visited'或'scorm'是否爲空。 – Vesper 2014-09-01 13:54:31

+0

什麼是scrom?你在某個地方創造了它嗎? – mGolzadh 2014-09-02 06:38:50

回答

0

該錯誤表示「輕蔑」或「已訪問」爲空。如果您嘗試獲取null對象的屬性或方法,則Flash會引發錯誤。根據您如何定義以及您的整個代碼是如何設置的,scorm和visited都很可能無法使用saveCourseStatus函數。由於您不會將它們作爲參數傳遞給saveCourseStatus,因此它們需要是saveCourseStus訪問它們的公共變量。

此外,您的對象屬性被命名爲「seven7」(注意這個「7」),而你嘗試將它在saveCourseStatus稱作爲「visited.seven」

+0

已投票。如果出現以下情況,Flash運行時不會拋出錯誤:'您嘗試獲取null對象的屬性或方法。這是一個錯誤的表述,表明你根本不明白髮生了什麼。非實例化的複雜對象類型爲'null'(yes null是類似MovieClip或String的類型),null類型的對象沒有屬性或方法,因此試圖訪問類型爲null的對象上的任何內容都會導致錯誤。 – BotMaster 2014-09-01 19:47:30

+0

當我運行此:「var obj:Object; trace(obj.prop);」,我得到此錯誤:「TypeError:錯誤#1009:無法訪問空對象引用的屬性或方法。當我嘗試獲取null對象的屬性時,這是Flash引發錯誤。這是一個語義問題嗎?我只是想幫助OP。你有沒有OP的答案? – Dave 2014-09-01 20:13:14

+0

我不回答空問題,因爲它們僅適用於初學者。你的回答仍然表明你不明白什麼是null類型的對象。這不是語義問題,null是一種類型而不是一種狀態。 – BotMaster 2014-09-01 23:10:42

相關問題