2010-07-07 5 views
3

Comment le recadrage/découpage est-il accompli sur un Sprite en Flex?Recadrer/Couper un sprite

<?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> 

Notez que la ligne To quitte complètement UIComponent et Panel.

Comment puis-je rogner/écrêter mon UIComponent ou mon Sprite ou mon Panel? Je réalise que je pourrais simplement changer les 2222 codés en dur à quelque chose de plus raisonnable, mais j'ai besoin d'une solution généralisée à ceci, puisque le projet réel n'implique pas des valeurs codées en dur que je peux changer, mais travaille avec données dynamiques.

Répondre

2

Utilisez un masque.

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

Je suis d'accord, utilisez un masque. Mais s'il vous plaît ne pas utiliser avec;) –

+0

Pourquoi ne pas utiliser "avec"? –

+1

D'accord, cela a fonctionné. Toute personne qui en a besoin devrait également savoir que vous devez ajouter le masque en tant qu'enfant du composant masqué, sinon cela ne fonctionnera pas. – Joshua

5

Vous devriez également essayer d'utiliser scrollRect, ce qui sera plus rapide qu'un masque. Introduction au scrollRect de Grant Skinner.