如何在Flex中的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>
请注意,lineTo完全离开了UIComponent和Panel。
如何裁剪/裁剪我的UIComponent或Sprite或Panel? alt text http://www.liquidfeline.com/images/stackoverflow.png
我意识到我可以将硬编码的2222更改为更合理的东西,但我需要一个通用的解决方案,因为实际项目不涉及我可以改变的硬编码值,但适用于动态数据
答案 0 :(得分:5)
你也应该尝试使用scrollRect,这将比面具更快的性能。 Grant Skinner的scrollRect简介。
答案 1 :(得分:2)
使用面具。
var mask:Shape = new Shape();
with(mask.graphics)
{
beginFill(0xFFFFFF, 1); // white, opaque
drawRect(0, 0, width, height);
endFill();
}
uic.mask = mask;