关于 flash:flashdevelop 因没有显式编译错误而停止

flashdevelop halted with no explicit compile error

我们正在使用 flashdevelop 和 flash CS 3 开发基于 flash 的游戏。我们正在使用 flash CS3 发布 swc,该 swc 将作为库在 flashdevlop 中使用。

一切似乎都很好,直到有一天我对 fla 进行了更改(更改是取消嵌入字体或将影片剪辑从一个点移动到另一个点,没什么异常),然后发布为 swc。但是当我尝试使用最新的 swc 重新编译时,它会失败并出现以下错误:

Error: null

Build halted with errors (fcsh).

(fcsh)

Done(1)

错误为空且没有其他显式编译错误。

当我尝试使用旧的 fla 发布 swc 时,swc 有时与 flashdevelop 配合得很好,但有时会因为上述原因而失败。我对此一无所知。

谁能帮我解决这个问题?

Big想给你们一些提示,因为它让我非常恼火。


>我遇到了这个错误,我为我解决了它。我今天安装了 FlashDevelop 并通过将字符串的值从"Hello Planet"更改为"Hello World"或其他任何内容来得到这些错误。

>

>我找到了两种方法来解决这个问题?/p>>

>1 短期解决方案:
按 Project > Project Tes(ㄊО埽缓蟀?Project > Project Run。
它现在可以工作,但如果您进行 1 次更改,它会再次失败,您必须重复该过程

b>

a>2 长期解决方?ù映ぴ独纯纯梢越谑∈奔洌?这听起来很奇怪,但出于某种原因它有效。您将永远不会再无缘无故地收到该错

  • 从 Adob??e Labs 下载 Flex SDK 和 AIR SDK。
  • 解压缩它们并将所有 AIRSDK 文件复制并粘贴到 FLEXSDK 文件夹中。听起来很疯狂,但很重要。
  • 将您的 FlexAIR 合并文件夹放在硬盘驱动器上的某个位置,它将长期保留。
  • 将 FlashDevelop 指向新的 FlexAIR 合并文件夹。*
  • < 创建一个新项目,它可以工作

    • 如何将 FlashDevelop 指向新的 FlexAIR 合并文件夹?
      在此链接中,按照标题"将 FlashDevelop 指向 Flex SDK"下的说明进行操作
      http://www.untoldentertainment.com/blog/2011/12/07/flash-to-ios-a-step-by-step-tutorial-part-3-2/

    4345

    解决方案是使用 Java 7 (v1.7.0),更多信息请参见本论坛:http://www.flashdevelop.org/community/viewtopic.php?f=6


    我刚刚遇到这个问题,我找到了解决它的方法:

    如果您通过闪存导出 SWC,则问题可能出在 SWC 的编译方式上。

    转到发布设置,在 Flash 选项卡下,单击设置按钮,将出现一个新对话框。在运行时共享库??设置中,选择默认链接作为合并到代码中并编译 swc。

    Runtime Shared Library,当你添加一些特定的类、对象或组件时,会创建一个预加载器,当这种情况发生时,Flashdevelop 无法读取内容,那么他?换岜嘁肽愕南钅坎⒎祷?null错误。这是非常无能为力的?/p>>

    >你会注意到 RSL swc 比合并后的代码 swc 小……在我的例子中,大约大 70%?/p>>

    >-

    >

    >我注意到的一件事。如果您使用的是 TLF Textfield,它将自动创建预加载器并为文本字段数据使用外部 SWF。您可以将所有 TLF 文本字段更改为经典文本字段并使用 RSL swc?/p>>


    一天早上之后:

    • 重新安装所有 flex 环境,包括 flex-sdk、flashDevelop 等。
    • 还原类并一一比较

    我们发现了问题:) 在我们的例子中,这是一个奇怪的重载问题,来自这段代码:

    1
    2
    3
    4
    5
    private function onButtonClicked(e:Event):void
    {
        e:Event = new Event(Event.CHANGE);
        dispatchEvent(e);
    }

    如果您忘记输入"var"关键字,解析器显然无法检测到现有变量的重载(第三个示例):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // [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);

    n


    这是 Flex 编译器的错误 - 只需重新编译即可。

    已找到解决方法,它不会出现在 FlashDevelop 的未来版本中。