2011-06-26 60 views
4

我們正在使用flashdevelop和flash CS 3開發基於flash的遊戲。我們使用flash CS3發佈swc,並將swc作爲flashdevlop用作庫。flashdevelop暫停,沒有明確的編譯錯誤

一切似乎都很好,直到有一天我對fla進行了更改(更改是取消嵌入字體或將movieclip從一個點移動到另一個,沒有什麼不尋常的),然後發佈爲swc。但是當我嘗試用最新的SWC重新編譯時,出現以下錯誤:

Error: null

Build halted with errors (fcsh).

(fcsh)

Done(1)

錯誤是零,沒有其他明確的編譯錯誤。

當我嘗試使用舊的fla發佈swc時,swc有時在flashdevelop中運行良好,但有時由於上述原因失敗。我不知道這件事。

任何人都可以幫助我嗎?

大思想給你們誰可以給我一些提示,因爲它讓我非常惱火。

回答

0

這是Flex編譯器的一個錯誤 - 只需重新編譯即可使用。

已找到解決方法,它將不會出現在未來的FlashDevelop版本中。

1

一個上午後:

  • 重新安裝所有的Flex環境包括Flex-SDK,是FlashDevelop等
  • 恢復類和一個

比較它們一個我們發現的問題:)在我們的情況下,這是一個奇怪的超載問題,它來自這段代碼:

private function onButtonClicked(e:Event):void 
{ 
    e:Event = new Event(Event.CHANGE); 
    dispatchEvent(e); 
} 

顯然解析器無法檢測到現有變量的超載,如果你忘了把「VAR」關鍵字(第三個例子):

// [Error: A conflict exists with definition e in namespace internal.] 
var e:Event = new Event(Event.CHANGE); 

// OK 
e = new Event(Event.CHANGE); 

// [Error: Classes must not be nested. public class Main extends Sprite] 
// or 
// [Error: null Build halted with errors (fcsh).] 
e:Event = new Event(Event.CHANGE); 
1

我剛纔這個問題交叉,我找到了一條出路修復它:

如果您通過閃存導出SWC,則問題可能與SWC編譯的方式有關。

轉到發佈設置,下閃光標籤,在設置單擊按鈕,會出現一個新的對話框。在運行時共享庫​​設置下,選擇默認鏈接作爲合併到代碼並編譯swc。

Runtime Shared Library,當你添加一些特定的類,對象或組件,將創建一個預加載,當發生這種情況時,Flashdevelop無法讀取其中的內容,那麼他​​將無法編譯你的項目,並返回一個空錯誤 。這是相當無知的。

你會注意到RSL swc小於合併代碼swc ...在我的情況下,大約大70%。

-

有一點我注意到了。如果您使用的是TLF Textfield,它將自動創建預加載器,並使用外部SWF作爲文本字段數據。您可以將所有TLF文本字段更改爲經典文本字段並使用RSL swc。

1

我得到這個錯誤,我解決了我。我今天安裝了FlashDevelop,並通過將字符串的值從「Hello Planet」更改爲「Hello World」或其他任何內容來獲得這些錯誤。

我發現了兩個方法來解決這個問題:


1短期的解決方案: 按項目>項目測試(這失敗),然後按項目>項目運行。 它現在可以工作,但是如果您進行了1次更改,它將再次失敗,您必須重複該過程。


2長期的解決方案(從而節省了時間,從長遠來看): 這一個聽起來很奇怪,但它的作品的某些原因。你永遠不會再次無緣無故得到那個錯誤。

  1. 從Adobe Labs下載Flex SDK和AIR SDK。
  2. 將它們解壓縮並將所有AIRSDK文件複製並粘貼到FLEXSDK文件夾中。聽起來很瘋狂但很重要。
  3. 將您的FlexAIR合併文件夾放置在您的硬盤驅動器的某處,並保存很長一段時間。
  4. 將FlashDevelop指向新的FlexAIR合併文件夾。*
  5. 創建新項目,它的工作原理!

0

的解決方案是使用Java 7(V1.7.0),更詳細的信息在這個論壇:http://www.flashdevelop.org/community/viewtopic.php?f=6&t=12900

+0

一個潛在的解決方案的鏈接永遠是受歡迎的,但請[在鏈接周圍添加上下文](// meta.stackoverflow.com/a/8259/169503),以便您的同行用戶可以瞭解它是什麼以及它爲什麼是那裏。如果目標網站無法訪問或永久離線,請始終引用重要鏈接中最相關的部分。考慮到_僅僅是一個鏈接到外部site_是一個可能的原因,因爲[爲什麼和如何刪除一些答案?](// stackoverflow.com/help/deleted-answers)。 – kayess