Вызов возможно неопределенного метода через ссылку со статическим типом Class - PullRequest
1 голос
/ 02 августа 2011

Я написал одноэлементный класс для отслеживания некоторых переменных в моем приложении.

Я получаю синтаксическую ошибку, которую не могу понять, я уверен, что упускаю что-то простое, но это был один из тех дней. Кто-нибудь видит что-то не так с моим кодом?

Ошибка 1061: вызов возможно неопределенного метода setResult через ссылку со статическим типом Class.

Моя функция в моем синглтон-классе

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; }
        }
    }

Мой вызов функции на моей странице mxml

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

Заранее спасибо за любую помощь!

Ответы [ 2 ]

3 голосов
/ 02 августа 2011

Предполагая, что вы синглтон - это класс вычисления, вам не хватает вашего вызова 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{}

Edit: пример getInstance () дляКласс расчета:

private static var calculation:Calculation;
public static function getInstance():Calculation{
    if(calculation==null)
        calculation = new Calculation(SingletonLock);
    return calculation;
}
3 голосов
/ 02 августа 2011

попробуйте это:

public static function setResult(...) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...