Pregunta

Estoy utilizando

var bitmapdata:BitmapData=new BitmapData();
var pixels:Bytearray=new Bytearray();
pixels = rleDecodePixles();
bitmapdata.setPixels(bitmapdata.rect, pixels);

En la cuarta línea en el código anterior que estoy recibiendo "Error: Error # 2030: Se ha encontrado el final del archivo." Comprobé el longitud de los píxeles objeto que es 4 veces la width * height del rect objeto. Teniendo en cuenta que setPixels () funciones lee entero sin signo de bytearray y establece que el valor de píxeles, creo que debería funcionar.

Pero no tengo idea de por qué esto no funcionará. Los píxeles objeto se llena después de RLE decodificación de los datos que i obtener de un servidor.

¿Hay algún trabajo alrededor o cualquier otro método que podría tratar de usar. El cargador de clases no trabajará como los datos que recibo de que el servidor no está en ninguna de formato reconocido.

Cualquier ayuda es muy apreciada.

Shrikant

Gracias.

¿Fue útil?

Solución

Se obtiene el error EOF de ByteArray cuando intenta mover el puntero más allá de la última posición disponible. Cuando obtiene su ByteArray, en realidad se mueva su puntero, por lo que antes de poder hacer nada con ella, hay que restablecer su posición.

Probar:

var bitmapdata:BitmapData=new BitmapData();
var pixels:Bytearray=new Bytearray();
pixels = rleDecodePixles();
pixels.position = 0; // Reset ByteArray pointer
bitmapdata.setPixels(bitmapdata.rect, pixels);

Otros consejos

También me acabo de enterar que el siguiente código funciona:

bitmap.object.setPixels(bitmap.object.rect, bitmap.createPixels(width, height));

function creatPixels(width:int,height:int):Bytearray
{
   var result:Bytearray=new Bytearray();
    result.length=(width*height)<<2;
    return result;
}

Pero después de que he modificado el bytearray y luego tratar de establecer los píxeles que arroja el error antes mencionado. aún más confundido ahora.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top