2011-05-05 7 views
2

나는 수천 개의 벡터를 연속적으로 그리는 EaselJS 프로그램에서 작업 중이다. 말할 필요도없이 짧은 시간이 지나면 성능이 떨어집니다. 이를 플래시에서 해결하기 위해 벡터 뒤에 Bitmap을 만들고 주기적으로 그 비트 맵에 벡터를 그리고 표시 목록에서 제거해야합니다.벡터를 EaselJS의 비트 맵에 그리기

모든 조각이 제자리에있는 것처럼 보이지만 이젤젤에서는이 작업을 수행하는 데 어려움이 있습니다. 빈 Bitmap()을 만들고 Container()의 내용을 그 위에 어떻게 그릴 수 있습니까?

답변

4

모든 것을 컨테이너에 넣고 캐시 할 수 있다고 생각합니다.

var vectorContainer=new Container; 
for (var i = 0;i<numVectors;i++){ 
    var vector=new Shape(); 
    //draw whatever vector you want to vector.graphics 
    vectorContainer.addChild(vector); 
} 
vectorContainer.cache(someX,someY,someW,someH); 

현재 릴리스에는 버그가 있으며 컨테이너를 올바르게 캐시하지 않으므로 최신 태그없는 빌드를 가져옵니다.

1

저는 'snapToPixel = true'를 벡터에 추가 한 이유는 일부 브라우저에서 도움이 될 것으로 읽었 기 때문입니다. 위의 예제 코드에서 캐싱을 수행하는 마지막 행 바로 앞에 다음 행을 추가합니다.

vectorContainer.snapToPixel = true; 

실사 예제를 보려면 demo of cache and snap to pixel settings을 확인하십시오.

내 특정 브라우저에서 픽셀에 대한 스냅 샷은 실제로 성능을 변경하지 않지만 필자가 생각한 것처럼 필자의 독서에서 보면 그렇습니다.

관련 문제