(ActionScript)使用遮罩更改电影剪辑宽度

(ActionScript)使用遮罩更改电影剪辑宽度,actionscript,masking,Actionscript,Masking,有没有一种方法可以通过改变对象的宽度和高度来遮罩电影剪辑?我有一个宽度较大的子电影剪辑,因此我在按比例操纵父电影剪辑的宽度、高度和坐标时遇到问题 我感谢你的帮助。谢谢。使用父对象的xscale和_yscale属性而不是_高度和_宽度可能会有所帮助,因为它们不受子对象大小的影响 因此,如果您的parentClip是50宽x 80高,那么要将其大小重新调整为150 x 160,您需要这样做 parentClip._xscale=3; parentClip._yscale=2;//still work

有没有一种方法可以通过改变对象的宽度和高度来遮罩电影剪辑?我有一个宽度较大的子电影剪辑,因此我在按比例操纵父电影剪辑的宽度、高度和坐标时遇到问题


我感谢你的帮助。谢谢。

使用父对象的xscale和_yscale属性而不是_高度和_宽度可能会有所帮助,因为它们不受子对象大小的影响

因此,如果您的parentClip是50宽x 80高,那么要将其大小重新调整为150 x 160,您需要这样做

parentClip._xscale=3; parentClip._yscale=2;//still works even after child is added

这是针对AS2的,但代码与AS3类似。。。你的问题不具体

科林·穆克在这里对这个主题有很好的描述,包括一种通过位图获取可见宽度和高度而不是内容宽度和高度的麻烦方法:


您还可以获取面具本身的尺寸,而不是电影唇。

我在actionscript中找到了一种简单的方法

首先为movieclip创建一个类,该类将保存遮罩和要遮罩的项

此movieclip必须具有与遮罩相同的宽度和高度,以便在不更改电影尺寸的情况下操作内部数据

为了做到这一点,我只需覆盖这个的宽度和高度。 大概是这样的:

public class MyMaskedItem extends MovieClip
{
   public var mvMask:MovieClip;
   public var mvContent:MovieClip;

   public function MyMaskedItem() { 
      this.mask = mvMask;
   }

   /**
    * Override width and height properties
    */

   override public function get width():Number { return this.mvMask.width; }

   override public function set width(value:Number):void 
   {
      this.mvMask.width = value;
   }


   override public function get height():Number { return this.mvMask.height; }

   override public function set height(value:Number):void 
   {
      this.mvMask.height = value;
   }
}

现在只需在mvContent电影中添加内容


希望有帮助

谢谢你,拉尔斯,你的推荐帮助了我!如何动态地执行此操作?如果必须对遮罩的名称进行硬编码,则不妨对遮罩的尺寸进行硬编码。