Как получить все анимации на компоненте, чтобы можно было их уничтожить до завершения? - PullRequest
1 голос
/ 18 ноября 2011

Когда я выбираю элемент на моей странице, я запрашиваю анимацию Json и , запускающую для переходов страниц с использованием goog.fx.dom.FadeInAndShow и goog.fx.dom.FadeOutAndHide.

Если щелкнуть элемент, а затем быстро щелкнуть другой элемент, запрос отменяется, и данные последнего клика заполняются, однако анимации не полностью завершаются после предыдущего щелчка, что приводит к входящемуинформация, которая будет затронута предыдущими анимациями END.

Мне интересно, есть ли что-то вроде getAnimations в компоненте, который будет иметь анимации, а затем сможет .destroy() их до завершения.

1 Ответ

1 голос
/ 22 ноября 2011

Если ваши анимации привязаны к goog.ui.Component (или любому другому объекту, расширяющему goog.Disposable), то после создания каждой анимации вы можете зарегистрировать анимацию в компоненте с помощью метода registerDisposable () компонента / одноразового использования. .

Таким образом, вы можете удалить компонент (вызвав его метод dispose ()), который вызовет dispose () для всех зарегистрированных одноразовых объектов. Глядя на goog.fx.Animation, когда вызывается dispose (), вызывается метод stop (), поэтому я считаю, что это должно сработать.

Вы также можете просто создать goog. Одноразовый с целью регистрации на нем анимации и утилизации всех из одного места. Тем не менее, если вы зарегистрируете много анимаций и не вызываете dispose до тех пор, пока они не понадобятся, у вас будет утечка памяти, потому что это предотвратит сборку мусора анимациями.

...