Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Повернуть картинку загруженную через Loader (http://www.flasher.ru/forum/showthread.php?t=132734)

Felicast 19.11.2009 17:58

дополню:
Код AS3:

yourImage.transform.matrix = m;


Himerets 19.11.2009 18:06

Код AS3:

for (var i:int = 0; i<xmlList.length; i++)
        {
                var tempContainer:Sprite = new Sprite();
                tempContainer.addChild(imgLoader);
                imgLoader.x = 100; //расстояние изображения от центра "круга"
                imgLoader.y = -imgLoader.width/2;
                addChild(tempContainer);
                tempContainer.x = //в центр твоего "круга"
                tempContainer.y = //в центр твоего "круга"
                tempContainer.rotation = i*360/xmlList.length+90;
        }

Я не пробовал. Пробуй. Должно получиться

zakatnov 25.11.2009 20:40

короче сделал как написано тут:
Код AS3:

imgLoader.rotation = i*360/xmlList.length+90;//поправка на 90 град.
imgLoader.x = radius*Math.cos(i*2*Math.PI/xmlList.length)+centerX;//cos и sin принимают в параметры радианы
imgLoader.y = radius*Math.sin(i*2*Math.PI/xmlList.length)+centerY;

получилось так:
http://alexander.zakatnov.ru/1.demo.png

косяк в том, что поворот картинки происходит относительно левого верхнего угла, а не центра, как программно перенести центр картинки, загружаемой через Loader?

Felicast 25.11.2009 22:00

два поста в этой теме: 1, 2

zakatnov 26.11.2009 12:23

Felicast

Мне не подходит решение с помощью матриц, пока что. Поэтому на данный момент мне просто нужно знать как повернуть картинку относительно центра, а не левого верхнего угла :)

dsQuadro 26.11.2009 13:30

засунуть каждую картинку в спрайт и сместить саму картинку на минус пол размера картинки... потом крутить спрайт...

zakatnov 27.11.2009 15:59

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

SamFR 27.11.2009 16:55

zakatnov, вам же Felicast показал хороший вариант. С помощью него можно повернуть объект относительно любой точки, будь то центр, угол или какая-нибудь другая точка.

zakatnov 28.11.2009 15:51

SamFR

просто я никогда не работал с трансформацией, тут что должно быть:
Код AS3:

m.translate(- IMG_WIDTH / 2, - IMG_HEIGHT - radius); //аргументом прям это и передавать? или же тут просто образно написано


Felicast 28.11.2009 16:49

Код AS3:

var m:Matrix = new Matrix();
m.translate(- yourImage.width / 2, - yourImage.height - radius)//если хотите ворочать относительно центра круга
//m.translate(- yourImage.width / 2, - yourImage.height / 2);  //если хотите ворочать относительно центра самой картинки (потом придется еще поменять координаты)
m.rotate(angle); // angle в радианах.
yourImage.transform.matrix = m;
//больше никаких манипуляций с положением не надо



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

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