2014-04-04 2 views
0

플래시에서 색상을 변환하는 데 어려움이 있습니다. 생각하기는 쉽지만, 어떤 이유로 내 코드가 예상대로 작동하지 않습니다.플래시 색상 변환

나는 빨간색에서 노란색, 녹색으로의 색상 스펙트럼으로 구성된 비트 맵 그래픽을 가지고 있습니다 (오디오 레벨 미터에서 보는 것처럼).

단순히 비트 맵에서 색상을 샘플링 한 다음 색상을 샘플링 한 스테이지에서 무비 클립의 색조를 지정하기 만하면됩니다. (내가 할 효과는 착색 된 진행 상황입니다. 녹색으로 100 % 가까이 갈수록 빨간색으로 가까울수록 0 %가됩니다. 아직 그 부분을 구현하지는 않았지만 걱정하지 않습니다. 그).

아무리해도 색상을 잘 샘플링하고 내 클립에 색조를 지정했지만 클립에 색조를 지정해도 샘플링 한 것보다 다른 색이 표시됩니다 (추적 내용은 내가 본 것보다 다른 색입니다.) 클립). 나는 내가 잘못 가고있는 것을 볼 수 없다. 나는 바보 같은 실수를하기를 바라고 누군가 쉽게 그것을 발견 할 수있다.

import flash.display.BitmapData; 

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

bmd.draw(mc_colourbar); 

var pixelvalue:uint = bmd.getPixel(0, 1); 

trace(pixelvalue.toString(16)); 

var colourtransform:ColorTransform = mc_box.transform.colorTransform; 

colourtransform.color = uint("0xff" + pixelvalue); 

mc_box.transform.colorTransform = colourtransform ; 

mc_box는 무대 클립입니다. 색이 바래지려고합니다. 단순히 흰색 사각형입니다.

도움을 주시면 감사하겠습니다.

답변

1

ColorTransform.color은 RGB 값이 필요하며 ARGB 값 *을 부여하려는 것처럼 보입니다.

변경 라인 :

colourtransform.color = uint("0xff" + pixelvalue);

그냥하는 예상대로

colourtransform.color = pixelvalue;

와 코드가 작동합니다.

* 아니지만 으로 생각하면 여기에 올바른 방법이 있습니다.

+0

Marcela 고맙습니다. 정확히 그게 잘못입니다. 그것은 나를 위해 완벽하게 작동합니다! – canoebrain