【问题标题】:Why would an swf break when changing its export version from Flash 6 to 7?为什么将导出版本从 Flash 6 更改为 7 时 swf 会中断?
【发布时间】:2010-11-19 14:00:46
【问题描述】:

我需要对以 Flash 6 作为发布版本的 AS1 编写的现有 Flash 库(Fusion Charts Free)进行小修改。我的更改使用了需要 Flash 8 的 ExternalInterface,因此我打开了 Publish Settings 并将版本更改为 8。没有进行其他更改。

现在 swf 已加载,但在运行过程中遇到了一些错误。如果我将发布版本改回 6,它会再次起作用。将其更改为 7 会破坏它。我的问题:

  1. 是否存在 Flash 6 和 7 之间影响现有 AS1 代码的完整更改列表?

  2. 有什么方法可以从 swf 获得真正的调试输出,以确定发生了什么?令人沮丧的是,似乎没有任何类型的日志或控制台。我见过一些涉及使用 ExternalInterface 登录到 Firebug 等的解决方案,但显然这对我没有用,因为我的整个问题都集中在导出到 Flash 8 上。

【问题讨论】:

    标签: actionscript flash externalinterface


    【解决方案1】:

    externalInterface 可能不是错误的原因..我测试自己以确保..(使用 flash8 + AS1)。

    1) 也许你不小心选择了 AS2.. 2)编译时出错?还是在它运行期间? 3)当您从应用程序运行它时发生错误?还是独立的? (当它是独立的时, ExternalInterface 可能会引发异常,因为没有“外部接口”。 4)什么是错误? 5) 如果编译时没有出现错误,请尝试在 ExternalInterface 部分放置“try”块。 6)如果错误是在运行时出现的,那么你有一个调试器..只需按 Ctrl+Shift+Enter

    【讨论】:

      【解决方案2】:

      完成了这个项目,我将分享我的经验。几乎所有的不兼容性都分为三类,在this very useful article 中进行了描述:

      1. Flash 7 变量名称区分大小写,因此 xPos 和 xpos 现在是单独的变量,不能互换使用。无论如何,如果您编写的代码很好,那么您永远不会这样做,但是如果您尝试移植一些第三方代码,就像我一样,这是要注意的第一大问题。

      2. 未定义的变量值已更改。在 Flash 6 中,数字被初始化为零并且字符串为空。在 Flash 7 中,数字是 NaN,而字符串是未定义的。

      3. 字符串布尔等效项不同。在 Flash 6 中,空字符串或“1”以外的字符串评估为假。在 Flash 7 中,包含任何内容的字符串的计算结果为 true;只有空字符串评估为假。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-15
        • 1970-01-01
        • 2020-07-08
        • 2017-07-09
        • 1970-01-01
        相关资源
        最近更新 更多