2012-01-09 40 views
0

這個功能有什麼問題嗎?請幫我瞭解這個功能有什麼特別錯誤

我試着去學習動作

public function navigateToFrame(frameNo:Number) 
{ 
     var firstNumber:Number = 25; 
     var secondNumber:Number = 1; 
     trace("crap..."+firstNumber); 
     frameNo = firstNumber * (frameNo - secondNumber); 
     trace("crap..."+frameNo); 
     frameNo = frameNo + secondNumber; 
     trace("crap..."+frameNo); 
     _root.gotoAndStop(frameNo); 
    } 

我得到的是這樣 「語法錯誤編譯錯誤。

+1

發佈錯誤.... – Benny 2012-01-09 06:52:44

+0

這行.... – 2012-01-09 06:52:49

回答

4

既然你用actionsript-3來標記這個,我會說第一,你試圖使用_root,除非你碰巧有一個同名的成員變量,那麼這是行不通的。

在AS3中root的關鍵詞是root,不_root

+0

嗨,大家好感謝您的回答,這個工作 VAR frameNo? :Number function navigateToFrame(frameNo) var firstNumber:Number; var secondNumber:Number; var frameNoVar:Number; \t \t firstNumber = 25; \t secondNumber = 1; \t frameNoVar = 10; trace(「crap ...」+ firstNumber); frameNoVar = firstNumber *(frameNo - secondNumber); (「廢話...」+ frameNoVar); frameNoVar = frameNo + secondNumber; (「廢話...」+ frameNoVar); Object(root).gotoAndStop(frameNo); } – Mnyikka 2012-01-09 08:29:56

+0

@Mnyikka如果這回答了你的問題,你應該接受答案(這是左邊的大檢查圖標)。另外,請刪除上面評論中的所有不可讀代碼 - 它不會幫助任何人。如果除了'root'調用以外的任何內容都發生了變化,您可以編輯代碼片段並將其發佈到您的原始問題,否則請保持原樣;它非常直截了當。 – weltraumpirat 2012-01-09 10:06:52

-1

在腳本中,你沒有聲明這是在AS3需要frameNo變量,而不是你在聲明它的函數參數,然後嘗試在函數中設置它的值,這沒有多大意義,因爲無論調用該函數時該參數的值是什麼,它都不會被使用。另外,在AS3中,root的引用存儲在一個名爲root的對象屬性中。

更改您的代碼這一點,並給它一個嘗試:

public function navigateToFrame(frameNo:Number) 
{ 
    var firstNumber:Number = 25; 
    var secondNumber:Number = 1; 
    var frameNoVar:Number 
    trace("crap..." + firstNumber); 
    frameNoVar = firstNumber * (frameNo - secondNumber); 
    trace("crap..." + frameNoVar); 
    frameNoVar = frameNo + secondNumber; 
    trace("crap..." + frameNoVar); 
    Object(root).gotoAndStop(frameNo); 
    } 
+0

'frameNo'被使用的方式沒有錯。它是通過在函數簽名中作爲參數來隱式聲明的。 – sberry 2012-01-09 07:57:57

+0

這就是我所說的,但我不確定你的功能的目的。我以爲你想做一些追蹤,然後在指定的框架上停下來。不過,你的代碼不應該給你一個語法錯誤,只是一個未定義的屬性訪問錯誤。 – IneedHelp 2012-01-09 08:22:11