Actionscript ReferenceError 1069: Flash пытается вызвать функцию как свойство, и я не знаю, почему

Я написал базовую библиотеку форм для имитации HTML-форм в ActionScript, и все шло хорошо, пока Flash случайно не решил, что мой вызов функции больше не функция, а свойство (или что-то подобное). У меня есть интерфейс IFormElement, и HiddenElement реализует это. При проверке элемента FormManager вызывает clearValidationErrors() для этого элемента, который является функцией, определенной в интерфейсе. Когда это происходит на HiddenElement, я получаю следующую ошибку:

ReferenceError: Ошибка #1069: свойство dls.formmanager.form:IFormElement::clearValidationErrors не найдено в dls.formmanager.form.HiddenElement, и значение по умолчанию отсутствует.

Соответствующий код скопирован ниже:

FormManager

/**
 * helper function to check a single element's validity
 */
public function validateElement(element:IFormElement):Vector.<IValidationError> {
    Debug.out("Validating element " + element.name + " with value " + element.value + "...", Debug.DETAILS, _debugOptions);
    var errors:Vector.<IValidationError> = _formValidator.validateElement(element);

    element.clearValidationErrors();
    if (errors.length > 0) {
        watchElement(element);
        for each (var error:IValidationError in errors) {
            element.addValidationError(error);
        }
    }

    return errors;
}

IFormElement

package dls.formmanager.form {

    import dls.formmanager.validator.errors.IValidationError;

    import org.osflash.signals.Signal;

    public interface IFormElement {

        function get name():String;

        function get value():*;

        function get valueChanged():Signal;

        function get validationRules():Object;

        function addValidationError(error:IValidationError):void;

        function removeValidationError(error:IValidationError):void;

        function clearValidationErrors():void;

    }

}

HiddenElement

package dls.formmanager.form {

    import dls.debugger.Debug;
    import dls.formmanager.form.IFormElement;
    import dls.formmanager.validator.errors.IValidationError;

    import org.osflash.signals.Signal;

    /*
     * This class is used to represent non-interactable items in forms.
     */
    public class HiddenElement implements IFormElement {

        ...

        /**
         * empty function, hidden element will never respond to removing errors
         */
        public function clearValidationErrors():void {

        }

    }

}

0 ответов

Другие вопросы по тегам