예제 #1
0
        /// <summary>
        /// Disposes resources
        /// </summary>
        /// <param name="disposing">disposed yet?</param>
        protected virtual void Dispose(bool disposing)
        {
            // Check to see if Dispose has already been called.
            if (!_disposed)
            {
                Log.Debug();

                if (disposing)
                {
                    unsubscribeToMouseClickEvents(_currentPanel);

                    // dispose all managed resources.
                    if (_player != null)
                    {
                        _player.Dispose();
                        _player = null;
                    }

                    if (_soundPlayer != null)
                    {
                        _soundPlayer.Dispose();
                    }

                    if (_animationsCollection != null)
                    {
                        _animationsCollection.Dispose();
                    }

                    unsubscribeFromActuatorEvents();
                }

                // Release unmanaged resources.
            }

            _disposed = true;
        }
예제 #2
0
        /// <summary>
        /// Starts the animation sequence for the specified panel. It starts
        /// with the animation that has the 'start' attribute set to true in
        /// the xml file
        /// </summary>
        /// <param name="panelWidget">Which panel to start the animations for?</param>
        /// <param name="animationName">Name of the animation sequence</param>
        public void Start(Widget panelWidget, String animationName = null)
        {
            Log.Debug("Start animation for panel " + panelWidget.Name);

            if (_player != null)
            {
                _player.EvtPlayerStateChanged -= _player_EvtPlayerStateChanged;
                _player.Dispose();
            }

            resetSwitchEventStates();

            _currentPanel = panelWidget;

            subscribeToMouseClickEvents(panelWidget);

            _player = new AnimationPlayer(panelWidget, _interpreter, _variables);
            _player.EvtPlayerStateChanged += _player_EvtPlayerStateChanged;
            _variables.Set(Variables.SelectedWidget, panelWidget);
            _variables.Set(Variables.CurrentPanel, panelWidget);

            // get all the animations for the specified animation name.
            var animations = getAnimations(animationName);

            if (animations == null)
            {
                Log.Error("Could not find animations entry for panel " + panelWidget.Name);
                return;
            }

            // transition to the one that is marked as "first"
            var firstAnimation = animations.GetFirst();
            if (firstAnimation == null)
            {
                return;
            }

            foreach (var animation in animations.Values)
            {
                animation.EvtResolveWidgetChildren += animation_EvtResolveWidgetChildren;
            }

            _firstAnimation = firstAnimation;

            Transition(firstAnimation);
        }
예제 #3
0
        /// <summary>
        /// Disposes resources
        /// </summary>
        /// <param name="disposing">disposed yet?</param>
        protected virtual void Dispose(bool disposing)
        {
            // Check to see if Dispose has already been called.
            if (!_disposed)
            {
                Log.Debug();

                if (disposing)
                {
                    unsubscribeToMouseClickEvents(_currentScreen);

                    // dispose all managed resources.
                    if (_player != null)
                    {
                        _player.Dispose();
                        _player = null;
                    }

                    if (_soundPlayer != null)
                    {
                        _soundPlayer.Dispose();
                    }

                    if (_animationsCollection != null)
                    {
                        _animationsCollection.Dispose();
                    }

                    ActuatorManager.Instance.EvtSwitchActivated -= actuatorManager_EvtSwitchActivated;
                }

                // Release unmanaged resources.
            }

            _disposed = true;
        }
예제 #4
0
 /// <summary>
 /// Initializes the AnimationManager class
 /// </summary>
 public AnimationManager()
 {
     _interpreter = new Interpret();
     _animationsCollection = new AnimationsCollection();
     _soundPlayer = null;
     _currentPanel = null;
     _player = null;
     IsSwitchActive = false;
     _variables = new Variables();
     resetSwitchEventStates();
 }
예제 #5
0
 /// <summary>
 /// Initializes the AnimationManager class
 /// </summary>
 public AnimationManager()
 {
     _interpreter = new Interpret();
     _animationsCollection = new AnimationsCollection();
     _soundPlayer = null;
     _currentScreen = null;
     _player = null;
     _variables = new Variables();
 }