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

Cloo 27.12.2005 17:49

Хитрое вращение клипа
 
Пытаюсь сделать программное прямолинейное перемещение мувика с одновременным вращением.
Причём вращение должно быть вокруг одной постоянной точки, стоящей на месте, а на деле центр вращения с перемещением клипа тоже меняет своё положение.
Так вот можно ли как-то центр вращения менять программно, чтобы в итоге он всегда оставался на одном месте?

Поиском нашёл что-то про local to global, но как это применить в данном случае?..

KidsKilla 27.12.2005 17:54

можешь вручную нарисовать чего ты ты хзочешь, а то соовсем не понятно...

Badim 27.12.2005 18:03

а ты перемещай обект(mc) внутри вращаемого объекта.
типа:
в parent_mc объекте есть child_mc.
//
this.onEnterFrame=function() {
parent_mc._rotation++;
parent_mc.child_mc._x++;}
//
в итоге получиться что обект вращаеться, и уплывает от центра

Iv 27.12.2005 21:21

Код:

this.createEmptyMovieClip("square_mc", 0)
this.square_mc.beginFill(0xCCCCCC, 100)
this.square_mc.lineTo(100, 0)
this.square_mc.lineTo(100, 100)
this.square_mc.lineTo(0, 100)
this.square_mc.endFill()
this.square_mc._x = this.square_mc._y = 100
this.square_mc.onEnterFrame = function() {
        this.setRotation(this._rotation+1, this.x_center, this.y_center)
        // this._x ++
}
this.square_mc.setRotation = function (rotation, x_center, y_center) {
        var old_obj = {x:x_center, y:y_center}
        var new_obj = {x:x_center, y:y_center}
        this.localToGlobal(old_obj)
        this._rotation = rotation
        this.localToGlobal(new_obj)
        this._x +=old_obj.x-new_obj.x
        this._y +=old_obj.y-new_obj.y
}
this.square_mc.onPress = function  () {
        this.x_center = this._xmouse
        this.y_center = this._ymouse
}


Cloo 27.12.2005 22:50

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

KUZEN 27.12.2005 22:51

Цитата:

Сообщение от Cloo
Мм.. да, немного непонятно.. вращение там вторично, главным образом объект перемещается прямолинейно..
В общем, надо показывать.. попозже будет..

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

Cloo 28.12.2005 10:09

Вложений: 1
Да. Наверное, этого достаточно, но соображалка перед Новым Годом плохо работает :(
...
В архиве fla-файл (MX 2004). Шкала, которая движется вертикально сверху вниз, поворачивается и уходит влево, поскольку центр вращения находится на белой разграничивающей линии, которая видна в начале анимации. А нужно, чтобы цифры на шкале (10...50) находились посередине области прибора...

Жень Шень 28.12.2005 11:41

Вложений: 1
Привет!
Если честно, то небыло времени просмотреть твой исходник.
Но, посмотри, может мой подойдет?
Правда, координаты смещения у меня вручную задаються (это поправимо :) ). А вот центр вращения постоянен.

Cloo 28.12.2005 12:35

Спасибо всем большое. Наиболее простым и подходящим в данной ситуации оказался способ Бадима :)
По сути всё просто, но сам не додумался, почему-то... :)


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

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