Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Вращение вокруг своей оси (http://www.flasher.ru/forum/showthread.php?t=207302)

Akopalipsis 07.04.2014 20:48

Цитата:

Точка регистрации у объекта? Да в центре объекта.
А что делать если объект не нарисован в адоби? Ведь если даже менять координаты,
чтобы казалось, что центр всегда в центре, то это не поможет, одна сторона ведь всегда не измена...?

samana 07.04.2014 20:54

Цитата:

Сообщение от Akopalipsis (Сообщение 1163155)
А что делать если объект не нарисован в адоби? Ведь если даже менять координаты,
чтобы казалось, что центр всегда в центре, то это не поможет, одна сторона ведь всегда не измена...?

Но ведь можно нарисовать программно и так, чтобы визуально центр графики находился в точке регистрации. Либо если это картинки, то сместить их. Или можно положить спрайт в другой спрайт, и отцентрировать его.
p.s. А может я не совсем правильно понял ваш вопрос...

Akopalipsis 07.04.2014 21:15

samana Спасибо! Вы правильно поняли.
Просто я почему-то плохо отношусь к отрисовать в ещё один или сместить центр при рисовании.
Но в данном случаи, наверное по другому уже не как не получится..

samana 07.04.2014 21:32

Цитата:

Сообщение от Akopalipsis (Сообщение 1163158)
Просто я почему-то плохо отношусь к отрисовать в ещё один или сместить центр при рисовании.

Я думаю вам не нужно заморачиваться по этому поводу :) и даже использовать всё что можно для достижение необходимого результата. Сместить графику в объекте, совершенно не запрещено и не является плохим тоном. Ну что же делать если нужно закрутить вентилятор? Конечно легче поставить центр графики в точку регистрации спрайта, чтобы завертелось, а не использовать дополнительные преобразования матрицы объекта)

caseyryan 07.04.2014 21:49

Цитата:

а не использовать дополнительные преобразования матрицы объекта)
Тем более, что за кадром то именно это и произойдет

tihomir 08.04.2014 09:03

Я так понял совсем избавиться от этого эффекта нельзя?

Rivexe 08.04.2014 11:40

tihomir, покажите скриншот как у вас получилось и по возможности картинку, как вы бы хотели что бы получилось.

tihomir 08.04.2014 15:39

Вложений: 2
1 скриншот как получилось 2 как должен по идее поворачиваться(такой результат получился в процессе создания анимации движения на таймлайне, просто делаем отразить по горизонтали и пока проигрывается анимация он поворачивается)


Ууууу блин, вторая картинка не та(( Но думаю суть ясна, что при повороте объект не растягивается вправо

Rivexe 08.04.2014 16:15

Вложений: 2
Скорее всего у вашего клипа стоит точка привязки не по центру или вы не поменяли projectionCenter.

Должно вращаться вот так:
test_3.swf   (58.3 Кб)


Если не хотите заморачиваться с projectionCenter, то вместо rotationY просто меняйте scaleX
test_4.swf   (58.2 Кб)

Код AS3:

import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
 
var test:MovieClip = new Test();
test.x = stage.stageWidth * .5;
test.y = stage.stageHeight * .5;
addChild(test);
 
test.addEventListener(Event.ENTER_FRAME, loop);
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
 
var t:Number = 0;
var s:Number = 0.05;
function loop(e:Event):void
{
        test.scaleX = Math.sin(t+=s);
}
 
function mouseMoveHandler(e:MouseEvent):void
{
        test.x = e.stageX;
        test.y = e.stageY;
}


Akopalipsis 08.04.2014 16:20

Положите картинку в Sprite и сместите её так, чтобы её середина была в точке регистрации спрайта и задайте свойству projectionCenter
координаты этого спрайта.


Часовой пояс GMT +4, время: 22:45.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.