Форум 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=130118)

kolypaev 17.09.2009 22:53

Вращение картинки вокруг её центра
 
Подскажите как можно вращать картинку за её центр, ане за левый верхний угол.

Наверняка кто то с этим сталкивался

Партизан 17.09.2009 23:17

Нужно сместить центр картинки в контейнере на 0,0 и крутить контейнер. Это проще всего.

kolypaev 17.09.2009 23:21

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

Покажите как?

Партизан 17.09.2009 23:37

Код AS3:

var container:Sprite = new Sprite();
var shape:Shape = new Shape();
shape.graphics.beginFill(0xFF0000);
shape.graphics.drawRect(0,0,100,100);
shape.graphics.endFill();
container.addChild(shape)
 
// смещаем центр на 0,0
shape.x= -shape.width/2;
shape.y= -shape.height/2;
 
 
addChild(container)
container.x=container.y=150;
 
setInterval(rotate,50);
 
function rotate () {
        container.rotation++;
}


FlashRabbit 17.09.2009 23:52

Вот так я думаю правильнее будет.
Код AS3:

var s:Sprite= new Sprite();
s.graphics.beginFill(0x00FF00);
s.graphics.drawRect(0,0,100,100);
s.graphics.endFill();
addChild(s)
 
rotateAroundPoint(s, 45, new Point(s.width * 0.5, s.height * 0.5));
 
function rotateAroundPoint(target:DisplayObject, angle:Number, transformationPoint:Point):void
{
        var m:Matrix = target.transform.matrix;
 
        transformationPoint= m.transformPoint(transformationPoint);
 
        m.tx -= transformationPoint.x;
        m.ty -= transformationPoint.y;
        m.rotate(angle * (Math.PI / 180));
        m.tx += transformationPoint.x;
        m.ty += transformationPoint.y;
        target.transform.matrix = m;
}


kolypaev 17.09.2009 23:55

Спасибо. Вы отлично помогли !

Stargazer 18.09.2009 00:56

Также, если интересно, попробуйте взглянуть на класс MatrixTransformer.


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

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