Форум 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)
-   -   play(); после stopDrag(); (http://www.flasher.ru/forum/showthread.php?t=129696)

iNils 08.09.2009 18:45

Цитата:

если убрать код со слайдера придется делать задержку при изменении координаты
Не нужно.

unused_name 08.09.2009 18:47

Цитата:

Сообщение от NoCD (Сообщение 849160)
в клипе mc сделана простая анимация, которая во время драга останавливается, а в состоянии покоя продолжает воспроизводить анимацию.

Прошу прощения, опоздал с апдейтом. Анимация слайдера находится в родительском клипе. Т.е. если сам слайдер движется, потом таскается - то, после того как его отпустили, больше он не движется, и никакие play(); и gotoAndPlay() его снова не запускают.

Wolsh 08.09.2009 18:48

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

unused_name 08.09.2009 18:53

Цитата:

Сообщение от iNils (Сообщение 849161)
Не нужно.

Но тогда какая разница, на слайдере этот код, или перед ним стоит attachMovie?
Я имел в виду что проблемы бы такой не возникло, будь анимация програмной, но она как-раз подразумевает все эти задержки, разве нет?

Добавлено через 4 минуты
Цитата:

Сообщение от Wolsh (Сообщение 849166)
В рантайме Вы берете этот объект и перемещаете его в новые координаты. Этот вариант НИКАК не может быть предусмотрен в мультфильме, где этот объект бегал справа налево, и был известен каждый кадр, и его положение в нем четко определено.
Так что всеже разберитесь и решите, мультик Вы делаете или программу. Забиты у Вас положения изначально раз и навсегда или они управляются пользователем. Удачи.

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

iNils 08.09.2009 19:01

Цитата:

Но тогда какая разница, на слайдере этот код, или перед ним стоит attachMovie?
"одна ворона зеленая, другая направо".
Цитата:

Я имел в виду что проблемы бы такой не возникло, будь анимация програмной, но она как-раз подразумевает все эти задержки, разве нет?
Какие еще задержки?

Добавлено через 4 минуты
Код AS1/AS2:

on (press) {
        startDrag (this, false, 0, 0, 550, 0);
        this.onMouseMove = function () {
                var targetFrame:Number;
                targetFrame = Math.round (_root.rooms._totalframes * this._x / 550);
                _root.rooms.gotoAndStop (targetFrame);
        };
}
on (release, releaseOutside, rollOut) {
        stopDrag ();
        delete this.onMouseMove;
        _root.rooms.play ();
}


Wolsh 08.09.2009 19:07

Ок, вот смотрите. Альбом, в котором нарисован мультик - на каждом листе кадр, как мячик падает на асфальт и отпрыгивает. При пролистывании мы видим этот процесс, анимацию. Вы берете и вырезаете мячик из всех страниц и приклеиваете его в верхний левый угол (угол выбран фигурально!)))) И потом Вы спрашиваете - почему же при новом пролистывании альбома Вы не видите, как замечательно мячик падает и отпрыгивает. М?

unused_name 08.09.2009 19:08

Цитата:

Сообщение от iNils (Сообщение 849173)
"одна ворона зеленая, другая направо".
Какие еще задержки?


setInterval в в конструкции mc._x++; - такие задержки. И интервал должен меняться, увеличиваясь пропорционально уменьшению расстояния до точки остановки, что-бы получился аналог ease. Может есть какие-то встроеные классы с реализацией движения с замедлением? типа filter.ease? Или есть более простой и грамотный способ?

Wolsh 08.09.2009 19:12

Этот класс называется Tween.

iNils 08.09.2009 19:16

Цитата:

setInterval в в конструкции mc._x++; - такие задержки.
У вас какие-то проблемы с формулированием и выражением мыслей.
1. О setInterval нигде не шла речь
2. setInterval не может быть в конструкции mc._x++
3. Интервал вряд ли стоит менять, а вот шаг смещения _x вполне.

unused_name 08.09.2009 19:21

Цитата:

Сообщение от Wolsh (Сообщение 849181)
Этот класс называется Tween.

- вот за это спасибо, похоже то что надо =)

Добавлено через 8 минут
Цитата:

Сообщение от iNils (Сообщение 849183)
У вас какие-то проблемы с формулированием и выражением мыслей.
1. О setInterval нигде не шла речь
2. setInterval не может быть в конструкции mc._x++
3. Интервал вряд ли стоит менять, а вот шаг смещения _x вполне.

1. О setInterval я вел речь, когда говорил про задержки в циклах смещения по оси "х".
2. ??? setInterval задает паузу в каждой из итераций цикла, изменяющего значение х, почему его там не может быть?
3. Хм, можно пример? В принципе так наверное лучше чем через паузу...

Добавлено через 11 минут
Делаю через изменение шага смещения. Если не выйдет - буду ковырять tween. iNils спасибо :)


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

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