0

我正在使用 Flash CS6,但我被继承的定义困住了。

假设我有一个名为 Button 的类,例如:

public class Button extends MovieClip
{
    public var _text : TextField;
}

在库中,我想创建一个 MovieClip 符号,将其导出到 actionscript 并将“类”设置为“ButtonSkinned”,将“基类”设置为“按钮”。在这个 MovieClip 符号中,我在舞台上放置了一个名为“_text”的文本字段。

这是定义自定义影片剪辑并进行蒙皮的传统方式,对吗?

问题来了:

如果我通过将“按钮”类添加到我的类路径中来使用它,那么一切都很好。

如果我将此类预编译为 SWC 文件并将其添加为外部库。当我导出 SWF 时,Flash CS6 抛出一个错误:

Symbol 'ButtonSkinned' A conflict exists with inherited definition MyPackage:Button._text in namespace public.

当然,我已经禁用了“自动声明阶段实例”。我不知道如何摆脱这个错误。有什么解决办法吗?

4

2 回答 2

0

如果您使用公共变量扩展非动态类,则不需要重新声明它们,是的,在这种情况下您甚至无法重新定义这样的变量。“受保护”和“公共”变量对超类和子类都可用。总之,不要public var _textButtonSkinned类中声明,在里面定义Button就够了。

于 2013-04-17T11:37:35.520 回答
0

我发现了同样的情况并在这里四处走走:http ://forums.adobe.com/thread/198821

走一走的关键是手动编写视觉符号关联类代码,而不是Flash自动生成。为了更容易使用 JSFL 脚本来自动编写类代码将非常有帮助。

于 2013-04-18T06:21:22.480 回答