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

Tonik87 31.03.2008 17:50

Поворот стрелки на заданный угол за заданное время?
 
Товарищи, подскажите. :)
Есть картинка - стрелочный прибор. И 2 стрелки (Inst.Name "ST" и "TK" соответственно). Начальное положение стрелок 45 градусов (прописываю в AS) Как сделать чтобы они вращались на заданный переменной угол за заданное так же переменной время? У меня получилось подбором вычислить только скорость вращения, но на разных компах по разному получается...

Obi 31.03.2008 19:17

Код:

var step:Number = 3;
var interval:Number = 1000; // чем меньше, тем выше скорость (в миллисекундах)
function rotateArrow():Void {
  arrowMc._rotation += step;
}
var int:Number = setInterval(rotateArrow, interval);


Tonik87 01.04.2008 00:37

Спасибо огромное. Надеюсь разберусь! :)

divinus 01.04.2008 13:35

лучше конечно через tweener-ы, но можно например вот так:
Код:

MovieClip.prototype.rotate = function(angle, duration){
        delete this.rot_count;       
        this.rotate_target = 0;
        this.rot_count = setInterval(rotating, int(duration/angle), angle, duration, this);       
}
MovieClip.prototype.rotating = function(angle, duration, target){
        if(target.rotate_target>=angle){
                target._rotation = target.rotate_target;
                clearInterval(target.rot_count);
        }else{
                target.rotate_target += angle/duration*100;
                target._rotation = target.rotate_target;
        }
}
arrowMc.rotate(660, 5000);

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

Tonik87 02.04.2008 01:35

Спасибо, добрый человек :)
Можешь немножко прокоментировать для новичка в этих делах? Просто прочитать код не всегда понятно... Хочется как то чтоб отложилось в памяти..

screamge 02.04.2008 02:31

Цитата:

но можно например вот так
Не лучшая практика, через твиннер намного проще и лучше.

udaaff 02.04.2008 02:35

Цитата:

абсолютно все клипы преобретают новое свойство "крутиться"
Нужно еще заметить, что абсолютно всем клипам это свойство ни к чему.

Tonik87 02.04.2008 14:27

Метод предложенный divinus'ом мне очень даже пригодился. Спасибо ему. Необходимо чтобы так крутились 4 объекта. Поэтому :) Вот только не совсем понимаю как это работает! :)

divinus 02.04.2008 17:36

2screamge, согласен, и именно об этом написал в самом начале ответа.
2udaaff, опять таки согласен, но предугадывая развитие вопроса, решил написать именно через прототипы... )
2Tonik87, если хотите понять "как" это работает, читайте про ООП в ActionScript 2.

OPEKX 04.04.2008 21:33

а чё иногда обьект дёргается при вращении?


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

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