0

バリエーション 1:

        public static function set setWidth(w:int):void
    {
        width += (w); //not working
    }

.

        public function Caller()
    {
        ProgressLine.setWidth = -20;
    }

.

バリアント 2

            public function set setWidth(w:int):void
    {
        width += (w);
    }

.

        public function Caller()
    {
        progress = new ProgressLine;
        progress.setWidth = -20;
    }

.

最初の関数 (setter) はクラス ProgressLine にあります。2 番目の関数はクラス Caller にあります。

静的セッター関数 (バリアント 1) を使用して Class ProgressLine の幅を変更する方法は?

バリアント 2 を使用するたびに幅が通常に戻るため、非静的関数 (バリアント 2) を使用したくありません。ProgressLine クラスを呼び出すたびに通常の幅が 200 の場合、幅は 200 に戻ります (初期幅が更新されます)。

基本的に、ProgressLine の幅を変更する値を Caller から ProgressLine に渡したいと考えています。問題は、値を送信するたびに ProgressLine クラスを初期化したくないことです。

事前にご協力いただきありがとうございます

4

1 に答える 1

0

同じクラスの静的メソッドから非静的プロパティにアクセスすることはできません。ProgressLine のインスタンスが 1 つしかない場合は、クラスにSingleton パターンを実装する必要があるかもしれません。

于 2013-04-28T19:54:49.460 に答える