Sprünge mit beamer overlays und cancel package verhindern
Ich habe bei folgendem Beispiel
    \documentclass[12pt]{beamer}
    \usepackage[utf8]{inputenc}
    \usepackage{cancel}
    \begin{document}
    \begin{frame}
      Beispiel:\par
      $\onslide<2->{\dfrac{x+2}{(x^2-4)}}
       \onslide<3->{= \dfrac{\alt<4->{\cancel{(x+2)}}{(x+2)}}{\alt<4->{\cancel{(x+2)}}{(x+2)}(x-2)}}
       \onslide<5->{= \dfrac{1}{x-2}}$
    \end{frame}
    \end{document}
den Effekt, dass der Text in dem Schritt, in dem (x+2) durchgestrichen wird, springt. Genauer gesagt rückt in diesem Schritt die Zeile "Beispiel:" näher an die mathematische Zeile heran.
Wenn ich die Klammern um (x+2) im Zähler entferne, tritt der Sprung nicht auf.
Kann man den Sprung unter beibehaltung der Klammern verhindern?
**Ergänzung:**
Die Lösung von Herbert mit `\mathstrut` funktioniert in obigem Fall, aber nicht in diesem Beispiel:
    \documentclass[12pt]{beamer}
    \usepackage[utf8]{inputenc}
    \usepackage{cancel}
    \begin{document}
    \begin{frame}
      Beispiel:\par
      $\dfrac{(x+2)^{2\mathstrut}}{x+2}\onslide<2->{= \dfrac{(x+2)^{\alt<3->{\cancel{2}}{2}}}{\alt<3->{\cancel{x+2}}{x+2}}}$\par
    \end{frame}
    \end{document}
Was hier geholfen hat war ein `\vphantom{\cancel{2}}` im ersten Zähler:
    \documentclass[12pt]{beamer}
    \usepackage[utf8]{inputenc}
    \usepackage{cancel}
    \begin{document}
    \begin{frame}
      Beispiel:\par
      $\dfrac{(x+2)^{2\vphantom{\cancel{2}}}}{x+2}\onslide<2->{= \dfrac{(x+2)^{\alt<3->{\cancel{2}}{2}}}{\alt<3->{\cancel{x+2}}{x+2}}}$\par
    \end{frame}
    \end{document}
Wenn man viele Durchstreichungen hat, wird die Sache ziemlich unübersichtlich. Gibt es vielleicht noch einen anderen Weg, den Sprung zu verhindern?