2014-10-08 30 views
0

我的問題是,在Flash遊戲中,我使用不同的幀作爲關卡。我很困惑如何功能爲此工作。我的第一幀工作正常,但我需要幫助使用其他幀的功能和保持特定於一個幀的功能。任何幫助表示讚賞,只是一個簡單的解釋在Flash中使用幀和函數AS3

回答

1

您不能將函數與特定的框架關聯。

當您在一個框架上執行代碼時,實際發生的情況是包含該框架的MovieClip將調用一個名爲addFrameScript()的函數,並將其傳遞給您在該框架上編寫的代碼的表示。

這意味着:

  • 直到你訪問一個定義了一個函數的框架,你不能叫說功能。
  • 一旦訪問了定義函數的框架,該函數就會附加到父影片剪輯,並且您可以在時間軸中的任何時刻調用該函數。
  • 如果您嘗試在不同的框架上定義一個具有相同名稱的新功能,將會出現1021: Duplicate function definition錯誤。

而不是使一個新的功能,每幀或水平的,你應該做一個單一的功能,它能夠處理不同信息代表的水平,例如,

function loadLevel(level:int):void 
{ 
    // Do stuff with the value of level. 
    // For example, this function might look at a data source that maps 
    // the level numbers to some level data representing tile placement. 
} 

這可以在第一幀上被定義,則在每個隨後的幀:

loadLevel(1); // Frame 2 
loadLevel(2); // Frame 3 
// ...etc 

所有這當然是不理想的並且可以做得更好避免時間軸,而是使用以OOP AS3提供的範例。

0

我發現在同一場景中使用多個級別會導致我無法結束頭痛。 我不是專家&我敢肯定它可能在很多情況下這樣做,我見過一些偉大的遊戲創建使用1幀1場景&所有代碼在外部.as。

但是,我發現自己更容易使用每個級別的1幀,並將每個級別放在不同的場景中。