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:静的型クラスの参照を介した未定義の可能性のあるプロパティSPEACH_POSITION_LEFTへのアクセス。

編集:ここにプロジェクト全体をアップロードしました。CS6を使用していますが、まだアップグレードしていない場合に備えて、CS5バージョンとして保存しています。1つのflaファイルといくつかのクラスが含まれています。エントリポイントについては、タイムラインの最初のフレームを参照してください。

4

1 に答える 1

1

問題は CS6 リンケージ設定にあります。完全修飾名前空間を使用していません。

ライブラリで「Man」アセットを右クリックし、シンボル プロパティに移動します。クラス パスでは、classes.intro.Manを使用し ます。現在、'Man' として使用しています。これは、プロジェクト ディレクトリのルートに Man.as ファイルを配置するのと同じです。

サブクラスはクラス ファイルから派生するため、空にします。(ただし、その名前空間を持つクラスファイルが見つかった場合、とにかく無視すると思います)

SpeechBubble についても同じことを行います

于 2012-09-20T16:46:13.287 に答える