Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   как управлять точкой трансформации (http://www.flasher.ru/forum/showthread.php?t=115255)

darkvam 24.08.2008 17:51

как управлять точкой трансформации
 
Здравствуйте, вот в чём проблемма. в мувике динамически создаю линию. При этом, её необходимо вращать относительно известной точки. Как установить точку трансформации для линии? пробовал transformPoint но не работает. помогите пожалуйста.

Zik. 24.08.2008 19:04

помоему проще нарисовать эту линию сделать нужную точку, за атачить и крутить. :)

darkvam 24.08.2008 20:03

ZIK68
дело в том, что эта линия должна имитировать луч лазера, и длина этого луча долна постоянно изменяться в соответствии с растоянием до блокирующего мувиклипа (в моём случае - космический корабль.) то есть, нужно постоянно проверять расстояние до объекта. Сделать это с помощью готового мувика помоиму труднее, т.к. он будет непрапорционально растягиваться/сжиматься.

Wolsh 24.08.2008 20:11

Проще - рисовать линию ("динамически" же, да?) там где надо. Т.е. чтобы точка трансформации (0,0) была в центре линии.
UPD: В смысле "непропорционально"? Разве это не от Вас зависит? Ставите линии нескалироваться в толщину и всё.

darkvam 24.08.2008 20:17

Wolsh
не проще. во-первых = в этом случа она будет вращаться только относительно центра, а мне же необходимо чтобы линия вращалась относительно одного из своих концов.
Во-вторых - лини (а следовательно и точка трансформации) должны будут свободно перемещаться по ролику. при этом сохраняя свои пропорции. Поэтому, постоянно создавать линию, на уже заведомо знаемых координатах не получиться, - линия создаётся (причём она генерируется постоянно, так должно быть) относительно координат другого мувика, который свободно перемещается и вращается (летательный аппарат например).

да и аттачить готовый мувиклип, при этом точно так же(!) высчитывать координаты поворота и всё же высоты или длины линии (это важно) на мой взгляд не легче чем назначить точку трансформации генерируемой линии.

Wolsh 24.08.2008 21:56

Во-первых, совершенно непонятно чего Вы хотите. Постоянно рисовать линию, зная координаты начала и конца - нефиг делать. Здесь сотня исходников была, где линия рисуется динамически, т.е. всё время удаляется и рисуется новая. Но Вы похоже застопорились на идее вращения, либо я просто не понимаю чего Вы хотите. Почему точка трансформации должна куда-то перемещаться, мне тоже непонятно. Объясните по-человечески. Если это лазер, то ТТ всегда в "стреляющем" объекте - луч ведь из него выходит и крутится соответственно относительно него. Все что нужно знать - угол и расстояние до цели (для вращения) или просто координаты начала и конца - для перерисовки.

darkvam 25.08.2008 09:31

Wolsh
в том то и дело, что луч создаётся из корабля, но вращаться относительно точки начала он не хочет! он вращается, помоиму, относительно 0:0 координат level0. Как же так получается? и как этого избежать? например, создать линию в клипе космического корабля? дайте совет пожалуйста.

darkvam 25.08.2008 11:09

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

qazwsx 25.08.2008 11:21

Ничего не понятно. Может быть стоит все обдумать расписать по поунктам и даже прикрепить рисунок?)

wvxvw 25.08.2008 11:38

Код:

import mx.utils.Delegate;

var laser:MovieClip = this.createEmptyMovieClip("laser", this.getNextHighestDepth());
laser._x = Stage.width / 2;
laser._y = Stage.height / 2;

function mouseMoveDelegate():Void
{
        laser.clear();
        laser.lineStyle(4, 0xFF0000);
        laser.moveTo(0, 0);
        laser.lineTo(laser._xmouse, laser._ymouse);
}

Mouse.addListener(this);
this.onMouseMove = Delegate.create(this, mouseMoveDelegate);

Мож поможет...


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

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