Aspect Ratio и Event.Resize

3 views
Skip to first unread message

Vadim

unread,
Oct 29, 2009, 11:17:38 AM10/29/09
to ruFlash
Добрый день. Мне интересно, есть ли какое-то готовое решение для
сохранения соотношения сторон видео, при динамическом размере окна
браузера. Очень удачно это реализовано вот на этом сайте -
http://www.taibangle.net/ . Проблема остро стоит не только с видео, но
и с любым контентом, который необходимо растянуть на все окно браузера.

Сергей Карнаух

unread,
Oct 29, 2009, 11:53:15 AM10/29/09
to ruFlash
Вот на активдене недавно видел.
http://activeden.net/item/proportional-resizing-and-centering-of-content/64925
http://activeden.net/item/proportional-resizing-and-centering-of-content/full_screen_preview/64925
Написать это "готовое решение" с нуля - 5 мин времени

Vadim

unread,
Oct 29, 2009, 12:16:37 PM10/29/09
to ruFlash
Спасибо, а есть фри и на AS3?

On 29 окт, 19:53, Сергей Карнаух <sergey.fresh.fl...@gmail.com> wrote:
> Вот на активдене недавно видел.http://activeden.net/item/proportional-resizing-and-centering-of-cont...http://activeden.net/item/proportional-resizing-and-centering-of-cont...

DJ_BooM

unread,
Oct 29, 2009, 1:10:02 PM10/29/09
to Vadim
> Спасибо, а есть фри и на AS3?

Используй библиотеку CASALib, в частности org.casalib.util.AlignUtil.

--
С уважением,
DJ_BooM mailto:sto...@sibmail.com

Vadim

unread,
Oct 29, 2009, 2:38:08 PM10/29/09
to ruFlash
Большое спасибо, натыкался уже на нее в интернетах, но не обратил
особого внимания. Учту.

Ruslan Shestopal

unread,
Oct 30, 2009, 10:19:38 AM10/30/09
to ruf...@googlegroups.com
Может я чгото недопонял, но у меня всего лишь такое решение:
  private function resizeHandler(event:Event):void {
   var ms=getFitMaxScaleRatio(160,90,stage.stageWidth,stage.stageHeight);
   frame.height=90*ms;
   frame.width=160*ms;
   frame.x  = stage.stageWidth/2 - (160*ms)/2;
   frame.y = stage.stageHeight/2 - (90*ms)/2;
  }
  private function getFitMaxScaleRatio( w, h, fw, fh ) {
   var s;// scale
   if (w>fw||h>fh) {
    s=Math.min(fw/w,fh/h);
   } else if ( w < fw || h < fh ) {
    s=1/Math.max(w/fw,h/fh);
   } else {
    s=1;
   }
   return s;
  }
 
Сохраняя пропорции, делаем видео максимально возможного размера, отцентровывае его при этом по центру.
--
http://ruslanshestopal.com | -  freelance flash developer and a DJ

Vadim

unread,
Nov 1, 2009, 3:25:26 PM11/1/09
to ruFlash
@ DJ_Boom, я посмотрел конкретно этот класс, но видимо вы ошиблись.
Этот класс лишь отцентровывает обьект по выбранному региону. Нужный
мне клас так же есть в этой библиотеке, называется RatioUtil.

@ Ruslan Shestopal, спасибо, попробую ваше решение.

Reply all
Reply to author
Forward
0 new messages