2011-08-08 6 views
1

내가 여기 준 대답에 이어 충돌하는 것 같다의 BitmapData 생성자 기본

AS 3 | Cloning Png image data 내가 그 투명의 BitmapData이 검은 색의 배경 색상을 지정하는 것이 필요하다고 객체 얻을 알았지 만, 나는 밖으로 불렀다까지 그 이유를 확인하기 위해 나는 결코 귀찮게 생각하지 않았습니다. 확인하는 데, 나는 나가의 BitmapData 생성자에 기본 인수를 충돌 것 같아 무엇을 볼 수없는 이유가 궁금해?

첫째, 여기에 문서에 정의 된 생성자 :

public function BitmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF) 

투명성에 대한 기본 값이 true 인 것을 알하시기 바랍니다. 이제 문서는 투명 매개 변수에 대해 무슨 말을 고려해야합니다

투명 : (기본값 = TRUE) 부울 - 비트 맵 이미지에서 픽셀 별 투명도를 지원하는지 여부를 지정합니다. 기본값은 true (투명)입니다. 완전 투명 비트 맵을 생성하기 위해 참으로 투명 파라미터 0x00000000 (또는 0) fillColor 매개 변수 값의 값을 설정. transparent 속성을 false로 설정하면 렌더링 성능이 약간 향상 될 수 있습니다.

채우기 색을 검은 색으로 설정하지 않으면이 매개 변수는 쓸모가 없습니다. 그럼 기본 fillColor 값은 0xFFFFFFFF입니까?

이 나에게 잘못 보인다. 개발자는 더 알파 채널의 성능 향상을 원하는 경우, 명시 적으로 지정해야합니다

var bmd:BitmapData = new BitmapData(width,height,false); 

그리고 투명의 BitmapData이 필요한 경우, 그 너무 명시 적으로 지정해야합니다

:

var bmd:BitmapData = new BitmapData(width,height,true,0x000000); 

그래서에서 더 점은 우리는 성능 저하를 적용하지 않고, 짧은 생성자의 형태에 의존 할 수 있으며, 그 이유를 이해할 수 없다.

var bmd:BitmapData = new BitmapData(width,height); // transparent BitmapData 

또는 투명성은 false로 기본합니다 : 확실히 중 하나를하고 fillColor 검은 색 기본합니다

var bmd:BitmapData = new BitmapData(width,height); // faster, no-alpha BitmapData 

사람은 현재 생성자의 이익이 무엇인지 나에게 설명 할 수 있습니까?

답변

0

현재 생성자에는 아무런 이점이 없습니다. 기본적으로 Adobe 모드 일뿐입니다. 디스플레이 객체, 무비 클립 등을 그릴 때 사람들이 배경을 포함한다는 불만을 제기한다고 가정하고 있습니다. 솔직히 - 나는 어떤 기본값을하지 않습니다 더 많은 감각을했습니다 것이라고 생각하지만 그들이 선택한 단지 무엇, 우리는 그것을 준수해야합니다.

당신이 정말로 사소한 속도 증가를 원하고 그 생성자를 지정하지 않는 경우, 정의 된 ctor에있는 마지막 서브 클래스 생성 :

public final class Surface extends BitmapData { 
    public function Surface(width:int, height:int, fillColor:uint = 0x000000):void { 
     super(width, height, false, fillColor); 
    }  
}