0

im very nex to action script, но у меня проблема с мувиклипом.установка мувиклипа на 4 координаты

У меня есть 4 coodinates, чтобы они соответствовали подходящему видеоклипу, поэтому каждый угол мувиклипа находится на одной координате.

Единственного, что я мог бы найти его при трансформации его с матрицей и углами (смотрите пример), но они не могут быть лучшим решением для моей задачи рассчитать все углы и т.д.

var degX:Number = 0; 
var degY:Number = 0.3; 

//Get the transform matrix for the object to skew 
var m:Matrix = bild.transform.matrix; 
m.b = Math.tan(degY *(Math.PI/180)); 
m.c = Math.tan(degX *(Math.PI/180)); 

//Apply the matrix to the transform object 
var t:Transform = new Transform(bild); 
t.matrix = m; 

//Apply the skew 
bild.transform = t; 

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

Я пробовал изображение диверсии, поскольку он, кажется, делает exaccty, что ему нужно, но я не могу получить его, чтобы показать свое изображение. координаты работают, если я не комментирую прокомментированную часть, я вижу, что белые перетяжки exaclty там, где они должны быть, но они не удаляются при обновлении, я надеюсь, что вы не сможете помочь мне. вот мой код:

var PointUR:Point = new Point(); 
PointUR.x = values1[0]; 
PointUR.y = values1[1]; 

var PointUL:Point = new Point(); 
PointUL.x = values2[0]; 
PointUL.y = values2[1]; 

var PointBR:Point = new Point(); 
PointBR.x = values3[0]; 
PointBR.y = values3[1]; 

var PointBL:Point = new Point(); 
PointBL.x = values4[0]; 
PointBL.y = values4[1]; 


[Embed(source='MyImage.jpg')] 
var MyImage:Class; 
var shape:Shape = new Shape(); 
var bitmap:Bitmap = new MyImage(); 
var showGrid:Boolean = true; 
var myColorTransform = new ColorTransform(); 
/*myColorTransform.color = 0xFFFFFF; 
shape.transform.colorTransform = myColorTransform; 
shape.graphics.beginFill(0x000000,1); 
addChild(shape);*/ 
var distortion:DistortImage = new DistortImage(267, 400, 3, 3); 
if (showGrid){ 
      shape.graphics.lineStyle(1, 0x00FF00); 
}  
distortion.setTransform(shape.graphics, 
         bitmap.bitmapData, 
         PointUR, 
         PointUL, 
         PointBR, 
         PointBL); 
+0

сделать 4 точки из прямоугольника, параллелограмма или трапеции? – Daniel

+0

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

ответ

2

Преобразование ролика или Sprite в трапецию с использованием матрицы невозможно в as3. Проверьте this link, объясняющую степень возможностей

короче:

enter image description here

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

вот link для блога с демо и источником

Это гораздо легче сделать это с 3D-классов или Матье Badimon-х five3d, искажение части в любом случае, я не знаю, как вы могли бы сделать это, чтобы соответствовать набор контрольных точек.

+0

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

+0

получил его на работу, спасибо –

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