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

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

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

Регистрация: Feb 2009
Сообщений: 66
По умолчанию seek bar

Здравствуйте) пытаюсь сделать функционал видеоплеера для внедренного на сцену видео.
Застряла на seek bar
Код AS3:
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
bar.addEventListener(MouseEvent.CLICK, barClickHandler);
counter.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
counter.addEventListener(MouseEvent.MOUSE_OUT, mouseUpHandler);
 
function mouseDownHandler(event:MouseEvent):void{
	counter.startDrag(true, new Rectangle(bar.x, counter.y,bar.x+ bar.width, 0));
	gotoAndPlay( int(totalFrames*(bar.mouseX/bar.width)) );
}
 
function mouseUpHandler(event:MouseEvent):void{
	counter.stopDrag();
}
 
function barClickHandler(evt:MouseEvent):void{
	gotoAndPlay( int(totalFrames*(bar.mouseX/bar.width)) );
}
 
function enterFrameHandler(evt:Event):void{
	counter.x = bar.x - counter.width/2 + bar.width*currentFrame/totalFrames;
}
Почему-то драг не работает. Подскажите пожалуйста, как исправить

Добавлено через 5 часов 48 минут
переписала вот так: теперь ползунок не отлипает от движения мыши, после нажатия и отпускания продолжает смотреть на х мыши и кататься по вертикали(
Код AS3:
stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
bar.addEventListener(MouseEvent.CLICK, barClickHandler);
counter.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
counter.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
 
function mouseDownHandler(event:MouseEvent):void{
	stage.removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
	counter.x=mouseX;
	counter.startDrag(false, new Rectangle(bar.x, bar.y, bar.width, 0));
	gotoAndPlay( int(totalFrames*(bar.mouseX/bar.width)) );
}
 
function mouseUpHandler(event:MouseEvent):void{
	counter.stopDrag();
	stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
	}
 
function barClickHandler(evt:MouseEvent):void{
	gotoAndPlay( int(totalFrames*(bar.mouseX/bar.width)) );
}
 
function enterFrameHandler(evt:Event):void{
	counter.x = bar.x - counter.width/2 + bar.width*currentFrame/totalFrames;
}

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

Регистрация: Aug 2007
Адрес: Ukraine, Kyiv
Сообщений: 643
Отправить сообщение для olexandr с помощью ICQ Отправить сообщение для olexandr с помощью MSN Отправить сообщение для olexandr с помощью Skype™
у вас код вообще странно выглядит
как вы представляете себе одновременную работу этих двух конструкций:
Цитата:
Код AS3:
counter.startDrag(...
и
Цитата:
Код AS3:
function enterFrameHandler(evt:Event):void{
	counter.x = ...
}
?
__________________
сайт, vk

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

Регистрация: Feb 2009
Сообщений: 66
ну...вообще пока ползунок не трогаю - можно кликнуть по любому месту на сик-баре и туда каунтер переместится и перейдет на нужный кадр соответственно, если я нажимаю на ползунок, выключаю слушатель бар, что бы не думал, что по нему кликаю, смещаю куда нужно каунтер, отпускаю мышку и снова включаю слушатель на сик бар.

Может быть я не так ваш вопрос поняла?

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
у вас код вообще странно выглядит
как вы представляете себе одновременную работу этих двух конструкций:
А что не так? :о))

Цитата:
переписала вот так: теперь ползунок не отлипает от движения мыши, после нажатия и отпускания продолжает смотреть на х мыши и кататься по вертикали(
В момент нажатия на каунтер - подпишитесь еще к стейджу на маусАп, а в mouseUpHandler отписывайтесь обратно.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

Регистрация: Feb 2009
Сообщений: 66
а что стейджу сказать сделать? я во втором варианте попыталась стейджу сказать видео пока не проигрывать

Добавлено через 57 минут
еще чуток переписала, но теперь другая беда всплыла - если я мышкой с тоненькой полосочки сик бара хоть на пару пикселов по вретикали вылезу - драг на экране не видаен как плавное перемещение объекта, он просто перескакивает в нужный кадр и все.

Код AS3:
import flash.geom.Rectangle;
 
stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
bar.addEventListener(MouseEvent.CLICK, barClickHandler);
counter.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
bar.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
 
function mouseOverHandler(event:MouseEvent):void{
counter.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
counter.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);}
 
function mouseOutHandler(event:MouseEvent):void{
counter.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
counter.stopDrag();
}
 
function mouseDownHandler(event:MouseEvent):void{
	stage.removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
	stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
	counter.x=bar.mouseX+counter.width/2 //+ bar.width*currentFrame/totalFrames;;
	counter.startDrag(true, new Rectangle(bar.x, bar.y, bar.width, 0));
	gotoAndPlay( int(totalFrames*(bar.mouseX/bar.width)) );
}
 
function mouseUpHandler(event:MouseEvent):void{
	counter.stopDrag();
	//counter.x=
	counter.x = bar.mouseX + counter.width/2 //+ bar.width*currentFrame/totalFrames;
	gotoAndPlay( int(totalFrames*(counter.x/bar.width)) );
	stage.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
	stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
		}
 
function barClickHandler(evt:MouseEvent):void{
	gotoAndPlay( int(totalFrames*(bar.mouseX/bar.width)) );
}
 
function enterFrameHandler(evt:Event):void{
	counter.x = bar.x - counter.width/2 + bar.width*currentFrame/totalFrames;
}

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

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

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


 


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


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