Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Перемещение графики внутри sprite.graphics (http://www.flasher.ru/forum/showthread.php?t=193486)

Alexmody 28.01.2013 13:13

Перемещение графики внутри sprite.graphics
 
Есть спрайт, в котором прорисован зеленый шейп прямоугольник через свойство sprite.graphics. Но особенность заключается в том, что он находится в минусовых координатах и вот мне теперь надо переместить его посередке относительно центра. Каким образом можно переместит графику внутри sprite.graphics?

http://i.pixs.ru/storage/9/1/1/Untit...15_6945911.jpg

Один из вариантов, поместить исходный спрайт в новый спрайт контейнер и уже просто переместить с помощью x/y, но хотелось бы обойтись без лишнего контейнера.

СлаваRa 28.01.2013 13:15

перерисовать графику

strangedk 28.01.2013 13:49

рисуйте уже с середины.
Код AS3:

sprite.graphics.drawRect(-20,-20, 20, 20) // Квадрат 40*40


irigm 08.02.2013 14:15

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

                        protected function pnlMy_mouseMoveHandler(event:MouseEvent):void
                        {
                                if(g_Down)
                                {
                                        sve.graphics.beginFill( 0xFFFFFF );
                                        sve.graphics.drawRect( 0, 0, sve.width, sve.height);
                                        sve.graphics.endFill();
 
                                        g_MLMoveX += event.localX - g_MLDownX;
                                        g_MLMoveY += event.localY - g_MLDownY;
 
                                        var mtx:Matrix = new Matrix();
                                        mtx.translate(g_MLMoveX, g_MLMoveY);
                                        sve.graphics.beginBitmapFill(bitmapData,mtx,false,false);
                                        sve.graphics.drawRect(g_MLMoveX, g_MLMoveY, bitmapData.width, bitmapData.height);                       
                                        sve.graphics.endFill();
 
                                        g_MLDownX=event.localX;
                                        g_MLDownY=event.localY;
                                }
 
                        }


iflamberg 08.02.2013 14:21

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

Hauts 08.02.2013 14:29

irigm, используйте sve.graphics.clear() перед новой отрисовкой.

iflamberg 08.02.2013 14:36

Эх, не с той ноги встал. Откоцал неуместный сарказм.


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

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