2015-07-04 3 views
-2

Я пытаюсь повернуть видео-дисплей в зависимости от угла.
У меня было общее 4 угла 0, -90,90,180.Положение поворота видеоизображения изменено

И я сделать вращение согласно следующим:

if(videoAngle == 180) 
{ 
    videoDisplay.rotation = 180;        
} 
else if(videoAngle == 90) 
{ 
    videoDisplay.rotation = -90; 
} 
else if(videoAngle == -90) 
{ 
    videoDisplay.rotation = 90; 
} 

Это повернуть videoDisplay но х и у позиции изменяется, а также height и width.

Я пробовал много вещей, но не смог.
Есть ли решение для этого?

+1

'Я стараюсь много вещей, чтобы установить это х и у, но не удалось. «как, что ??? .. вы сказали, что ротация работает отлично, и все же вы показываете рабочий код не проблемным кодом? Я бы использовал 'netStream' с объектом' Video', если у вас слишком много проблем, так как они дают лучший контроль над видео. –

+0

Любое решение для чего? Я не могу сказать, что вы пытаетесь сделать здесь. – Brian

+0

Я пробовал как 'videoDisplay.x = 100;' со статическим/фиксированным значением. он будет решать проблему, но не надежен. – ketan

ответ

1

Видеообъект имеет точку поворота, зафиксированную в левом верхнем углу, поэтому вам нужно поместить это видео в контейнер (MC или Sprite) с помощью «x» и «y» в центре видео.

Вы можете сделать это в FLA, но и в коде:

function putInCenter(display:DisplayObject):Sprite { 
    var box:Sprite = new Sprite() 
    display.parent.addChild(box) 
    box.x = display.x + display.width/2 
    box.y = display.y + display.height/2 
    box.addChild(display) 
    display.x = -display.width/2 
    display.y = -display.height/2 
    return box 
} 

var videoBox:Sprite = putInCenter(videoDisplay) 

Теперь вы повернуть этот контейнер вместо «VideoDisplay»

if(videoAngle == 180) 
{ 
    videoBox.rotation = 180 
} 
else if(videoAngle == 90) 
{ 
    videoBox.rotation = -90; 
} 
else if(videoAngle == -90) 
{ 
    videoBox.rotation = 90; 
} 
Смежные вопросы