Changeset 1238 for trunk/fl5/src/com/longtailvideo/jwplayer/view/components/ControlbarComponentV4.as
- Timestamp:
- 08/25/10 19:40:11 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/fl5/src/com/longtailvideo/jwplayer/view/components/ControlbarComponentV4.as
r979 r1238 11 11 import com.longtailvideo.jwplayer.utils.Draw; 12 12 import com.longtailvideo.jwplayer.utils.Logger; 13 import com.longtailvideo.jwplayer.utils.RootReference; 13 14 import com.longtailvideo.jwplayer.utils.Stacker; 14 15 import com.longtailvideo.jwplayer.utils.Strings; … … 20 21 import flash.display.MovieClip; 21 22 import flash.display.Sprite; 23 import flash.events.Event; 22 24 import flash.events.MouseEvent; 23 25 import flash.geom.ColorTransform; … … 63 65 animations = new Animations(this); 64 66 controlbarConfig = _player.config.pluginConfig("controlbar"); 67 if (controlbarConfig['position'] == "over" && String(controlbarConfig['idlehide']) == "true") { 68 alpha = 0; 69 } 70 65 71 if (!controlbarConfig['margin']) controlbarConfig['margin'] = 0; 66 72 // TODO: Remove Link button … … 88 94 _player.addEventListener(PlaylistEvent.JWPLAYER_PLAYLIST_UPDATED, itemHandler); 89 95 _player.addEventListener(PlaylistEvent.JWPLAYER_PLAYLIST_ITEM, itemHandler); 96 RootReference.stage.addEventListener(Event.MOUSE_LEAVE, mouseLeftStage); 97 RootReference.stage.addEventListener(MouseEvent.MOUSE_MOVE, moveHandler); 90 98 stacker = new Stacker(skin as MovieClip); 91 99 try { … … 366 374 367 375 376 private function get fadeOnTimeout():Boolean { 377 return controlbarConfig['position'] == 'over' || (_player.config.fullscreen && controlbarConfig['position'] != 'none'); 378 } 379 380 private function get hideOnIdle():Boolean { 381 return String(controlbarConfig['idlehide']) == "true"; 382 } 383 368 384 private function startFader():void { 369 if ( controlbarConfig['position'] == 'over' || (_player.config.fullscreen && controlbarConfig['position'] != 'none')) {385 if (fadeOnTimeout) { 370 386 if (!isNaN(hiding)) { 371 387 clearTimeout(hiding); 372 388 } 373 389 hiding = setTimeout(moveTimeout, 2000); 374 _player.controls.display.addEventListener(MouseEvent.MOUSE_MOVE, moveHandler);375 addEventListener(MouseEvent.MOUSE_MOVE, moveHandler);376 390 } 377 391 } 378 392 379 393 private function stopFader():void { 394 if (alpha == 0) { 395 animations.fade(1, 0.5); 396 } 380 397 if (!isNaN(hiding)) { 381 398 clearTimeout(hiding); 382 try { 383 _player.controls.display.removeEventListener(MouseEvent.MOUSE_MOVE, moveHandler); 384 removeEventListener(MouseEvent.MOUSE_MOVE, moveHandler); 385 } catch (e:Error) {} 386 } 387 Mouse.show(); 388 animations.fade(1); 389 } 390 391 /** Show above controlbar on mousemove. **/ 399 Mouse.show(); 400 } 401 } 402 403 /** Show above controlbar on mousemove and restart the countdown. **/ 392 404 private function moveHandler(evt:MouseEvent=null):void { 393 405 if (alpha == 0) { 394 animations.fade(1); 395 } 396 clearTimeout(hiding); 397 hiding = setTimeout(moveTimeout, 2000); 398 Mouse.show(); 399 } 400 406 stopFader(); 407 startFader(); 408 } 409 } 401 410 402 411 /** Hide above controlbar again when move has timed out. **/ 403 private function moveTimeout( ):void {404 animations.fade(0 );412 private function moveTimeout(evt:Event=null):void { 413 animations.fade(0, 0.5); 405 414 Mouse.hide(); 406 415 } 407 416 408 /** Process state changes **/ 417 /** If the mouse leaves the stage, hide the controlbar if position is 'over' **/ 418 private function mouseLeftStage(evt:Event=null):void { 419 if (fadeOnTimeout) { 420 if (_player.state == PlayerState.BUFFERING || _player.state == PlayerState.PLAYING || hideOnIdle) 421 animations.fade(0); 422 } 423 } 424 425 409 426 private function stateHandler(evt:PlayerEvent=null):void { 410 // TODO: Fix non-working fading 411 clearTimeout(hiding); 412 try { 413 switch (_player.state) { 414 case PlayerState.PLAYING: 415 getSkinComponent('playButton').visible = false; 416 getSkinComponent('pauseButton').visible = true; 417 startFader(); 418 break; 419 case PlayerState.PAUSED: 420 getSkinComponent('playButton').visible = true; 421 getSkinComponent('pauseButton').visible = false; 427 switch(_player.state) { 428 case PlayerState.BUFFERING: 429 case PlayerState.PLAYING: 430 getSkinComponent('playButton').visible = false; 431 getSkinComponent('pauseButton').visible = true; 432 startFader(); 433 break; 434 case PlayerState.PAUSED: 435 case PlayerState.IDLE: 436 getSkinComponent('playButton').visible = true; 437 getSkinComponent('pauseButton').visible = false; 438 if (hideOnIdle) { 439 mouseLeftStage(); 440 } else { 422 441 stopFader(); 423 break; 424 case PlayerState.BUFFERING: 425 getSkinComponent('playButton').visible = false; 426 getSkinComponent('pauseButton').visible = true; 427 stopFader(); 428 break; 429 case PlayerState.IDLE: 430 getSkinComponent('playButton').visible = true; 431 getSkinComponent('pauseButton').visible = false; 432 timeHandler(); 433 stopFader(); 434 break; 435 } 436 } catch (e:Error) { 437 } 438 } 439 442 } 443 break; 444 } 445 } 440 446 441 447 /** Process time updates given by the model. **/
Note: See TracChangeset
for help on using the changeset viewer.
