2012-03-14 3 views
0

큰 이미지를 사용할 때 문제가 있다고 생각됩니다. 무슨 일이 일어나는지 설명해 드리겠습니다.Flash (AIR 앱)에서 큰 이미지 성능 문제가 발생했습니다.

이 이미지를로드하는 방법은 내 클래스 DynamicImage의 모든 인스턴스를 타임 라인의 프레임 2에 두는 것입니다. 이전에 읽은 XML을 기반으로 이미지를로드합니다.

public class DynamicImage extends DynamicSingleImage 
{ 

    //var eLoader:Loader; //for english image 
    var aLoader:Loader; //for alternate language image 
    public function DynamicImage() 
    { 
     //loadMyImage(); //don't need to do this...super does this 
     ...   
    } 

    override public function loadMyImage() :void 
    { 
     ... 
      } 

프레임 2에 도달하면 앱에 자산이로드된다는 것은 중요하지 않습니다.

이 질문을 짧게하기 위해서 ... 저는 두 개의 DynamicImages가로드되어 있습니다 (그들은 3840 x 2400입니다). 두 이미지를 전환하는 토글 버튼이 있습니다. A와 B라고합시다.

동작은 다음과 같습니다. A가 기본값으로 설정됩니다. 처음 B로 전환하면 ... B가 표시되기 전에 두 번째로 지연이 있습니다. 이제 내가 A와 B 사이를왔다 갔다하면서 (가시적 인 속성을 바꾸는 것) 꽤 즉각적입니다. 그런 다음 내 앱의 다른 부분을 사용합니다 ... 또한 켜기/끄기를 전환하는 큰 이미지가 있습니다 (visible = false/true 사용). 내가 A & B로 돌아갈 때, 처음으로 토글 할 때, 나는 그 두 번째 지연을 다시 보았습니다!

플래시가 메모리에서 이미지를로드/언로드하기 때문입니까? 이 AIR 응용 프로그램이 더 많은 메모리를 사용하도록해야합니까? 그 밖의 무엇이 여기에서 일어날 수 있 었는가?

답변

0

이미지를 디스플레이에 그리는 것과 관련이 있습니다. 작업중인 이미지는 실제로 매우 큽니다! 그걸 줄이면 안돼? 너 뭐하려고? 기본 이미지 변환을 SIPS (Mac 만 해당)로 오프셋하여 작은 프록시 이미지를로드 할 수 있도록 작은 클래스를 작성했습니다. SIPS는 GPU와 작동하기 때문에 매우 빠릅니다 !! 300mb + 이미지로 작업하고 있었는데 거의 즉시로드되었습니다.

어쩌면 누구에게 도움이 될지 : http://www.inklink.co.at/blog/?p=90

관련 문제