我需要对用AS1编写的现有Flash库(Fusion Charts Free)进行一些小修改,其中Flash 6作为其发布版本。我的更改使用了ExternalInterface,它需要Flash 8,所以我打开了Publish Settings并将版本更改为8.没有进行任何其他更改。
现在swf加载,但在其操作中遇到一些错误。如果我将发布版本更改回6,它将再次起作用。将其更改为7会打破它。我的问题:
Flash 6和7之间是否存在影响现有AS1代码的完整变更列表?
有没有办法从swf获得真正的调试输出,以确定发生了什么?令人沮丧的是,似乎没有任何类型的日志或控制台。我已经看到一些涉及使用ExternalInterface登录Firebug等的解决方案,但显然这对我没用,因为我的整个问题都集中在导出到Flash 8。
答案 0 :(得分:0)
externalInterface可能不是错误的原因..我测试自己以确保..(使用flash8 + AS1)。
1)也许你不小心选择了AS2 .. 2)错误是在编译时?还是在它运行期间? 3)从应用程序运行它时发生错误?还是独立的? (当它独立时,ExternalInterface可能会引发异常,因为没有“外部接口”。 4)错误是什么? 5)如果编译时没有错误,尝试在ExternalInterface部分放置“try”块。 6)如果错误是在运行时,那么你有一个调试器..只需按Ctrl + Shift + Enter
答案 1 :(得分:0)
完成这个项目后,我将分享我的经验。实际上,所有不兼容性分为三类,如this very useful article中所述:
Flash 7变量名称区分大小写,因此xPos和xpos现在是单独的变量,不能互换使用。如果你编写好的代码,你永远不会这样做,但是如果你试图像我一样尝试移植一些第三方代码,那么这就是需要注意的第一个问题。
未定义的变量值已更改。在Flash 6中,数字初始化为零,字符串为空。在Flash 7中,数字为NaN,字符串未定义。
字符串布尔等价物是不同的。在Flash 6中,空字符串或“1”以外的字符串计算为false。在Flash 7中,包含任何内容的字符串的计算结果为true;只有空字符串计算为false。