剪裁/剪雪碧

ygya80vv  于 2022-09-21  发布在  Apache
关注(0)|答案(2)|浏览(114)

如何在Flex中的雪碧上实现裁剪?

<?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被裁剪/裁剪?
(来源:liquidfeline.com)

我意识到我可以将硬编码的2222更改为更合理的值,但我需要一个通用的解决方案来解决这个问题,因为实际项目不涉及我可以更改的硬编码值,而是使用动态数据。

5f0d552i

5f0d552i1#

您还应该尝试使用scllRect,这在性能上会比遮罩更快。来自Grant Skinner的scrollRect简介。

uklbhaso

uklbhaso2#

戴上口罩。

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

相关问题