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

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

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

Регистрация: Dec 2008
Адрес: Севастополь
Сообщений: 112
Отправить сообщение для cdc7600 с помощью ICQ
По умолчанию onReleaseOutside на AS3

Регулятор громкости.
Пару тем нашла конечно, но не разобралась, точнее по прежнему не работает выход из функции изменения громкости, если отпускать кнопку мыши вне флешки, может подскажет кто-ньть (=

как определить, что юзер отпустил кнопку за пределами swf ?

Код AS3:
	public function changeVolume(event:MouseEvent):void {
 
			SoundMixer.soundTransform = new SoundTransform(event.currentTarget.mouseX / 48);
 
			//регулирование громкости
			volume_mc.vol_mask_mc.x = event.currentTarget.mouseX;
 
			// слушаем глобальный неработающий маусап
			stage.addEventListener(MouseEvent.MOUSE_UP,piypiy)
 
			//удаляем листенер, если маусап над текущим символом (изменение громкости)			
			volume_mc.addEventListener(MouseEvent.MOUSE_UP,piypiy);
			// рекурсивно changeVolume	что то типа драга
			volume_mc.addEventListener(MouseEvent.MOUSE_MOVE,changeVolume);
 
		}
 
 
		// удаляем рекурсию
	 	public	function piypiy(e:MouseEvent):void {
 
				volume_mc.removeEventListener(MouseEvent.MOUSE_MOVE,changeVolume);
 
			}
__________________
cdc7600.livejournal.com


Последний раз редактировалось cdc7600; 23.06.2009 в 13:51.
Старый 23.06.2009, 12:53
Pushkash вне форума Посмотреть профиль Отправить личное сообщение для Pushkash Найти все сообщения от Pushkash
  № 2  
Ответить с цитированием
Pushkash

Регистрация: Jun 2009
Сообщений: 35
Я так понял changeVolume выполняеться при MOUSE_DOWN...
Возможно будет работать с MouseEvent.CLICK вместо MOUSE_UP.

кстати volume_mc.addEventListener(MouseEvent.MOUSE_UP,piypiy); тоже неплохо бы удалять.

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

Регистрация: Dec 2008
Адрес: Севастополь
Сообщений: 112
Отправить сообщение для cdc7600 с помощью ICQ
неа, не работает
__________________
cdc7600.livejournal.com

Старый 23.06.2009, 13:15
dedsky вне форума Посмотреть профиль Отправить личное сообщение для dedsky Найти все сообщения от dedsky
  № 4  
Ответить с цитированием
dedsky
[+6 16.03.11]
 
Аватар для dedsky

Регистрация: Jul 2004
Адрес: от Москвы до самых до окраин
Сообщений: 172
Вот вариант, пофигу где мышь отпущена
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
 
	/**
	 * volume control
	 * @author dedsky
	 */
	public class  VolumeControl1 extends Sprite
	{
		private var turning:Boolean;
		private var an1:Number;
		private var an2:Number;
 
		public function VolumeControl1()
		{
			turning = false;
			cHandle.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDownListener);
			stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUpListener);
			stage.addEventListener(MouseEvent.MOUSE_MOVE, startTurning);
		}
 
		//мышь нажата над cHandle
		public function onMouseDownListener(event:MouseEvent):void
		{
			turning = true;
			an1 = Math.atan2(cHandle.mouseY, cHandle.mouseX);
		}
 
		//движение мыши
		public function startTurning(event:MouseEvent):void
		{
			if (turning) {
				an2 = Math.atan2(cHandle.mouseY, cHandle.mouseX);
				cHandle.rotation += (an2 - an1) * 180 / Math.PI;
 
				//независимость от скорости воспроизведения
				event.updateAfterEvent();
			}
		}
 
		//кнопка мыши отпущена
		public function onMouseUpListener(event:MouseEvent):void
		{
			turning = false;
		}
	}
}

Старый 23.06.2009, 13:49
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 5  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Я думаю, есть смысл подписывать stage на MouseEvent.MOUSE_UP и MouseEvent.MOUSE_MOVE только после нажатия на cHandle. И отписывать сразу после MouseEvent.MOUSE_UP
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 23.06.2009, 13:51
cdc7600 вне форума Посмотреть профиль Отправить личное сообщение для cdc7600 Найти все сообщения от cdc7600
  № 6  
Ответить с цитированием
cdc7600
 
Аватар для cdc7600

Регистрация: Dec 2008
Адрес: Севастополь
Сообщений: 112
Отправить сообщение для cdc7600 с помощью ICQ
ээ, спасибо, конечно за код, но мне свой как-то понятнее)

вопрос такой, как определить, что юзер отпустил кнопку мыши за пределами swf ?
__________________
cdc7600.livejournal.com

Старый 23.06.2009, 14:09
dedsky вне форума Посмотреть профиль Отправить личное сообщение для dedsky Найти все сообщения от dedsky
  № 7  
Ответить с цитированием
dedsky
[+6 16.03.11]
 
Аватар для dedsky

Регистрация: Jul 2004
Адрес: от Москвы до самых до окраин
Сообщений: 172
Цитата:
Сообщение от cdc7600 Посмотреть сообщение
как определить, что юзер отпустил кнопку мыши за пределами swf ?
рисуете прозрачный спрайт по размерам сцены и определяете для него слушатель события MOUSE_OUT

Старый 23.06.2009, 14:25
fljot вне форума Посмотреть профиль Отправить личное сообщение для fljot Найти все сообщения от fljot
  № 8  
Ответить с цитированием
fljot

блогер
Регистрация: Jul 2007
Сообщений: 940
Записей в блоге: 3
http://www.flasher.ru/forum/showthread.php?t=86312

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

Регистрация: Dec 2008
Адрес: Севастополь
Сообщений: 112
Отправить сообщение для cdc7600 с помощью ICQ
да я читала все эти темы, пол дня убила, уж было думала, что совсем тупая, б. пока флэш не завис, перегрузила — код заработал, жесть, фууух)
спасибо всем)
__________________
cdc7600.livejournal.com

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

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

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


 


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


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