From fc6b9ddabdca4a351df813ccb0a79f54a098c0bf Mon Sep 17 00:00:00 2001 From: Felipe Cecagno Date: Tue, 25 Mar 2014 14:46:19 -0300 Subject: [PATCH] better handling of voice events in the video camera; prettier transition between visible and invisible states in the mute btn --- .../videoconf/views/UserGraphicHolder.mxml | 51 +++++++++++++++++-- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/UserGraphicHolder.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/UserGraphicHolder.mxml index 5bd58e9ae4..8c5069a289 100644 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/UserGraphicHolder.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/UserGraphicHolder.mxml @@ -23,12 +23,15 @@ with BigBlueButton; if not, see . + + . import org.bigbluebutton.common.Images; import org.bigbluebutton.core.EventConstants; + import org.bigbluebutton.main.events.BBBEvent; import org.bigbluebutton.core.events.CoreEvent; import org.bigbluebutton.core.events.VoiceConfEvent; import org.bigbluebutton.core.UsersUtil; @@ -60,6 +64,13 @@ with BigBlueButton; if not, see . private const TITLE_BACKGROUND_TALKING:uint = 0x20c600; private const TITLE_BACKGROUND_NOT_TALKING:uint = 0x42444c; + private var _hideMuteBtnTimer:Timer; + + protected function init():void { + _hideMuteBtnTimer = new Timer(500, 1); + _hideMuteBtnTimer.addEventListener(TimerEvent.TIMER, onHideMuteBtnTimerComplete); + } + protected function onCreationComplete():void { } @@ -174,9 +185,11 @@ with BigBlueButton; if not, see . } if (_rolledOverCanvas || _rolledOverMuteBtn) { - muteBtnWrapper.visible = user.voiceJoined; + // muteBtnWrapper.visible = user.voiceJoined; + setMuteBtnVisibility(user.voiceJoined); } else { - muteBtnWrapper.visible = user.voiceJoined && user.voiceMuted; + // muteBtnWrapper.visible = user.voiceJoined && user.voiceMuted; + setMuteBtnVisibility(user.voiceJoined && user.voiceMuted); } var userIconVisibility:Boolean; @@ -212,9 +225,40 @@ with BigBlueButton; if not, see . } } + private function handleUserVoiceChangedEvent(event:BBBEvent):void { + if (user && event.payload.userID == user.userID) { + updateButtons(); + } + } + + private function onHideMuteBtnTimerComplete(event:TimerEvent):void { + muteBtnWrapper.visible = false; + } + + private function setMuteBtnVisibility(visible:Boolean):void { + if (visible) { + showMuteBtn(); + } else { + hideMuteBtn(); + } + } + + private function hideMuteBtn():void { + _hideMuteBtnTimer.reset(); + _hideMuteBtnTimer.start(); + } + + private function showMuteBtn():void { + _hideMuteBtnTimer.reset(); + muteBtnWrapper.visible = true; + } + ]]> + + + @@ -250,7 +294,8 @@ with BigBlueButton; if not, see . verticalScrollPolicy="off" > + visible="false" + hideEffect="{fadeOut}" showEffect="{fadeIn}" >