2010-07-07 4 views
3

플렉스의 스프라이트에서 자르기/자르기는 어떻게 이루어 집니까?자르기/클리핑 A 스프라이트

<?xml version="1.0" encoding="utf-8"?> 
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="Init()"> 
    <mx:Script> 
    <![CDATA[ 
     public function Init():void { 
     var spr:Sprite=new Sprite(); 
     uic.addChild(spr); 
     uic.graphics.lineStyle(2,0); 
     uic.graphics.moveTo(22, 22); 
     uic.graphics.lineTo(2222, 2222); 
     } 
    ]]> 
</mx:Script> 
<mx:Panel title="StackOverflow"> 
    <mx:UIComponent width="200" height="200" id="uic"/> 
    </mx:Panel> 
</mx:WindowedApplication> 

lineTo가 완전히 UIComponent와 Panel을 떠납니다.

내 UIComponent 또는 Sprite 또는 Panel이 잘리는/잘리는 이유는 무엇입니까? alt text http://www.liquidfeline.com/images/stackoverflow.png

하드 코딩 된 2222를 좀 더 합리적인 것으로 변경할 수 있다는 것을 알았지 만, 실제 프로젝트에는 수정할 수있는 하드 코딩 된 값이 포함되어 있지 않으므로 이에 대한 일반화 된 솔루션이 필요합니다. 동적 데이터.

답변

2

마스크를 사용하십시오.

var mask:Shape = new Shape(); 
with(mask.graphics) 
{ 
    beginFill(0xFFFFFF, 1); // white, opaque 
    drawRect(0, 0, width, height); 
    endFill(); 
} 
uic.mask = mask; 
+0

동의합니다. 마스크를 사용하십시오. 하지만 함께 사용하지 마십시오;) –

+0

"with"를 사용하지 않는 이유는 무엇입니까? –

+1

좋습니다. 이것을 필요로하는 다른 사람은 마스크를 적용 할 구성 요소의 자식으로 마스크를 추가해야한다는 것을 알고 있어야합니다. 그렇지 않으면 작동하지 않습니다. – Joshua

5

scrollRect를 사용해보아야합니다. 마스크보다 성능이 더 빠릅니다. Grant Skinner의 scrollRect 소개.