gpt4 book ai didi

flash - 为 Sprite 设置 mask

转载 作者:行者123 更新时间:2023-12-04 05:47:50 25 4
gpt4 key购买 nike

所以我有这个 Sprite ,可以说是任意 100 x 100,它被添加到舞台上。现在,当向该 sprite 添加内容时,该 sprite 会自动展开。我不希望发生这种情况,我想要的是设置一个定义的边界,即 100 x 100,如果添加了太多内容,我可以滚动它。我的问题是我不能像传统方式那样在舞台上添加面具,因为我有许多其他像这样的盒子,它们的尺寸和数量各不相同。我找到了一种方法可以做到这一点,但它非常低效,我所做的是我创建了一个动画片段,用一些颜色填充它说 100x100,然后实例化它。接下来我添加了 sprite,如果内容重叠,它将不可见,只有 100x100。我有点偶然发现了这一点,但不知道为什么会这样。非常感谢任何帮助,谢谢。

这是代码。

//a movieclip with its linkage called containerMasker has a blue square that serves as the mask

var myMasker = new containerMasker(); //the mask
var myContainer = new Sprite(); //the content being masked
//x and y coordinates fixed for both items, width also but no height

myMasker.addChild(myContainer);
addChild(myMasker);

最佳答案

这是标准方式

myContainer.mask = myMasker;addChild(myContainer);addChild(myMasker);

现在,如果您需要对许多盒子执行此操作,您可以创建一个类来处理它

public class MaskedItem extends MovieClip{  public function MaskedItem(params:Object)  {        var masker:Sprite = new Sprite();      masker.graphics.beginFill(0);      masker.graphics.drawRect( 0 , 0 , params.maskWidth , params.maskHeight );      masker.graphics.endFill();      var mc:MovieClip = params.displayObject as MovieClip;      mc.mask = masker;      addChild( masker );      addChild( mc );  }}

那么你可以做

 var mc1:MovieClip = new MaskedItem({maskWidth:100, maskHeight:100 , displayObject:mc1} );

关于flash - 为 Sprite 设置 mask ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3693734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com