문제

나는 사용 중입니다

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

위의 코드의 4 번째 줄에서 "오류 : 오류 #2030 : 파일 끝이 발생했습니다." 나는 그것을 확인했다 길이픽셀 4 배인 물체 너비*높이rect 물체. 을 고려하면 setpixels () 기능은 ByTearRay에서 서명되지 않은 int를 읽고 해당 값을 픽셀로 설정하면 작동해야한다고 생각합니다.

그러나 나는 이것이 왜 작동하지 않는지 전혀 모른다. 그만큼 픽셀 서버에서 얻은 데이터를 rle 디코딩 한 후에 객체가 채워집니다.

제가 사용할 수있는 작업이나 다른 방법이 있습니까? 서버에서 얻은 데이터가 인식 된 형식이 아니기 때문에 로더 클래스는 작동하지 않습니다.

모든 도움은 대단히 감사합니다.

Shrikant

감사.

도움이 되었습니까?

해결책

사용 가능한 마지막 위치를 넘어 포인터를 이동하려고 할 때 BytearRay에서 EOF 오류가 발생합니다. BytearRay를 채우면 실제로 포인터를 이동하므로 작업을 수행하기 전에 위치를 재설정해야합니다.

노력하다 :

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

다른 팁

또한 다음 코드가 작동한다는 것을 알았습니다.

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

그러나 바이트 레이를 수정 한 후 픽셀을 설정하려고 시도하면 위에서 언급 한 오류가 발생합니다. 지금은 더 혼란 스러웠습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top