Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.05.2012, 00:47
Ylik вне форума Посмотреть профиль Отправить личное сообщение для Ylik Найти все сообщения от Ylik
  № 1  
Ответить с цитированием
Ylik
 
Аватар для Ylik

Регистрация: Sep 2010
Адрес: Saint-Petersburg
Сообщений: 143
Cool проигрыватель swf

Здравствуйте, люди!
Тема не новая, но я всё перерыла, так и не нашла ничего. Поэтому решила задать вам вопрос.
Скажите, пожалуйста, вот как всё-таки связать полосу воспроизведения в одной swf и кадры в другой (подгружающейся) swf, так, чтобы можно было ею управлять: перематывать на любое место (как в плеере).
Пауза и плей - это понятно. А как вот так сделать, чтоб при воспроизведении swf перемещался бегунок на полосе? Или, при его перемещении, swf перематывался на соответствующее место?
Помогите советом, пожалуйста. Это для меня прям загадка.

Старый 15.05.2012, 02:09
AzagThoth вне форума Посмотреть профиль Отправить личное сообщение для AzagThoth Найти все сообщения от AzagThoth
  № 2  
Ответить с цитированием
AzagThoth
 
Аватар для AzagThoth

блогер
Регистрация: Sep 2009
Сообщений: 309
Записей в блоге: 4
Отправить сообщение для AzagThoth с помощью ICQ
Код AS1/AS2:
Class public dynamic class MovieClip 
_currentframe:Number  [read-only]
_totalframes:Number  [read-only]
Остальное в хелпе.
__________________
Играй. Это жизнь.
Всё повторяется. Играй.

Старый 15.05.2012, 14:06
Ylik вне форума Посмотреть профиль Отправить личное сообщение для Ylik Найти все сообщения от Ylik
  № 3  
Ответить с цитированием
Ylik
 
Аватар для Ylik

Регистрация: Sep 2010
Адрес: Saint-Petersburg
Сообщений: 143
Спасибо, но я ничего не поняла

Старый 15.05.2012, 14:53
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 4  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
movie_control_example.rar

Смотрите пример. Если будет непонятно — пишите
__________________
hauts.ru

Старый 15.05.2012, 16:11
Ylik вне форума Посмотреть профиль Отправить личное сообщение для Ylik Найти все сообщения от Ylik
  № 5  
Ответить с цитированием
Ylik
 
Аватар для Ylik

Регистрация: Sep 2010
Адрес: Saint-Petersburg
Сообщений: 143
Тааак, уже что-то похожее на то, что я спрашивала!
Пока пытаюсь разобраться!!!
Там не хватает ваших комментариев.

Добавлено через 10 минут
Начались вопросы:
что такое this.pressed, this.pressStartX - ?

Старый 15.05.2012, 17:00
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 6  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Цитата:
что такое this.pressed, this.pressStartX - ?
pressed - логическая переменная, обозначающая, что кнопка зажата.

pressStartX - численная переменная, хранящая локальное положение мышки на момент нажатия на кнопку. Это для того, чтобы бегунок (кнопка) двигалась "зацепившись" при нажатии тем местом, на которое нажали мышкой.
__________________
hauts.ru

Старый 15.05.2012, 18:09
AzagThoth вне форума Посмотреть профиль Отправить личное сообщение для AzagThoth Найти все сообщения от AzagThoth
  № 7  
Ответить с цитированием
AzagThoth
 
Аватар для AzagThoth

блогер
Регистрация: Sep 2009
Сообщений: 309
Записей в блоге: 4
Отправить сообщение для AzagThoth с помощью ICQ
Цитата:
Сообщение от Ylik Посмотреть сообщение
Спасибо, но я ничего не поняла
Всё достаточно просто. Рисуете скроллер. Программируете его как вам нравится. Затем смотрите общее количество кадров _totalframes подгруженной флешки и при скроллинге высчитываете пропорционально какой точке скроллера соответствует какой кадр от общего количества кадров. Таким образом становится ясно на какой кадр нужно перемотать. Перематываете просто через gotoAndStop(цифраКадра) или gotoAndStop(цифраКадра)
__________________
Играй. Это жизнь.
Всё повторяется. Играй.

Старый 15.05.2012, 19:28
Ylik вне форума Посмотреть профиль Отправить личное сообщение для Ylik Найти все сообщения от Ylik
  № 8  
Ответить с цитированием
Ylik
 
Аватар для Ylik

Регистрация: Sep 2010
Адрес: Saint-Petersburg
Сообщений: 143
Цитата:
Сообщение от AzagThoth Посмотреть сообщение
Всё достаточно просто. Рисуете скроллер. Программируете его как вам нравится. Затем смотрите общее количество кадров _totalframes подгруженной флешки и при скроллинге высчитываете пропорционально какой точке скроллера соответствует какой кадр от общего количества кадров. Таким образом становится ясно на какой кадр нужно перемотать. Перематываете просто через gotoAndStop(цифраКадра) или gotoAndStop(цифраКадра)
Вот этот принцип я и поняла, но я не поняла, каким образом пропорционально высчитывать отношение длины скролла и общего количества кадров флешки.

Я только смогла разобрать присланный исходник, но всё-равно, некоторые вещи остались непонятны.
Например, я не могу найти место в коде, которое означает, что флешка полностью проиграна (и сейчас начнет играть снова).

Старый 16.05.2012, 03:48
AzagThoth вне форума Посмотреть профиль Отправить личное сообщение для AzagThoth Найти все сообщения от AzagThoth
  № 9  
Ответить с цитированием
AzagThoth
 
Аватар для AzagThoth

блогер
Регистрация: Sep 2009
Сообщений: 309
Записей в блоге: 4
Отправить сообщение для AzagThoth с помощью ICQ
Псевдокод
Код:
//определяем отношение в для одного процента кадров и длины
отношениеКадров=флешка.количествоКадров/100;
отношениеДлины=скролл.длинаСкролла/100;
нужныйКадр=округлить(скролл.координатаМыши/отношениеДлины*отношениеКадров);//но прежде убеждаемся, что координата мыши попадает под область скролла например хитТестом
флешка.мотать(нужныйКадр);
Кроме того, чтобы скроллер адекватно реагировал на проигрывание флешки понадобится завести функцию вызываемую по интервалу (интервал наверное будет лучше определить по фреймрейту)
В данной функции читаем текущийФрейм флешки и позиционируем скроллер по считанному значению. Также можно добавить в данной функции сравнение текущегоФрейма и количестваФреймов, так будет просто определить что флешка подошла к концу.
Разумеется это только один из способов. На ум пришло ещё как минимум 4.

И ещё один маленький момент. Разбирать готовый код, для того чтобы решить задачу не самая лучшая практика. Хотя, конечно, у каждого свои методы в решении задач. Но как то вот пришёл к такому умозаключению. Проблема в том, что с готовым кодом проще повторить решение - нежели научиться его генерировать.

Главное не отступайте. Не в этой задаче, не в какой либо другой. И всё обязательно получится. Какой-то щелчок в голове, и решение - вот оно. Проблема в том, что оперируя с готовыми решениями можно так и не придти к этому состоянию.

Удачи вам. Если будут какие вопросы - пишите.
__________________
Играй. Это жизнь.
Всё повторяется. Играй.

Старый 16.05.2012, 14:55
Ylik вне форума Посмотреть профиль Отправить личное сообщение для Ylik Найти все сообщения от Ylik
  № 10  
Ответить с цитированием
Ylik
 
Аватар для Ylik

Регистрация: Sep 2010
Адрес: Saint-Petersburg
Сообщений: 143
Я вот как раз пыталась сделать плеер самостоятельно, но почему-то у меня постоянно что-нибудь не работало (ну и самая большая сложность, что я не смогла сделать - зависимость положения ползунка от кого, на каком кадре проигрывается флешка).
Делала что-то типа того, что вы написали, но немного примитивнее (потому и не работало, видимо).

В том примере, который мне дали здесь, я пыталась задать условие, чтобы при нахождении на последнем кадре, подгружаемая флешка останавливалась. Но оно как-то странно работало (но не так как надо).
Поэтому я не пойму, как ещё определить, что флешка находится на последнем или на 1 кадре.
(То есть при первом запуске первый кадр определяется, а при повторном воспроизведении - нет).

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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