2 added 58 characters in body
source | link

The following does something similar to OP's parametric manipulate function. It works without issue in version 8.0.4:

    animFunc[Dynamic[freq1_], Dynamic[freq2_]] := Manipulate[
    ParametricPlot[{a1 Sin[freq1 (x + p1)], 
    a2 Cos[freq2 (x + p2)]}, {x, 0, 20 Pi}, PlotRange -> 1, 
    PerformanceGoal -> "Quality"],
    {{a1, 1}, 0, 1, Animator, AnimationRunning -> False}, {p1, 0, 2 Pi,
    Animator, AnimationRunning -> False}, {{a2, 1}, 0, 1, Animator, 
    AnimationRunning -> False}, {p2, 0, 2 Pi, Animator, 
    AnimationRunning -> False}, ControlPlacement -> Top];

 

Usage example:

    Column[{Slider[Dynamic[y1], {1, 4, .1}], 
    Slider[Dynamic[y2], {1, 4, .1}], animFunc[Dynamic@y1, Dynamic@y2]}]

Screenshots with two different settings:

screenshots

The following does something similar to OP's parametric manipulate function. It works without issue in version 8.0.4:

    animFunc[Dynamic[freq1_], Dynamic[freq2_]] := Manipulate[
    ParametricPlot[{a1 Sin[freq1 (x + p1)], 
    a2 Cos[freq2 (x + p2)]}, {x, 0, 20 Pi}, PlotRange -> 1, 
    PerformanceGoal -> "Quality"],
    {{a1, 1}, 0, 1, Animator, AnimationRunning -> False}, {p1, 0, 2 Pi,
    Animator, AnimationRunning -> False}, {{a2, 1}, 0, 1, Animator, 
    AnimationRunning -> False}, {p2, 0, 2 Pi, Animator, 
    AnimationRunning -> False}, ControlPlacement -> Top];

 
    Column[{Slider[Dynamic[y1], {1, 4, .1}], 
    Slider[Dynamic[y2], {1, 4, .1}], animFunc[Dynamic@y1, Dynamic@y2]}]

screenshots

The following does something similar to OP's parametric manipulate function. It works without issue in version 8.0.4:

    animFunc[Dynamic[freq1_], Dynamic[freq2_]] := Manipulate[
    ParametricPlot[{a1 Sin[freq1 (x + p1)], 
    a2 Cos[freq2 (x + p2)]}, {x, 0, 20 Pi}, PlotRange -> 1, 
    PerformanceGoal -> "Quality"],
    {{a1, 1}, 0, 1, Animator, AnimationRunning -> False}, {p1, 0, 2 Pi,
    Animator, AnimationRunning -> False}, {{a2, 1}, 0, 1, Animator, 
    AnimationRunning -> False}, {p2, 0, 2 Pi, Animator, 
    AnimationRunning -> False}, ControlPlacement -> Top];

Usage example:

    Column[{Slider[Dynamic[y1], {1, 4, .1}], 
    Slider[Dynamic[y2], {1, 4, .1}], animFunc[Dynamic@y1, Dynamic@y2]}]

Screenshots with two different settings:

screenshots

1
source | link

The following does something similar to OP's parametric manipulate function. It works without issue in version 8.0.4:

    animFunc[Dynamic[freq1_], Dynamic[freq2_]] := Manipulate[
    ParametricPlot[{a1 Sin[freq1 (x + p1)], 
    a2 Cos[freq2 (x + p2)]}, {x, 0, 20 Pi}, PlotRange -> 1, 
    PerformanceGoal -> "Quality"],
    {{a1, 1}, 0, 1, Animator, AnimationRunning -> False}, {p1, 0, 2 Pi,
    Animator, AnimationRunning -> False}, {{a2, 1}, 0, 1, Animator, 
    AnimationRunning -> False}, {p2, 0, 2 Pi, Animator, 
    AnimationRunning -> False}, ControlPlacement -> Top];


    Column[{Slider[Dynamic[y1], {1, 4, .1}], 
    Slider[Dynamic[y2], {1, 4, .1}], animFunc[Dynamic@y1, Dynamic@y2]}]

screenshots