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

Viktorcor 08.05.2010 22:06

Как прилепить один мувик к мувику вложенному в другой.
 
Вложений: 1
Привязать мувик(mc1) к мувику(mc2) у меня получается без проблем.
На подобе этого кода:

Код AS1/AS2:

_root.mc1._x = _root.mc2._x;
_root.mc1._y = _root.mc2._y;

Но если я пытаюсь копировать положение мувика(mc2a), который вложен в другой(mc2), то естественно копируется не глобальное положение мувика(mc2a), а положение по координатам мувика(mc2) в который он вложен.
тобишь так уже не работет:
Код AS1/AS2:

_root.mc1._x = _root.mc2.mc2a._x;
_root.mc1._y = _root.mc2.mc2a._y;

Ладно бы если бы только положение беда в том что мувик (mc2) вращаться как колесо, а к одной из точек колеса надо приклеить другой мувик(mc1) - это я для примера.

Может есть какое решение?

AS Super 08.05.2010 22:26

Возможно, не совсем правильно понял постановку вопроса.
Относительное положение можно легко превращать в глобальное сложением координат:
Код AS1/AS2:

mc2aglobalx = mc2._x + mc2a._x;

Т.е., исправляя твой код, получится:
Код AS1/AS2:

_root.mc1._x = _root.mc2._x + _root.mc2.mc2a._x;
_root.mc1._y = _root.mc2._y + _root.mc2.mc2a._y;

Вычеслять эту точку можно таким же способом.

mooncar 08.05.2010 22:31

Для этого есть методы MovieClip.localToGlobal и MovieClip.globalToLocal.
Смотрите хелп.

Viktorcor 08.05.2010 23:33

Тупо сложение к сожалению не поможет надо учитывать вращение мувика(mc2).
А остальное посмотрим спасибо!)

Tails 09.05.2010 00:06

Viktorcor
Тоже парился когдато над такойже ситуацией :)

http://www.flasher.ru/forum/showthread.php?t=121735

Viktorcor 09.05.2010 18:11

:) Ооо круто! сейчас попробую. Спасибо!))

Viktorcor 09.05.2010 20:08

Вложений: 1
Вообщем всё получилось, вот такой код в итоге:
Код AS1/AS2:

// на сцене 2 клипа:
// 1-ый с названием Fire и 2-ой с названием bahna, также внутри второго имееться клип FirePoint
 
// вращение мувика bahna плюс цикл с функцией задержки.
setInterval(cor,10);
 
function cor() {
        _root.xm = _root._xmouse;
        _root.ym = _root._ymouse;
        _root.bahna._rotation_root.ym * (1);
 
// САМА ФУН-ИЯ
function getXandY() {
        // пифагор
        dlina=Math.sqrt(((targetClip._y*targetClip._y)+(targetClip._x*targetClip._x)));
        // ugol
        delta_x = -targetClip._x;
        delta_y = -targetClip._y;
        ugol = (-Math.atan2(delta_x, delta_y)/(Math.PI/180))-90;
        //raschet
        resultX=targetClipRoditel._x+ (dlina*Math.cos((targetClipRoditel._rotation+ugol)*(Math.PI/180)));
        resultY =targetClipRoditel._y+ (dlina*Math.sin((targetClipRoditel._rotation+ugol)*(Math.PI/180)));
        resultRotation=targetClipRoditel._rotation;
}
//
//
// Теперь пробуем её использовать
// Задаём ей цель
targetClipRoditel = _root["bahna"];
targetClip=targetClipRoditel["FirePoint"];
// Врубаем фун-ию
getXandY();
// Функция выводит нам нужные кординаты, которые в последущем можно свободно использовать, например так:
_root.Fire._x=resultX;
_root.Fire._y=resultY;
_root.Fire._rotation=resultRotation;
}

Tails
:) - Спасибо большое выручил.! )


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

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