0

我有一个链接到 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;

    }

我还有一个名为“Speak”的方法,它附加到我的角色上,该方法如下所示:

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 文件和一些类,对于入口点,请参见时间轴上的第一帧。

4

1 回答 1

1

您的问题在于您的 CS6 链接设置。您没有使用完全限定的命名空间。

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

使子类为空,因为它是从您的类文件派生的。(尽管我相信如果它找到具有该名称空间的类文件,它无论如何都会忽略它)

为你的演讲泡泡做同样的事情

于 2012-09-20T16:46:13.287 回答