2

所以我有这个添加到舞台的任意 100 x 100 的精灵。现在,当内容被添加到这个精灵时,精灵会自动展开。我不希望这种情况发生,我想要的是设置一个定义的边界,即 100 x 100,如果添加了太多内容,我可以滚动它。我的问题是我不能像传统方式那样在舞台上添加面具,因为我有许多其他这样的盒子,它们的尺寸和数量各不相同。我找到了一种方法可以做到这一点,但效率很低,我所做的是我创建了一个动画剪辑,用一些颜色填充它,比如 100x100,然后实例化它。接下来我添加了精灵,如果内容重叠,它将不可见,只有 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);
4

1 回答 1

7

这是标准方式

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

现在,如果你需要用很多盒子来做这个,你可以创建一个类来处理它

公共类 MaskedItem 扩展了 MovieClip
{
  公共函数MaskedItem(参数:对象)
  {  
      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 = 掩码器;

      addChild(掩码);
      addChild(mc);
  }
}

那么你可以做

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

于 2010-09-12T04:42:12.497 回答