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