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

Ritochka 20.05.2007 18:46

Управление покадровой анимацией
 
добрый день! приятных выходных! Помогите мне решить такую задачу: есть куча картинок фотоаппарата с разных сторон (покадрово), импортирую их во флеш, где они раскладываються по кадрам, компилирую и получаю вращающийся фотоаппарат. Тут все классно, но надо теперь этот фотик используя курсор мышки вращать влево-вправо, вверх или вниз, вообщем на 360 градусов, как такое можно сделать, помогите пожалуйста! как такое можно сделать используя Action Script! спасибо!

BigDan 20.05.2007 19:37

Ставишь "метки" в мувике, в зависимости от нажатой клавиши переходишь на нужный кадр(метку).

Ritochka 20.05.2007 22:36

BigDan! если можно расскажи как?

BigDan 20.05.2007 22:40

есть ,например, участок нужной анимации с 10 по 20 кадр.
Код:

right_btn.onPress = function(){
 if(mc._currentframe < 20){
  mc.nextFrame();
 }
}
left_btn.onPress = function(){
 if(mc._currentframe > 10){
  mc.prevFrame();
 }
}

Что-то в этом роде

Ritochka 21.05.2007 00:44

BigDan! Это Вы мне показали как управлять, если есть кнопки влево или вправо, а как перемещаться по фреймам, используя курсор мышки!

Ritochka 21.05.2007 00:45

просто я тут видела нечто подобное на сайте viewpoint.ru! и хотелось во флеше используя курсор мышки вращать фигуру в разные стороны! Спасибо!

Therion 21.05.2007 00:54

можно так
Код:

_root.onEnterFrame=function(){
        if(_xmouse>200{
 if(this._currentframe < 70){
  this.nextFrame();
 }}
 if(_xmouse<200){
 if(this._currentframe >0){
  this.prevFrame();
 }}


Ritochka 21.05.2007 01:14

Therion! Вставила Ваши код в 1-й фрейм и попробовала, с помощью мышки пройтись по фреймам, не работает! Может я что-то не так делаю?

Therion 21.05.2007 01:26

а где находится вся анимация? В каком-то мувике или прямо на сцене?

Ritochka 21.05.2007 01:42

Вся анимация находиться в мувике figura, и в этом мувике внутри стоит stop() в первом кадре, чтоб покадровая анимация не начала играться!

Therion 21.05.2007 02:03

Цитата:

Сообщение от Ritochka
Вся анимация находиться в мувике figura, и в этом мувике внутри стоит stop() в первом кадре, чтоб покадровая анимация не начала играться!

значит везде где стоит "this" заменяем на имя мувика "figura"
соответственно не забудь поменять максимальное число кадров(цифра 70)

Ritochka 21.05.2007 02:10

Therion! Все хорошо! работает, но мне надо при нажатии на мышку, вращать фигуру влево или вправо! такое можно сделать?

Therion 21.05.2007 02:21

замени "onEnterFrame" на "onMouseDown"

Ritochka 21.05.2007 02:29

Therion! Все классно! можно еще один вопрос, дело в том что щас при нажатии мышки переходит по кадрам, а можно ли, чтоб нажав и держа мышку, оно само переходило по кадрам? если можно? то расскажите как? очень Вас прошу!

Therion 21.05.2007 02:40

Код:

F = 2;
_root.onMouseDown = function() {
        F = 1;
};
_root.onMouseUp = function() {
        F = 2;
};
_root.onEnterFrame = function() {
        if (F == 1) {
                if (_xmouse>200) {
                        if (this._currentframe<70) {
                                this.nextFrame();
                        }
                }
                if (_xmouse<200) {
                        if (this._currentframe>0) {
                                this.prevFrame();
                        }
                }
        }
};

вот так должно работать

Ritochka 21.05.2007 12:18

дело в том что прокрутка проходит по кругу по кадрам, и фигура вращаеться сверху вниз, а надо чтоб еще было и снизу вверх! Как такое можно сделать?

Therion 21.05.2007 18:52

Код:

min = 1;
max = 70;
_root.onMouseDown = function() {
        F = 1;
};
_root.onMouseUp = function() {
        F = 2;
};
_root.onEnterFrame = function() {
        if (F == 1) {
                if (_xmouse>200) {
                        this.nextFrame();
                        if(this._currentframe==max){
                                gotoAndPlay(min)
                        }
                }
                if (_xmouse<200) {
                        if(this._currentframe==min){
                                gotoAndPlay(max)
                        }
                        this.prevFrame();
                }
        }
};
stop();



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

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