Lo que sigue es una lista de errores de compilación que el compilador genera cuando detecta código no válido. Sólo se detecta un subconjunto de estos errores cuando se compila código en modo estricto. El modo estricto añade tres restricciones que no están presentes en el lenguaje estándar:


 CódigoMensajeDescripción
 1000Referencia ambigua a _. Puede que la referencia a más de un elemento. Por ejemplo, a continuación se utilizan los espacios de nombres rss y xml, cada uno de los cuales define un valor diferente para la función hello(). La sentencia trace(hello()) devuelve este error porque no puede determinar qué espacio de nombres debe utilizar.
private namespace rss;
    private namespace xml;

    public function ErrorExamples() {
      	use namespace rss;
       	use namespace xml;
    	trace(hello());
    }

    rss function hello():String {
          	return "hola";
        }

        xml function hello():String {
            return "foo";
        }

Corrija una referencia ambigua haciendo que la referencia sea específica. El ejemplo siguiente utiliza la forma espacio de nombres::función para especificar el espacio de nombres que debe utilizarse:

public function ErrorExamples() {

        trace(rss::hello());
        trace(xml::hello());
    }
 1003Los especificadores de acceso no se permiten con atributos de espacio de nombres. No puede utilizar un especificador de acceso (como, por ejemplo, private o public) y un atributo de espacio de nombres en una definición.
 1004El espacio de nombres no se ha encontrado o no es una constante de tiempo de compilación. El espacio de nombres es desconocido o es una expresión que podría tener valores diferentes en tiempo de ejecución. Compruebe que está escribiendo correctamente el espacio de nombres y que su definición se importa correctamente.
 1006Una expresión super sólo puede utilizarse dentro de los métodos de la instancia de clase. 
 1007Una sentencia super sólo puede utilizarse dentro de los constructores de la instancia de clase. No se puede utilizar la sentencia super dentro de miembros estáticos. Puede utilizar la sentencia super sólo dentro de instancias de clases.
 1008El atributo no es válido. 
 1010El atributo override sólo puede utilizarse en definiciones de propiedades de clases. No se puede utilizar la palabra clave override dentro de un bloque de función.
 1011El atributo virtual sólo puede utilizarse en definiciones de propiedades de clases. No se puede utilizar el atributo virtual cuando se declara una propiedad que no pertenece a una clase (por ejemplo, cuando se declara una variable dentro de un bloque de función).
 1012El atributo static sólo puede utilizarse en definiciones dentro de una clase. 
 1013El atributo private sólo puede utilizarse en definiciones de propiedades de clases. 
 1014El atributo intrinsic ya no es compatible. ActionScript 3.0 no admite la palabra clave intrinsic.
 1016La clase base es final. La superclase no puede ampliarse porque está marcada como final.
 1017No se ha encontrado la definición de la clase base _. 
 1018Definición de clase duplicada: _. 
 1020El método marcado con override debe sustituir a otro método. 
 1021Definición de función duplicada. No se puede declarar más de una función con el mismo nombre de identificador dentro del mismo ámbito.
 1022No se puede sustituir un descriptor de acceso final. 
 1023Sustitución incompatible. Una función marcada con override debe coincidir exactamente con el parámetro y con la declaración de tipo de devolución de la función a la que sustituye. Debe tener el mismo número de parámetros, cada uno de ellos del mismo tipo, y declarar el mismo tipo de devolución. Si alguno de los parámetros es opcional, éste también debe coincidir. Ambas funciones deben utilizar también el mismo especificador de acceso (public, private, etc.) o atributo de espacio de nombres.
 1024Sustitución de una función no marcada para sustitución. Si un método de una clase sustituye a un método de una clase base, deberá declararlo explícitamente empleando el atributo override, como se muestra en este ejemplo:
public override function foo():void{};
 1025No se puede redefinir un método final. El método no puede ampliarse porque está marcado como final en la clase base.
 1026Las funciones constructoras deben ser métodos de instancia. 
 1027Las funciones no pueden ser static y override a la vez. 
 1028Las funciones no pueden ser static y virtual a la vez. 
 1029Las funciones no pueden ser final y virtual a la vez. 
 1030Debe especificar el nombre de la matriz de argumentos variables. La definición del parámetro...(rest) especifica que todos los valores proporcionados tras...(rest) se recojan en cualquier matriz. Debe especificar un nombre para la matriz, como en la expresión function foo(x,...(rest)).
 1033No se admiten las variables virtual. 
 1034Las variables no pueden ser nativas. 
 1035Las variables no pueden ser final y virtual a la vez. 
 1037Los paquetes no pueden estar anidados. 
 1038No se ha encontrado el destino de la sentencia break. 
 1039No se ha encontrado el destino de la sentencia continue. 
 1040Definición de etiqueta duplicada. 
 1041No es posible llamar a los atributos. 
 1042La palabra clave this no puede utilizarse en métodos estáticos. Sólo puede utilizarse en métodos de instancia, en cierres de funciones y en el código global. No se puede utilizar la palabra clave this dentro de un miembro estático porque this carecería de contexto.
 1043Espacio de nombres no definido. 
 1044El método de interfaz _ del espacio de nombres _ no está implementado por la clase _. 
 1045No se ha encontrado la interfaz _. 
 1046El tipo no se ha encontrado o no es una constante de tiempo de compilación: _. La clase utilizada como declaración de tipo es desconocida o es una expresión que podría tener valores diferentes en tiempo de ejecución. Compruebe que está importando la clase correcta y que la ubicación de su paquete no ha cambiado. Asimismo, compruebe que el paquete que contiene el código (no la clase importada) está bien definida (por ejemplo, asegúrese de que utiliza sintaxis correcta de paquete de ActionScript 3.0 y no sintaxis de ActionScript 2.0).

El error también puede producirse si la clase a la que se hace referencia no está definida en un espacio de nombres que está utilizándose o está definida como pública:

public class Foo{}

If you are using Flex™ Builder™ 2 and the class is in a library, make sure to set the class path for the project.

 1047El inicializador del parámetro es desconocido o no es una constante de tiempo de compilación. El valor utilizado como predeterminado para el parámetro no está definido o podría tener valores diferentes en tiempo de ejecución. Compruebe que el inicializador está correctamente escrito y que el valor de inicializador no es una expresión que pueda tener diferentes valores posibles en tiempo de ejecución.
 1048El método no puede utilizarse como constructor. No es posible crear una instancia de un método de una clase. Sólo pueden utilizarse funciones globales en expresiones new.
class D { function xx() { return 22; } }
    var d:D = new D();
    var x = new d.xx(); // error, el método no se puede utilizar como constructor
    function yy() { this.a = 22; }
    var z = new yy(); // sin error, las funciones globales se pueden utilizar como constructores.
 1049Asignación ilegal de una variable especificada como constante. 
 1050No se puede asignar a un valor que no sea una referencia. 
 1051El valor de devolución debe ser undefined. Está intentando utilizar la sentencia return dentro de un método que tiene un tipo de devolución declarado void.
 1052El inicializador de la constante es desconocido o no es una constante de tiempo de compilación. El valor utilizado para inicializar la constante no está definido o podría tener valores diferentes en tiempo de ejecución. Compruebe que el inicializador está correctamente escrito y que el valor de inicializador no es una expresión que pueda tener diferentes valores posibles en tiempo de ejecución.
 1053Los tipos de descriptores de acceso deben coincidir. 
 1054El tipo de devolución de una definición setter debe ser unspecified o void. No puede especificar un valor de devolución para una función setter. Por ejemplo, lo que se muestra a continuación no es válido:
public function set gamma(g:Number):Number;

Lo que sigue es válido:

public function set gamma(g:Number):void;
 1058La propiedad es de sólo escritura. 
 1059La propiedad es de sólo lectura. Esta propiedad se define a través de una función getter, que le permite recuperar el valor de la propiedad. Sin embargo, no hay una función setter definida para esta propiedad, por lo que es de sólo lectura.

En el ejemplo siguiente, la línea 3 genera un error porque no hay una función setter definida para xx.

class D { function get xx() { return 22; } }
    var d:D = new D();
    d.xx = 44; // error, es una propiedad de sólo lectura
 1061Llamada a un método _ posiblemente indefinido a través de una referencia con tipo estático _. Está llamando a un método que no está definido.
 1063No es posible abrir el archivo: _. 
 1064Metadatos no válidos. Estos metadatos no se reconocen.
 1065Los atributos de metadatos no pueden tener más de un elemento. 
 1067Coerción implícita de un valor de tipo _ a un tipo no relacionado _. Está intentando convertir un objeto a un tipo al que no puede convertirse. Esto puede suceder si la clase a la que está convirtiendo no está en la cadena de herencia del objeto que se está convirtiendo. Este error sólo aparece cuando el compilador está ejecutándose en modo estricto.
 1068No es posible abrir el archivo incluido: _. 
 1069Error de sintaxis: definición o directiva inesperada. Compruebe la sintaxis de la línea.
 1071Error de sintaxis: se esperaba una palabra clave de definición (como, por ejemplo, una función) tras el atributo _, no _. Este error puede suceder si el autor olvida utilizar la palabra clave "var" o "function" en una declaración.
public int z;// debería de ser 'public var z:int;'
Este error podría suceder también si el compilador encuentra un carácter inesperado. Por ejemplo, el siguiente uso de la función trace() no es válido, porque falta el paréntesis (la sintaxis correcta es trace("hello")):
import flash.utils.trace;
    trace "hello"
 1072Error de sintaxis: se esperaba xml antes del espacio de nombres. La sintaxis correcta de la sentencia es default xml namespace = ns. Falta la palabra clave xml (observe el uso de minúsculas) o se ha utilizado una palabra clave incorrecta. Para más información, consulte la directiva default xml namespace.
 1073Error de sintaxis: se esperaba un catch o una cláusula finally. 
 1075Error de sintaxis: la palabra clave 'each' no se permite sin un operador 'in'. 
 1076Error de sintaxis: se esperaba un paréntesis izquierdo antes del identificador. 
 1077Se esperaba CaseLabel. El compilador esperaba una sentencia case en este punto del bloque switch. El siguiente bloque switch incluye incorrectamente una llamada a print antes de la primera sentencia case:
switch(x)
    {
    trace(2);
    case 0:  trace(0);
    break
    }
 1078La etiqueta debe ser un identificador sencillo. 
 1079Una expresión super debe tener un operando. 
 1080Se esperaba el operador de incremento o decremento. 
 1082Se esperaba una expresión sencilla entre paréntesis. 
 1083Error de sintaxis: _ inesperado. Falta información en la línea de código. En el siguiente ejemplo, debe incluirse alguna expresión (como, por ejemplo, otro número) después del signo más final:
var sum:int = 1 + 2 + ;
 1084Error de sintaxis: se esperaba _ antes de _. La expresión era inesperada en este punto. Si el error indica que se esperaba una llave final antes del final del programa, ello significa que falta una llave final (}) en un bloque de código.

Si el error indica que se esperaba un paréntesis inicial antes de _, es posible que haya omitido un paréntesis en una expresión condicional, como se muestra en el siguiente ejemplo, que se ha escrito incorrectamente a propósito:

var fact:int = 1 * 2 * 3;
    if fact > 2 {
    	var bigger:Boolean = true;
    }
 1086Error de sintaxis: se esperaba un punto y coma antes de _. 
 1087Error de sintaxis: se han encontrado caracteres adicionales tras el final del programa. 
 1093Error de sintaxis. 
 1094Error de sintaxis: Un literal de cadena debe acabarse antes del salto de línea. 
 1095Error de sintaxis: Un literal de cadena debe acabarse antes del salto de línea. 
 1097Error de sintaxis: la entrada terminó antes de llegar a las comillas de cierre para un literal de cadena. 
 1099Error de sintaxis. 
 1100Error de sintaxis: XML no tiene las correspondientes etiquetas inicial y final. 
 1102No se pueden eliminar descendientes super. 
 1103Definición de espacio de nombres duplicada. Ha definido el espacio de nombres más de una vez. Elimine o modifique la definición duplicada.
 1105El destino de la asignación debe ser un valor de referencia. Puede asignar un valor a una variable, pero no puede asignar un valor a otro valor.
 1106El operando de incremento debe ser un valor de referencia. El operando debe ser una variable, un elemento de una matriz o una propiedad de un objeto.
 1107El operando de incremento no es válido. El operando debe ser una variable, un elemento de una matriz o una propiedad de un objeto.
 1108El operando de decremento no es válido. El operando debe ser una variable, un elemento de una matriz o una propiedad de un objeto.
 1109Se esperaba una expresión. Falta una expresión en una parte del código. Por ejemplo, lo siguiente produce este error (falta una condición en la sentencia if:
var x = (5 > 2) ?
    trace(x)
 1110Falta el nombre de una etiqueta XML. 
 1112Posible recursión infinita debida a esta inclusión de archivo: _. Un archivo que se incluye en el código fuente que se está compilando contiene otras sentencias include que podrían provocar un bucle infinito. Por ejemplo, los siguientes archivos. a.as y b.as, generan este error porque cada archivo intenta incluir al otro.

El archivo a.as contiene lo siguiente, que intenta incluir al archivo b.as:

import foo.bar.baz;
    include "b.as"
    trace(2);

El archivo b.as contiene lo siguiente, que intenta incluir al archivo a.as:

include "a.as"
 1113Se ha detectado una referencia de tipo circular en _. Una clase está intentando ampliar una superclase. Por ejemplo, la clase A no puede ampliar la clase B si B hereda de A:
class a extends b { }
    class b extends a { }
 1114El atributo public sólo puede utilizarse dentro de un paquete. 
 1115El atributo internal sólo puede utilizarse dentro de un paquete. 
 1116Un atributo de espacio de nombres definido por el usuario sólo puede utilizarse en el nivel superior de una definición de clase. 
 1118Coerción implícita de un valor con tipo estático _ a un tipo posiblemente no relacionado _. Está utilizando un valor que no es del tipo esperado y no existe coerción implícita para convertirlo en el tipo esperado.

Puede que esté utilizando un supertipo en un lugar en el que se espera un subtipo. Por ejemplo:

class A {}
    var a:A = new A();
    class B extends A { function f() }
    var b : B = a // error

La última sentencia genera un error porque intenta asignar un objeto de tipo A a una variable de tipo B.

De forma similar, lo que sigue define la función foo(), que toma un parámetro de tipo B. La sentencia foo(a); genera un error porque intenta utilizar un parámetro de tipo A:

function foo(x:B) { }
    foo(a);

Asimismo, la siguiente sentencia genera un error porque el valor devuelto para foo2() debe ser de tipo B:

function foo2():B { return new A(); }
 1119Acceso a una propiedad _ posiblemente indefinida a través de una referencia con tipo estático _. Está intentando acceder a una propiedad que no existe para el objeto especificado. Por ejemplo, el siguiente código genera este error porque un objeto int no tiene una propiedad llamada assortment:
var i:int = 44;
    var str:String = i.assortment;
Este error sólo aparece cuando el compilador está ejecutándose en modo estricto.
 1120Acceso de propiedad no definida _. Está intentando acceder a una variable no definida. Por ejemplo, si la variable huh no se ha definido, una llamada a ésta genera este error:
huh = 55;
Este error sólo puede aparecer cuando el compilador está ejecutándose en modo estricto.
 1121Una definición getter no debe tener ningún parámetro. 
 1122Una definición setter debe tener exactamente un parámetro. 
 1123Una definición setter no puede tener parámetros opcionales. 
 1124El tipo de devolución de una definición getter no puede ser void. Una función getter simula una variable. Dado que las variables no pueden ser de tipo void, no puede declarar funciones getter con el tipo de devolución void.
 1125Los métodos definidos en una interfaz no pueden tener cuerpo. 
 1126La función no tiene cuerpo. 
 1127El atributo _ se ha especificado varias veces. Ha especificado un atributo más de una vez en la misma sentencia. Por ejemplo, la sentencia public static public var x; genera este error porque especifica que la variable x es pública dos veces. Elimine las declaraciones duplicadas.
 1129Definición de interfaz duplicada: _. Cambie o elimine la definición duplicada.
 1130Un constructor no puede especificar un tipo de devolución. 
 1131Las clases no pueden estar anidadas. 
 1132El atributo final sólo puede utilizarse en un método definido en una clase. 
 1133El atributo native sólo puede utilizarse con definiciones de funciones. 
 1134El atributo dynamic sólo puede utilizarse con definiciones de clases. 
 1135Error de sintaxis: _ no es un tipo válido. 
 1136Número incorrecto de argumentos. Se esperaba _. La función espera un número diferente de argumentos de los proporcionados. Por ejemplo, lo siguiente define la función goo, que tiene dos argumentos:
class A { static function goo(x:int,y:int)
    { return(x+y); } }

La siguiente sentencia generaría un error porque proporciona tres argumentos:

A.goo(1,2,3);
 1137Número incorrecto de argumentos. No se esperaban más de _. 
 1138Los parámetros requeridos no se permiten después de los parámetros opcionales. 
 1139Las interfaces no admiten declaraciones de variables. 
 1140Los parámetros especificados después de la palabra clave de definición de parámetro...resto sólo pueden tener el tipo de datos Array. 
 1141Una clase sólo puede ampliar otra clase, no una interfaz. 
 1142Una interfaz sólo puede ampliar otras interfaces, pero no _ en una clase. Está intentando que una interfaz amplíe una clase. Una interfaz sólo puede ampliar otra interfaz.
 1143El atributo override sólo puede utilizarse en un método definido en una clase. 
 1144El método de interfaz _ del espacio de nombres _ está implementado con una firma incompatible en la clase _. Las firmas de métodos deben coincidir exactamente.
 1145Los métodos nativos no pueden tener cuerpo. No puede utilizar native porque es una palabra clave reservada.
 1146Un constructor no puede ser un método getter o setter. 
 1147No se ha especificado un archivo de origen AS. 
 1149La sentencia de devolución no puede utilizarse en el código de inicialización estático. 
 1150El atributo protected sólo puede utilizarse en definiciones de propiedades de clases. 
 1151Hay un conflicto con la definición _ en el espacio de nombres _. No se puede declarar más de una variable con el mismo nombre de identificador dentro del mismo ámbito, a no ser que todas las variables se declaren como del mismo tipo. En ActionScript 3.0, los diferentes bloques de código (por ejemplo, los utilizados en dos bucles for de la misma definición de función) se consideran como del mismo ámbito.

El siguiente ejemplo de código convierte correctamente la variable x como del mismo tipo:

function test()
    {
    	var x:int = 3;
    	for(var x:int = 33; x < 55; x++)
    	trace(x);
    	for(var x:int = 11; x < 33; x++)
    	trace(x)
    }

El siguiente ejemplo de código genera un error porque la conversión de tipo de la declaración de variable y los bucles for son diferentes:

function test()
    {
    	var x:String = "The answer is";
    	for(var x:int = 33; x < 55; x++) // error
    	trace(x);
    	for(var x:unit = 11; x < 33; x++) // error
    	trace(x)
    }
 1152 Hay un conflicto con la definición heredada _ en el espacio de nombres _. 
 1153Un constructor sólo puede declararse como público. 
 1154Sólo puede especificarse public, private, protected o internal en una definición. 
 1155Los descriptores de acceso no pueden anidarse dentro de otras funciones. 
 1156No pueden crearse instancias de interfaces con el operador new. 
 1157Los miembros de interfaces no pueden declararse con public, private, protected o internal. 
 1158Error de sintaxis: falta la llave inicial ({) antes del cuerpo de la función. 
 1159La sentencia de devolución no puede utilizarse en el código de inicialización del paquete. 
 1160El atributo native no puede utilizarse en definiciones de interfaz. No puede utilizar native porque es una palabra clave reservada.
 1162Sólo puede utilizarse un atributo namespace por definición. 
 1163El método _ entra en conflicto con la definición heredada de la interfaz _. 
 1165El atributo de interfaz _ no es válido. 
 1166Las declaraciones de espacio de nombres no se permiten en las interfaces. 
 1167La clase _ implementa la interfaz _ varias veces. La clase implementa la misma interfaz más de una vez. Por ejemplo, lo siguiente genera este error porque la clase C implementa la interfaz A dos veces:
interface A {  public function f();  };
    class C implements A,A {
    public function f() { trace("f"); }
    }

La sentencia de implementación correcta sería class C implements A {.

 1168Asignación no permitida a la función _. Está intentando redefinir una función. Por ejemplo, lo siguiente define la función topLevel() para imprimir la palabra "top". La segunda sentencia genera un error porque asigna un valor de devolución diferente a la función:
function topLevel() { trace("top"); }
    topLevel = function() { trace("replacement works in ~");} // error
 1169Los atributos namespace no se permiten en métodos de interfaz. 
 1170La función no devuelve un valor. Cada control de flujo posible de una función debe devolver un valor cuando el tipo de devolución sea un valor diferente de void. La siguiente función f(x) no genera un error porque la sentencia if..else siempre devuelve un valor:
function f(x):int
    {
    if (x)
        	return 2;
    else
        	return 3;
    } // sin error

Sin embargo, la función g(x) incluida debajo genera el error debido a que la sentencia switch no siempre devuelve un valor.

function g(x:int):int
    {
    switch(x)
    {
          	case 1: return 1;
          	case 2: return 2:
    }
    // return 2;//se quita el comentario para eliminar el error
    }

Esta comprobación sólo se activa cuando la función declara un tipo de devolución distinto de void.

 1171Un inicializador de espacio de nombres debe ser una cadena literal u otro espacio de nombres. 
 1172No se ha encontrado la definición _. 
 1173La definición de etiqueta no es válida. 
 1176Comparación entre un valor con tipo estático _ y un tipo posiblemente no relacionado _. Este error está activado en modo estricto.
 1177La sentencia de devolución no puede utilizarse en el código de inicialización global. 
 1178Intento de acceso a una propiedad _ inaccesible a través de una referencia con tipo estático _. 
 1180Llamada a un método _ posiblemente indefinido. Este error sólo aparece cuando el compilador está ejecutándose en modo estricto.
 1181Referencia hacia delante a la clase base _. 
 1182El paquete no puede utilizarse como valor: _. 
 1184Valor predeterminado incompatible de tipo _ donde se esperaba _. 
 1185switch tiene más de un valor predeterminado y sólo se permite uno. 
 1188Asignación no permitida a la clase _. 
 1189Intento de eliminación de la propiedad fija _. Sólo pueden eliminarse las propiedades definidas dinámicamente. La eliminación borra de un objeto las propiedades definidas dinámicamente. No es posible eliminar las propiedades declaradas de una clase. Este error sólo aparece cuando el compilador está ejecutándose en modo estricto.
 1190La clase base no se ha encontrado o no es una constante de tiempo de compilación. 
 1191La interfaz no se ha encontrado o no es una constante de tiempo de compilación. 
 1192El atributo static no se permite en definiciones de espacios de nombre. 
 1193Las definiciones de interfaces no pueden estar anidadas dentro de clases u otras definiciones de interfaces. 
 1194El atributo prototype no es válido. 
 1195Intento de acceso a un método _ inaccesible a través de una referencia con tipo estático _. Está llamando a un método privado de otra clase o a un método definido en un espacio de nombres que no se está utilizando. Si llama a un método definido en un espacio de nombres no utilizado, añada una sentencia use para el espacio de nombres requerido.
 1196Error de sintaxis: se esperaba una expresión después de throw. 
 1197La clase _ no puede ampliar _ porque ambos están asociados a símbolos de biblioteca o a la línea de tiempo principal. 
 1198No se permiten atributos en definiciones de paquetes. 
 1199Error interno: _. 
 1200Error de sintaxis: inicializador for-in no válido, sólo se esperaba 1 expresión. 
 1201Una sentencia super no puede encontrarse después de una sentencia this, super, return o throw. 
 1202Acceso de propiedad no definida _ en el paquete _. Está intentando acceder a una variable no definida en un paquete. Por ejemplo, si la variable p.huh no se ha definido, una llamada a ésta genera este error:
p.huh = 55;
Este error sólo puede aparecer cuando el compilador está ejecutándose en modo estricto.
 1203No se encontró ningún constructor predeterminado en la clase base _. Debe llamar explícitamente al constructor de la clase base con una sentencia super() si tiene uno o varios argumentos necesarios.
 1204/* encontrado no coincidente con */. Se encontraron caracteres '/*', que indican el comienzo de un comentario, pero no se encontraron caracteres '*/' correspondientes, que indican el final del bloque de comentarios.


 

Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios

Página actual: http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/compilerErrors.html