|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
не получается растянуть видеоролик на весь экран
Всем привет. При заходе на сайт нужно сделать проигрывание преветственного видеоролика.
Вроде ничего сложного, но ни в какую не получается растянуть видео на весь экран... Сначала пробовал через Linked Video - кинул этот компонент на сцену под именем "video". Но чтобы пропорционально растянуть видео, мне сначала нужно узнать width и height подгружаемого видеоролика. Пошукал Адобовский Help - получить метаданные можно через onMetaData, но width и height не возвращаются - получаю undefined. Получается получить только duration. Если я понял правильно из helpa на английском - это зависит от конвертера, который запихивает в видеоролик всякие метаданные... В общем привожу скрипт который я писал: import mx.video.*; var nc:NetConnection = new NetConnection(); nc.connect(null); var ns:NetStream = new NetStream(nc); video.attachVideo(ns); ns.onMetaData = function(infoObject:Object) { trace(infoObject["width"]); // возвращает undefined trace(infoObject["height"]); // возвращает undefined trace(infoObject["duration"]) // возвращает 43.06 }; ns.play("files/video/videoTieser.flv"); На сцену повесил FLVPlayback - "video". Скрипт следующий: import mx.video.*; video.contentPath = "files/video/videoTieser.flv"; video._x=video._y=0; video.width=Stage.width; // ничего не меняет video.height=Stage.height; // ничего не меняет Что я не так делаю - дайте совет как лучше работать с видео - может есть способы намного лучше, а я не знаю про них...? Заранее благодарен за помощь
__________________
кто не отвечает, того garbage collector забирает |
|
|||||
[+1.3 27.09.12]
|
с сохранением пропорций можно отмасшабировать примерно так:
private function resizeVideo (newWidth:Number, newHeight:Number):Void { var monitor_width:Number = Stage.width;; var monitor_height:Number = Stage.height; var propMonitor:Number = monitor_height / monitor_width; var propNewMov:Number = newHeight / newWidth; if(propMonitor < propNewMov){ display._height = monitor_height; display._width = display._height/propNewMov; display._y = 0; display._x = monitor_width / 2 - display._width / 2; }else { display._width = monitor_width; display._height = display._width * propNewMov; display._x = 0; display._y = monitor_height / 2 - display._height / 2; } } здесь логика на новый размер видео потока, аналогично нужно смотреть случай изменения размеров самой флешки. по поводу в "4 раза", скорей всего плюсом масшабируешь сам мувик с видео |
|
|||||
как растянуть видео, сохранив соотношение сторон, в зависимости от изменения размеров самой флэшки я знаю )) но все равно спасибо )
У меня не получалось именно через width и height само увеличение видео окна - он безконтрольно увеличивалось. При использовании FLVPlayback заметил следующее: если размеры видео задать в ресайзе Stage и во время проигрывания видео изменить размеры флеш-окна - то видео окно сразу нормально выстраивается под размеры флешки: var myListener:Object = new Object(); myListener.onResize = function() { // задаем размеры видео }; Stage.addListener(myListener); И второе что понял: при использовании Linked Video все метаданные нормально получил, когда попробовал воткнуть другой видео файл - значит всё и вправду зависит от того, каким конвертером сжато видео в FLV. Так что остановился на втором варианте - получаю через onMetaData ширину и высоту исходного видео файла, и потом уже масштабирую
__________________
кто не отвечает, того garbage collector забирает |
|
|||||
[+1.3 27.09.12]
|
Вы все правильно поняли.
изменение размеров делать только по событию, ловить в onMetaData и onResize. Цитата:
|
Часовой пояс GMT +4, время: 05:54. |
|
« Предыдущая тема | Следующая тема » |
|
|