(ActionScript) Изменить ширину фрагмента ролика с помощью маски - PullRequest
2 голосов
/ 13 марта 2010

Есть ли способ маскировать фрагмент ролика таким образом, чтобы изменить ширину и высоту объекта? У меня есть дочерний мувиклип, который имеет большую ширину, поэтому у меня возникают проблемы с манипулированием шириной, высотой и координатами пропорционально родительскому мувиклипу.

Я ценю помощь. Спасибо.

Ответы [ 4 ]

4 голосов
/ 13 марта 2010

У Колина Мука есть хорошая статья на эту тему, в том числе некий громоздкий способ получить видимую ширину и высоту вместо ширины и высоты содержимого посредством растрового изображения:

http://www.moock.org/blog/archives/000292.html

1 голос
/ 17 ноября 2011

Я нашел простой способ в ActionScript.

Сначала создайте класс для мувиклипа, который будет содержать маску и «маскируемый предмет».

этот мувиклип должен иметь одинаковую ширину и высоту маски, чтобы манипулировать данными внутри без изменения размеров фильма.

, чтобы сделать это, я просто переопределяю ширину и высоту этого. Примерно так:

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;

Надеюсь, это поможет!

0 голосов
/ 17 марта 2010

Вы также можете получить размеры самой маски, а не мувиклипа.

0 голосов
/ 13 марта 2010

Это может помочь при работе со свойствами _xscale и _yscale родительского объекта (а не с _height и _width), поскольку они не зависят от размера дочернего объекта.

Так что, если ваш parentClip имеет ширину 50 x 80, то измените его размер до 150 x 160:

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

(Это для AS2, но код будет похож на AS3 ... Ваш вопрос не был конкретным)

...