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

Halfist 13.02.2012 14:18

Точка регистрации
 
Как программно обратиться к точке регистрации текущего фрагмента ролика? Есть ли такое свойство? Нужно "вытащить" её координаты относительно самого фрагмента ролика и / или изменить их.

GBee 13.02.2012 14:22

Эмн x и y, а внутри ролика (0, 0)

Halfist 13.02.2012 14:33

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

Ситуация следующая:

3 - идеальный вариант, когда точка регистрации круга находится в его центре (не мой вариант);
2 - то, что происходит на самом деле, поскольку точка регистрации круга смещена от его центра (мой вариант) на неизвестное расстояние по обеим осям;
1 - как это должно выглядеть в идеале.

GBee 13.02.2012 14:53

getRect по идее поможет

Halfist 13.02.2012 15:12

В моём случае прямоугольник является абстракцией (рисунком на фоне), а не фрагментом ролика. Фрагментом ролика является только круг.

Inet_PC 13.02.2012 15:16

Цитата:

В моём случае прямоугольник является абстракцией (рисунком на фоне), а не фрагментом ролика. Фрагментом ролика является только круг.
Ну а как вы тогда узнавать rect этих абстрактных прямоугольников собираетесь? Задавайте их в программе. А
Цитата:

getRect по идее поможет
Вам вернет точку регистрации. В чем проблема то?

silin 13.02.2012 15:17

>> В моём случае прямоугольник является абстракцией (рисунком на фоне), а не фрагментом ролика

а это неважно, getBounds(или getRect) 'относительно себя' все покажет
Код AS3:

graphics.lineStyle(0);
graphics.drawRect(50,50,100,100);
//круг со случайным смещением
var circle:Sprite = new Sprite();
circle.graphics.beginFill(0xFF0000);
circle.graphics.drawCircle(100 * Math.random(), 100 * Math.random(), 40);
addChild(circle);
 
// 'внутренний' центр
var bounds:Rectangle = circle.getBounds(circle);
var innerCenterX:Number = (bounds.right + bounds.left) / 2;
var innerCenterY:Number = (bounds.bottom + bounds.top) / 2;
 
circle.x = 100 - innerCenterX;
circle.y = 100 - innerCenterY;



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

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