我们正在使用flashdevelop和flash CS 3开发基于flash的游戏。我们使用flash CS3发布swc,swc将在flashdevlop中用作库。
一切似乎都很好,直到有一天我对fla进行了更改(更改是取消嵌入字体或将动画片段从一个点移动到另一个点,没有什么异常)然后发布为swc。但是当我尝试使用最新的swc重新编译时,它会因以下错误而失败:
错误:null
构建因错误而停止(fcsh)。
(fcsh)
完成(1)
错误为空,没有其他显式编译错误。
当我尝试使用旧版本发布swc时,swc有时可以很好地处理flashdevelop,但有时它会因上述原因而失败。我对此一无所知。
任何人都可以帮我解决这个问题吗?
Big想你们这些可以给我一些提示的人,因为它让我非常恼火。
答案 0 :(得分:1)
一天早上之后:
我们发现问题:)在我们的案例中,这是一个奇怪的重载问题来自这段代码:
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 :(得分:1)
我刚刚遇到这个问题,我找到了解决问题的方法:
如果您通过Flash导出SWC
,则问题可能在于SWC的编译方式。
转到发布设置,在 Flash标签下,单击设置按钮,将出现一个新对话框。在运行时共享库设置上,选择默认链接作为合并到代码并编译swc。
当您添加一些特定的类,对象或组件时,Runtime Shared Library
将创建一个预加载器,当发生这种情况时,Flashdevelop
无法读取内容,那么他将无法编译您的项目并返回 null 错误。这是非常无能的。
您会注意到RSL swc
小于合并代码swc ...在我的情况下,大约70%。
-
我注意到了一件事。如果您使用TLF Textfield
,它会自动创建预加载器并使用外部SWF作为文本字段数据。您可以将所有TLF文本字段更改为经典文本字段并使用RSL swc。
答案 2 :(得分:1)
我收到了这个错误,我为我解决了这个问题。我今天安装了FlashDevelop并通过将字符串的值从“Hello Planet”更改为“Hello World”或其他任何内容来获取这些错误。
我找到了两种方法来解决这个问题:
1短期解决方案: 按项目>项目测试(失败)然后按项目>项目运行。 它现在有效,但如果你进行1次更改,它会再次失败,你必须重复这个过程。
2长期解决方案(从长远来看节省时间): 这个听起来很奇怪,但它有一些原因。你永远不会无缘无故地得到那个错误。
创建新项目并且有效!
答案 3 :(得分:0)
这是Flex编译器的一个错误 - 只需重新构建即可。
已找到解决方法,它将不会出现在FlashDevelop的未来版本中。
答案 4 :(得分:0)
解决方案是使用Java 7(v1.7.0),在此论坛上提供更多信息:http://www.flashdevelop.org/community/viewtopic.php?f=6&t=12900