AS3 Color.interpolateColor 仅在应用程序版本中给出错误?

Posted

技术标签:

【中文标题】AS3 Color.interpolateColor 仅在应用程序版本中给出错误?【英文标题】:AS3 Color.interpolateColor giving error only in app version? 【发布时间】:2019-11-13 14:48:58 【问题描述】:

我有一个旧的 Flash 游戏,我在其中使用 interpolateColor 来广泛混合颜色,并且效果很好。

但它现在给出了一个错误。代码如下:

var firstColour = firstFusionGenes.girl.body.head.shapes.transform.colorTransform.color;
var secondColour = secondFusionGenes.girl.body.head.shapes.transform.colorTransform.color;
var newColour = this.transform.colorTransform; //so it's not empty
newColour.color = Color.interpolateColor(firstColour, secondColour, 0.5);

我跟踪了 firstColour 和 secondColour 的结果,它们按预期返回为颜色整数。但我得到了错误:

ReferenceError: Error #1065: Variable Color is not defined.

我已确保添加有关将 Color 导入 Flash 的所有行,尽管它过去在没有它的情况下也能正常工作。我在将其重新格式化为应用程序格式时所做的一些事情破坏了它。但我不明白这个错误;好像它现在不明白“颜色”是什么?错误是什么意思?

附录:

我创建了一个新文件来测试代码,但它给出了不同的错误:

1120: Access of undefined property Color.

但是当我将它包含在文件中时,这个错误就消失了:

import fl.motion.Color;

所以我认为这不是颜色不在程序中的问题。错误与此略有不同。

【问题讨论】:

Color 类不是一个内在的 Flash Player 类,它是一个与 Flash CS3 IDE一起打包的类>(官方文档是这样说的:help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl/…)。这意味着,其他 Flash IDE 版本可能没有这个类。要解决这个问题,您需要使用 CS3 来构建您的应用程序,或者创建自己的类,或者获取现有的类(您可以使用我的并添加 interpolate 方法:@ 987654322@). 谢谢!奇怪的是,我可以使用 Adob​​e Animate CC 将旧游戏版本导出到 swf 和 A​​IR for Desktop 应用程序,而且效果很好。这不意味着它仍然包括在内吗? 是的,我刚刚检查了三次:我拿了旧游戏,在新的 Animate 中重新导出。导出到 Flash Player 16、Flash Player 26、AIR for Desktop 32.0.0.116、AIR for ios;没问题。所以颜色一定还在那里,不是吗? 【参考方案1】:

我一直在修改有效的新文件,并试图找出它与我损坏的文件之间的设置差异。最后我在附加文件中找到了这个文件夹。当我从新文件中删除它时,它给出了同样的错误。所以我回去确保将此文件夹添加到损坏的文件中(它丢失了),这解决了问题!我假设这与允许 Animate 像 Organis 所说的那样引入颜色代码有关。

【讨论】:

以上是关于AS3 Color.interpolateColor 仅在应用程序版本中给出错误?的主要内容,如果未能解决你的问题,请参考以下文章

ActionScript 3 AS3:使用SWFObject2和AS3传递变量

AS3 - 抽象类

AS3 转 Java

AS3:如何在 AS3 类中有效地存储平铺地图编辑器的数据

ActionScript 3 AS3 getURL / navigateToURL(如何在AS3中创建可点击链接)

AS3查询点击功能