2011-08-01 15 views
1

私は、アプリケーション全体のいくつかの変数を追跡するシングルトンクラスを作成しました。静的型の参照で、おそらく定義されていないメソッドを呼び出します。クラス

私は理解できない構文エラーが発生していますが、私は単純なものが欠けていると確信していますが、それは当時のものでした。誰かが私のコードに何か間違っているのを見ますか?

エラーは1061です:静的型Classの参照を介して、おそらく未定義のメソッドsetResultを呼び出します。私のMXMLページ内の私のシングルトンクラスで

My機能

public function setResult(resultNumber:int, value:int): void 
    { 
     switch(resultNumber) 
     { 
      case 2: { this.result2 = value; break; } 
      case 3: { this.result3 = value; break; } 
      case 4: { this.result4 = value; break; } 
      case 5: { this.result5 = value; break; } 
      case 6: { this.result6 = value; break; } 
      case 7: { this.result7 = value; break; } 
      case 8: { this.result8 = value; break; } 
      case 9: { this.result9 = value; break; } 
      case 10: { this.result10 = value; break; } 
      case 11: { this.result11 = value; break; } 
      case 12: { this.result12 = value; break; } 
      case 13: { this.result13 = value; break; } 
      case 14: { this.result14 = value; break; } 
     } 
    } 

私の関数呼び出し任意の助けを事前に

  if(chkBox1.selected == true) 
      { 
       utils.Calculation.setResult(2,1); 
      } 

ありがとう!

答えて

3

はシングルトンが計算クラスであるあなたと仮定すると、あなたはあなたのgetInstanceの呼び出しが欠落していますか?

utils.Calculation.getInstance().setResult(2, 1); 

良いのActionScriptシングルトンパターン:

package com.stackOverflow 
{ 
    public class MySingleton 
    { 
     public function MySingleton(lock:Class) 
     { 
      if(lock != SingletonLock) 
       throw new Error("This class cannot be instantiated, it is a singleton!"); 
     } 
     private static var mySingleton:MySingleton; 

     public static function getInstance():MySingleton{ 
      if(mySingleton==null) 
       mySingleton = new MySingleton(SingletonLock); 
      return mySingleton; 
     } 
     public function setResult(resultNumber:int, value:int): void{ 
     //... 
     } 
    } 
} 
class SingletonLock{} 

編集:計算クラス用のgetInstance()例:

private static var calculation:Calculation; 
public static function getInstance():Calculation{ 
    if(calculation==null) 
     calculation = new Calculation(SingletonLock); 
    return calculation; 
} 
+0

メソッドを使用すると、エラー1046が発生します。型が見つからなかったか、コンパイル時定数ではありませんでした。getInstance()関数宣言行の計算 – korymiller

+0

計算でMySingletonの名前を変更します。これはほんの一例です。 –

+0

パブリック静的関数のgetInstance():計算{ \t \t \t場合(計算== NULL) \t \t \t \t計算=新しい計算()。 \t \t \t return計算; \t \t – korymiller

3

これを試してみてください。

public static function setResult(...) 
+0

私は、静的な使用している場合は、私はこれを使用することはできません。私の変数 – korymiller

+0

OPにアクセスするには、関数を静的にする場合は関数内の 'this'への参照も削除する必要があります。 –