[ActionScript] object에 저장된 값 읽기

액션스크립트의 최상위 객체인 Object는 해쉬 테이블 자료구조입니다. 즉, 키와 값으로 구성된 리스트입니다. 키의 타입은 문자열이며 값의 타입은 다시 Object라고 이해하면 별 무리가 없을 것입니다. Object의 이러한 특성으로 인해 액션스크립트를 이용해 매우 유연한 코딩을 가능하게 해줌과 동시에 이러한 애매모호한 타입에 대해 별도의 문서와 주석이 없을 경우 유지보수에 상당한 비용이 발생하게 됩니다. 뭐 여튼… Object에 저장된 키와 값에 대한 리스트를 얻어오는 코드가 이 글의 주요 정리 내용입니다. 필요할때.. 맨날~ 까먹기에.. 정리해 봅니다.

for(var key:String in _conditionsCtrls)
{
    var wc:IWhereConditionable = _conditionsCtrls[key] as IWhereConditionable;

    ....

위의 코드에서 Object 타입의 _conditionsCtrls에 저장된 키 문자열을 key라는 변수에 할당하고 이렇게 얻은 키를 통해 _conditionsCtrls[key]와 같은 형식으로 Object 타입의 값을 얻어옵니다. Object 타입이니.. 형변환을 통해 원하는 타입으로 변환할 수 있습니다.

[ActionScript] Graphics에 이미지 표시하기

참으로… 어이없게도 플래시에서는 그래픽을 자유롭게 그려 그릴 수 있는 Graphics이라는 클래스를 제공함에도.. 이 클래스에는 이미지를 그릴 수 있는 명확한 매서드를 제공하고 있지 않습니다. 무슨 말씀인고 하니… 사각형이나 원을 그리기 위해서 Graphics에서는 drawRect와 drawCircle라는 매서드는 제공하면서 이미지를 그리기 위한 drawImage나 drawBitmap과 같은 매서드는 없다는 것이지요.. 그래도 그 가능성은 열어 놓았습니다. 아래가 그에 대한 코드입니다.

var x:Number = 10;
var y:Number = 10;

var matrix:Matrix = new Matrix(1, 0, 0, 1, x, y);
graphics.beginBitmapFill(img.bitmapData, matrix);
graphics.drawRect(x, y, img.bitmapData.width, img.bitmapData.height);
graphics.endFill()

위의 코드는 img라는 Bitmap 타입의 이미지 객체를 (10, 10) 위치에 표시하기 위한 코드입니다.

무슨 이유로 이미지를 그리기 위한 명확한 매서드(예를 들어 drawImage(img, x, y)와 같은 매서드)를 제공하고 있지 않은지.. 아시는 분은 꼭 알려주시면 감사하겠습니다..