正确使用公共静态常量,错误 1119



我有一个链接到MovieClip的SpeachBubble类:

    import flash.display.MovieClip;
    import flash.geom.Matrix;
    public class SpeachBubble extends MovieClip {
        public static const SPEACH_POSITION_LEFT:String = 'speachPositionLeft';
        public static const SPEACH_POSITION_RIGHT:String = 'speachPositionRight';
        private var currentPosition = SPEACH_POSITION_LEFT;
    }

我还有一个名为"说话"的方法,它附加到我的字符上,该方法如下所示:

public function speak(text:String, position:String, displayTime:Number = 2500)

我希望能够像这样调用 speak 方法:

man.speak("I'm saying something!", SpeachBubble.SPEACH_POSITION_LEFT);

但我只是得到错误:

1119:通过静态类型为 Class 的引用访问可能未定义的属性SPEACH_POSITION_LEFT。

编辑:我已经在这里上传了完整的项目,我正在使用CS6,但已保存为CS5版本,以防您尚未升级。它包含 1 个 fla 文件和一些类,对于入口点,请参阅时间轴上的第一帧。

您的问题出在 CS6 关联设置中。 未使用完全限定的命名空间。

在您的库中,右键单击您的"Man"资产,然后转到符号属性。 在你的类路径中,使用classes.intro.Man - 你目前只是把它作为'Man',这相当于在你的项目目录的根目录中有一个 Man.as 文件。

将子类设置为空,因为它派生自类文件。 (尽管我相信如果它找到具有该命名空间的类文件,无论如何它都会忽略它)

对你的喷泉泡泡做同样的事情

最新更新