2014-09-04 3 views
0

Я хочу изменить четыре угла (Corner Pin) FLVPlayback, используя сценарий действия, например, ниже.Как изменить четыре угла FLVPlayback с помощью скрипта действий?

enter image description here

Существуют ли какие-либо методы для достижения этой задачи от сценария действий?

+0

Вы хотите перейти от первого изображения до последнего или преобразовать b между ними? – helloflash

+0

Я хочу переместить (вверх, вниз, влево, вправо) один угол flvplayback, используя сценарий действия, такой как B-образ. – Suravi

+0

Есть ли способ сделать это для Flvplayback? http://www.flashandmath.com/advanced/p10triangles/method.html – Suravi

ответ

1

Вы можете использовать DistortImage Class.

Оригинальная версия класса ActionScript 2.0 была написана Томасом Пфайффером (aka kiroukou), вдохновленным Андре Мишель (andre-michelle.com). Ruben Swieringa переписал класс Томаса Пфайффера в ActionScript 3.0, внеся некоторые незначительные изменения/дополнения.

Описание: Демо-версия from Ruben Swieringa.

Этот класс работает с Bitmap image. Он должен быть адаптирован к flvplayback component, используя метод draw для каждого enterFrame.

Порядок функционирования

Вы сначала получаете the AS3 Class here.

Вы размещаете этот код в .as file и назовите его DistortImage. Вы помещаете этот файл в эту иерархию папок: org> flashsandy> diqplay>DistortImage.as

У вас есть MovieClip связанный DragBtn в вашей библиотеке. Вы поместите следующий код в панели ACTIONSCRIPT вашего .fla:

import org.flashsandy.display.*; 

vidPlayer.source = 'http://www.helpexamples.com/flash/video/caption_video.flv'; 
vidPlayer.scaleMode = 'exactFit'; 
vidPlayer.skin = null; 
vidPlayer.visible = false; // we only see the Bitmap drawn 

var C:Sprite= new Sprite(); // Sprite container 
C.x = C.y = 100; // video position 
this.addChild(C); 

var shape:Shape = new Shape(); 
this.C.addChild(shape); 

var iw:int = vidPlayer.width; 
var ih:int = vidPlayer.height; 

var distortion:DistortImage = new DistortImage(iw, ih, 2, 2); 
var bitmapData:BitmapData = new BitmapData(iw, ih); 
var center:Point; 

function getDisplayObjectCenter(child:DisplayObject, x:Number = 0, y:Number = 0):Point { 
    center = new Point(); 
    center.x = child.x + child.width/2 + x; 
    center.y = child.y + child.height/2 + y; 
    return center; 
} 

function Enter(e:Event):void { 
    this.shape.graphics.clear(); 
    this.bitmapData.draw(vidPlayer); // video drawn enterFrame 
    distortion.setTransform(this.shape.graphics, 
          this.bitmapData, 
          this.getDisplayObjectCenter(this.d1, 0, 0), 
          this.getDisplayObjectCenter(this.d2, 0, 0), 
          this.getDisplayObjectCenter(this.d3, 0, 0), 
          this.getDisplayObjectCenter(this.d4, 0, 0)); 
} 
addEventListener(Event.ENTER_FRAME, Enter); 

var d1:DragBtn = new DragBtn(); 
d1.x = d1.y = 0; 
this.C.addChild(d1); 

var d2:DragBtn = new DragBtn(); 
d2.x = iw; 
d2.y = 0; 
this.C.addChild(d2); 

var d3:DragBtn = new DragBtn(); 
d3.x = iw; 
d3.y = ih - 60; 
this.C.addChild(d3); 

var d4:DragBtn = new DragBtn(); 
d4.x = 0; 
d4.y = ih - 60; 
this.C.addChild(d4); 

d1.addEventListener(MouseEvent.MOUSE_DOWN, drag); 
d2.addEventListener(MouseEvent.MOUSE_DOWN, drag); 
d3.addEventListener(MouseEvent.MOUSE_DOWN, drag); 
d4.addEventListener(MouseEvent.MOUSE_DOWN, drag); 
function drag(e:MouseEvent):void {e.target.startDrag();} 

addEventListener(MouseEvent.MOUSE_UP, up); 
function up(e:MouseEvent):void {stopDrag();} 

Результат

Затем вы можете деформировать видео подобное:

enter image description here

Метод flashandmath вероятно также подходит для видео.

+0

Спасибо, helloflash ... когда я пытаюсь перетащить из углов после ошибки. "TypeError: Ошибка # 1006: startDrag не является функцией. \t at Distort_fla :: MainTimeline/drag() ' – Suravi

+0

@pudubu - Это потому, что ваша кнопка перетаскивания является экземпляром' Button Class'. Вам просто нужно нажать на DragButton в своей библиотеке> Свойства> Тип> 'MovieClip'. Или создать MovieClip с именем DragButton. – helloflash

+0

@pudubu - Это работает? – helloflash

Смежные вопросы