Código de barras EAN-13

EAN-13

Creación de un flash para impresión de códigos de barras EAN-13 (European Article Numbering). Consiste en un código de 12 dígitos más un dígito de control que se utiliza en muchos artículos de consumo común.

Código de barras EAN-13

Ver a pantalla completa

Símbolo "barra" del Flash

Para dibujar el EAN-13 tenemos tres juegos de caracteres distintos. En los primeros 10 fotogramas va el código A, en los 10 siguientes el código B, y en los 10 últimos el código C. Así cada número de cada código le corresponde un número de fotograma.

En la siguiente ilustración vemos la representación de los diez dígitos para cada uno de los códigos A, B y C.

Código Action Script

Función "ean13"

function ean13 (strNumero12cifras)
{
//reset ();

var arrayDigitos = new Array (13);

//Comprobar tamaño del parámetro
if (strNumero12cifras.length < 12) {
return;
}

//Convertir el parámetro string en array de dígitos
for (var i=0; i<12; ++i) {
var car = strNumero12cifras.charAt (i);
var digito = "0123456789".indexOf (car);
if (digito == -1) return;
arrayDigitos[i] = digito;
}

// Calcular dígito 13 (dígito de control)
arrayDigitos[i] = calcularDigito13 (arrayDigitos);

// Visualizar el número inferior
for (var i=1; i<=13; ++i) {
var obj = this["digit" + i];
var fotograma = arrayDigitos[i-1] + 1;
obj.gotoAndStop (fotograma);
}

// Obtener los juegos de caracteres de los 6 dígitos de la izquierda
var arrayJuegosAB = new Array ("AAAAAA", "AABABB", "AABBAB", "AABBBA", "ABAABB", "ABBAAB", "ABBBAA", "ABABAB", "ABABBA", "ABBABA");
var strJuego = arrayJuegosAB[ arrayDigitos[0] ];
for (var i=2; i<=13; ++i) {
var obj = this["barra" + i];
var juego = 2;
if (i <= 7) {
juego = "AB".indexOf(strJuego.charAt(i-2));
}
var fotograma = arrayDigitos[i-1] + juego * 10 + 1;
obj.gotoAndStop (fotograma);
}
}

Función "calcularDigito13"

function calcularDigito13 (arrayDigitos)
{
var acum = 0;
var par = false;
for (var i=0; i<12; ++i) {
if (par) {
acum += arrayDigitos[i] * 3;
}
else {
acum += arrayDigitos[i];
}
par = ! par;
}
return (10 - acum % 10) % 10;
}

Comentarios

  1. 1 manuel 2008-08-18 Hace 9 años
    Señores:

    Quiero comprar un codigo de barras para imprimirlo posteriormente en un estuche de plastico para un producto que deseo comercializar en el mercado Español.
    La verdad es que no sé donde dirigirme ya que es algo nuevo para mi y les agradeceré me informen al respecto.
    Gracias por su atención

    Manuel
  2. 2 Chus 2008-11-25 Hace 9 años
    Hola: he estado mirando las tablas de codificacion y me he dado cuenta de que en la tabla C en número 0 y el número 9 estan codificados de la misma manera 1110100 o lo que es lo mismo: negra-negra-negra-blanca-negra-blanca-blanca.

    A mi entender no puede haber dos dígitos codificados de la misma manera, creo que el 0 es 1110010 y el 9 como está.
    Aprovecho para felicitarte, me parece u generador de codigos estupendo y muy didactico.
  3. 3 Francisco 2008-11-26 Hace 9 años
    Tienes razón Chus, el 0 de la tabla C estaba mal. Ya está corregido.

    Muchas gracias por el aviso.
Proinf.net, ©2003-2017 ci 3.1.5 (CC) Esta obra está bajo una licencia de Creative Commons Este software está sujeto a la CC-GNU GPL