2013-04-02 1 views
1

다음과 같은 문제가 있습니다. 마스크로 사용할 그룹에 모양을 그립니다. 그런 다음 Rotate3D를 사용하여 x, y, z에있는 이미지를 회전시키고 이미지의 마스크로 그룹을 사용합니다. 그러나 그룹이 이미지의 마스크가되면 그 회전도 획득하기 때문에 원하는 결과가 아닙니다. 내가 원하는 것은, 내가 그린 그림에 따라 회전 된 이미지의 일부분을 얻는 것입니다. 어떻게 회전 시켜도 마스크를 적용 할 수 있습니까? 아니면 다른 방법으로도 할 수 있습니까? 그때 imgTarget.mask = grpMask을 설정회전 된 객체에 마스크를 적용하면 마스크가 자동으로 회전합니다.

grpMask = new Group(); 
    g = grpMask.graphics; 
    g.lineStyle(0, 0x00FF00); 
    g.moveTo(points[0].x, points[0].y); 
    g.beginFill(0x00FF00, .3); 
    for (var i:int; i < points.length - 1; i++) 
    { 
     g.lineTo(points[i + 1].x, points[i + 1].y); 
    } 
    g.endFill(); 
    grpCanvas.addElement(grpMask); 

: 여기

는 코드입니다. imgTarget에 여러 가지 Rotate3D 효과가 적용되었습니다.이 효과는 불행하게도 마스크로 전달됩니다.

+0

어떻게 이런 일을하기에 관하여 : 용기에 회전 객체를 넣어하는 것은, 다음에 마스크를 적용 컨테이너. –

+0

이것으로 _did_ 작업을 수행합니다. 고마워요, 선일 디! 제발,이 질문에 대답 해주세요. 나는 답으로 표시 할 수 있습니다. – kvist

답변

0

하나의 해결책은 회전 할 개체를 Sprite 또는 Group과 같은 컨테이너 클래스에 추가하는 것입니다. 그리고 대신에 회전 객체의 컨테이너에 마스크를 적용

var container:Group = new Group(); 
container.addElement(roatatedObject); 
container.mask = maskObject; 
container.addElement(maskObject); 

또는

var container:Sprite = new Sprite(); 
container.addChild(rotatedObject); 
container.mask = maskObject; 
container.addChild(maskObject); 
관련 문제