내가 이해하는 한, 코드에 MovieClip
개체 (cal_mc는 MovieClip
)를 사용하고 있습니다.
짧은 대답은 : 그래서 첫 번째 조건이 실패 MovieClip
에 프로퍼티 "컬러"가 없습니다.
긴 대답 : 프로퍼티 "색상"MovieClip
을에 없다
var custom:MovieClip = new MovieClip();
custom.potato = "I am a potato!"; // creates a new property "potato" and assigns it the value of "I am a potato".
trace(custom.potato); // outputs "I am a potato";
: 그 코드가 실행되는 동안 그들은 속성을 정의 할 수 있습니다 의미 있도록 정의에 의해
무비 클립은 동적 객체 따라서 이론 상태에서는 조건문이 거짓이지만 사실상 플래시는 아무런 오류도 발생시키지 않습니다. MovieClip
에는 런타임에 속성이 할당 될 수 있으므로 Flash에서는이를 알 수 없습니다. "색상"을 정의하지 않은 경우 어딘가에 있습니다.
몇 솔루션입니다 :
- 중 하나가
color
재산 때 올바른 값을 지정하려면 원하는 그래픽을 그릴 수 color
재산과 몇 가지 방법을 포함 할 것이다 MovieClip
과 논리를 확장하는 사용자 정의 클래스를 만들 그림이 완성되었습니다. Bitmap
의 bitmapData
에서 MovieClip
Bitmap
에 객체를 렌더링하고, (간단한 모양의 모든 픽셀은 같은 색의 때문에) 한 후 제 1 픽셀을 샘플링 - 당신의 MovieClip
만약
- 은 간단한 모양, 나는 그것이 가정입니다 . 여기
후자에 대한 코드입니다 : (조정이 필요할 수 있습니다 코드, 그것의 개요)
function sampleColorFromDisplayObject(display:DisplayObject):uint
{
var bd:BitmapData = new BitmapData(display.width, display.height, false, 0xFF0000);
bd.draw(display, new Matrix());
var color:uint = bd.getPixel(0, 0);
bd.dispose();
return color;
}
하면 해당 때문에 가능한 다양한 모양과 크기에,이 코드가 필요할 수 있습니다 점에 유의 일부 모양으로 의도 한대로 작동하지 않을 수 있습니다. bitmapData의 크기를 크게하고 플래시 IDE에 정의 된 특정 유형의 원과 모양을 고려하여 첫 번째 픽셀을 샘플링하여 가능한 많은 양의 모양으로 작업하도록했습니다.
코드를 사용하거나 IDE에서 색상 변환을 설정 한 경우를 대비하여이 대답을 확장하여 'movieclip.transform.colorTransform.color' 속성을 언급 할 것입니다. – package