1 Reply Latest reply on Jul 12, 2012 6:43 AM by leejk

    Problems Stopping Video

    leejk Level 1



      I am using a TabbedViewNavigatorApplication, and when switching tabs I need video to stop playing. I've looked at the spark video player source code and adapted a function from it that assigns event listeners to all the parents. This code works fine on the current view, but if I switch tabs or go back a view, it does not work... the FlexEvent.Hide listeners don't fire. In the debugger I have verified that the below code does indeed assign the listeners all the way up the parent chain, so I am wondering if either the views are not getting destroyed or I am not using the right listeners. Does anyone know?





                           *  @private

                           *  Add event listeners for SHOW and HIDE on all the ancestors up the parent chain.

                           *  Adding weak event listeners just to be safe.


                          private function addVisibilityListeners():void


                                    var current:IVisualElement = this;


                                    while (current)


        // add visibility listeners to the parent

                                              current.addEventListener(FlexEvent.HIDE, visibilityChangedHandler, false, 0, true);

                                              current.addEventListener(FlexEvent.SHOW, visibilityChangedHandler, false, 0, true);


        // add listeners to the design layer too

                                              if (current.designLayer)


                                                        current.designLayer.addEventListener("layerPropertyChange", designLayer_layerPropertyChangeHandler, false, 0, true);



                                              current = current.parent as IVisualElement;



        • 1. Re: Problems Stopping Video
          leejk Level 1

          I figured this out. When the views are switched, the old view is removed from the stage, therefore the visibility change handler was never getting fired. Solved this by adding a removed from stage event to the video player code to stop it playing.