PDA

Просмотр полной версии : Ползунок смены кадров.


PHILLIPS
20.11.2011, 02:30
Добрый день всем.
Имеется стандартный ползунок из библиотеки Flash:
http://cs5662.userapi.com/u11318921/doc/3248a266ea18/1.jpg
Необходимо, чтобы при его перетаскивании с определённым шагом менялись кадры на сцене.
Понимаю как это сделать на других языках программирования, на Action Script 2.0 к сожалению не знаю всех функций.
По идее это должно выглядеть так:
Если координата ползунка по y сместилась например на 5 px, тогда gotoAndStop(2);
Если координата ползунка по y сместилась например на 10 px, тогда gotoAndStop(3);
и т.д.

Помогите пожалуйста перевисти с русского на Action Script 2.0.

dark256
20.11.2011, 07:03
Очень абстрактный вопрос.
Стандартный ползунок.Что вы имеете на выходе?
Предположим, что Х-координату.
Имея Х-мин и Х-макс, Math.round(Max-Min/current_pos)*кол-во_шагов вы получаете свой ГоуАндСтоп....

mooncar
20.11.2011, 09:43
Подозреваю, что автор имеет ввиду компонет ScrollBar. Этот компонент стандартный, при инициации он подстраивается под содержащийся в нем контент и абстрактно получить из него произвольную полоску с ползунком без некоторых чрезмерных действий не получится.
Лучше сделайте свой ползунок, беря за основу алгоритм dark'а.

PHILLIPS
20.11.2011, 12:54
Уважаемые, извиняюсь. Я скриншот подкреплял, но видимо, что-то на хостинге случилось.
Вот такой я нашёл ползунок в библиотеке Flash (http://s50.***********/i130/1111/fe/19ee43d287e3.jpg):
http://s50.***********/i130/1111/fe/19ee43d287e3.jpg
Что про него можете сказать?

mooncar
20.11.2011, 13:13
Этот ползунок (н-ся "фейдер") нужно настроить так, чтобы при движении кнопки по шкале вычислялась бы ее координата, и на ее основе нужно будет получить номер кадра.
Можно после нажатия на кнопку запускать в работу обработчик события onMouseMove, и в его теле можно получать эту координату и производить нужные вычисления и подавать команду gotoAndStop.
После отпускания обработчик можно удалить/деактивировать.

PHILLIPS
20.11.2011, 13:18
Сейчас полазил в интернете, нашёл исходник видеопроигрывателя на Flash. Взял оттуда ползунок перемотки, всё хорошо, да только этот ползунок считывает информацию с самого первого кадра, а у меня на первых двух расположенно меню. Т.е получается так: я из меню захожу в программу, а ползунок уже переместился.
http://s017.***********/i419/1111/94/0c6d9d818979.jpg
Поглядите пожалуйста исходник, может кто-нибудь сможе понять, как заставить его считывать кадры начиная с 3-го.

Исходник здесь (www.omgtu.vov.ru/scroll.fla)

mooncar
20.11.2011, 14:08
Вот, накидал пример реализации того, что вам нужно.
Если нужно не с первого кадра, а, например, с 3-го, то строку замените на
var frameNumber:Number = Math.round((_root._totalframes - 3) * ( xPos / slider._width)) + 3;
PS. Понимать, как работает чужое и править под задачи ТС - задачка та еще :)

PHILLIPS
20.11.2011, 21:50
Уважаемый, а можно версию для Flash Professional 8? А то моя 8-ка отказывается открывать.
**********
Спасибо огромное, самостоятельно нашёл конвертер в 8-ку.
Всё работает, как и хотелось. Огромная Вам благодарность за помощь.