Problem mit Animationen in Containern

  • Hi,

    leider muss ich euch wieder belästigen, denn ich stehe wieder vor einem für mich unerklärlichem Problem.

    Und zwar bin ich gerade dabei ein Skin (ähnlich zu xperience1080) zu basteln. Hier navigiere ich über eine Wraplist durch verschiedene Panels, welche je nach der Navigation entweder nach links oder rechts sliden sollen.

    [daten]

    <include name="HomeSettings">
    <!-- Settings -->
    <control type="panel" id="800">

    <visible>Container(10).HasFocus(8)</visible>
    <animation effect="slide" start="1920" end="0" time="2000" condition="Container(10).OnScrollNext">Visible</animation>
    <animation effect="slide" start="0" end="-1920" time="2000" condition="Container(10).OnScrollNext">Hidden</animation>
    <animation effect="slide" start="-1920" end="0" time="2000" condition="Container(10).OnScrollPrevious">Visible</animation>
    <animation effect="slide" start="0" end="1920" time="2000" condition="Container(10).OnScrollPrevious">Hidden</animation>
    ...
    </control>
    </include>
    [/daten]


    Das Problem ist, wenn ich nun beispielsweise nur nach links scrolle, werden die einzelnen Panels sauber geslidet und dargestellt. Navigiere ich aber nun nach rechts (hier z.b. auf panel 800), erscheint erstmal gar nchts. Scrolle ich aber ein Panel weiter, sehe ich kurz das Panel 800 an der gewünschten Position 0, wird aber direkt ausgeblendet, da die Bedingung Conainer(10).HasFocus(8) nicht mehr passt.

    Hoffe ich konnte das Problem einigermaßen verständlich beschreiben. Ansonsten versuche ich morgen ein Video davon zu erstellen.

    Hoffe mir kann da jemand helfen.

    Grüße

  • Hallo,

    Leider etwas zu wenig infos für mich der vieles auch durch Versuche nach dem "try and error" Prinzip ergründet:).

    Hast mal OnNext statt OnscrollNext Versucht?
    Eventuell hilft auch ein allowhiddenfocus = true beim visible des Containers.
    Möglich das der so nicht "hidden" wird.

    Grüße

  • Hallo,

    Schade:)

    Hast versucht aus den Animationen Visible und Hidden mal Conditional´s zu machen?
    Scheint ja so als wird das Visible oder Hidden offenbar nicht als solches erkannt wenn nichts passiert..
    Dann hast wenigstens schon eine Eingrenzung und weißt es muss am OnNext liegen..

    Ich glaub aber dennoch du brauchst zusätzlich noch im visible des Panels ein <visible allowhiddenfocus="true">...
    Sonst bekommst doch eigentlich keinen Focus auf das Panel wenn es mal Hidden war?..

    Grüße

  • Hi,

    werde es heute Abend nochmals testen.
    Allerdings funktioniert es prinzipiell, die Container sliden.
    Mit den Angaben, die ich gemacht habe, funktioniert das sliden nach rechts durchgängig ohne Probleme. Wenn ich hingegen nach links slide, dann verhaut es mir vermutlich irgendwie die Position, denn ich sehe die Container nur "vorbeihuschen" bzw. werden nur kurz angezeigt, wenn ich im eigentlich schon nächstem Container bin. Slide ich daraufhin wieder nach rechts, passt es auch hier nicht mehr.

    Ich denke es muss mit start und end in der Animation zusammenhängen. Hier muss ich wohl einen denkfehler haben :/

  • Hi,

    also habe neue Erkentnisse.
    Schonmal voarb: Hat alles nichts gebracgt. Habe es eben auch mit Helix getestet.

    Meine Menubar ist folgendermaßen aufgebaut:
    [daten]

    <item id="1">
    <description>Home</description>
    <label>10000</label>
    <onclick>noop</onclick>
    </item>
    <item id="2">
    <description>Movies</description>
    <label>342</label>
    <onclick>noop</onclick>
    </item>
    <item id="3">
    <description>TV Shows</description>
    <label>20343</label>
    <onclick>noop</onclick>
    </item>
    <item id="4">
    <description>Music</description>
    <label>2</label>
    <onclick>noop</onclick>
    </item>
    <item id="5">
    <description>Games</description>
    <label>15016</label>
    <onclick>noop</onclick>
    </item>
    <item id="6">
    <description>Programs</description>
    <label>0</label>
    <onclick>noop</onclick>
    </item>
    <item id="7">
    <description>Weather</description>
    <label>8</label>
    <onclick>noop</onclick>
    </item>
    <item id="8">
    <description>Settings</description>
    <label>5</label>
    <onclick>noop</onclick>
    </item>
    [/daten]


    Mein Ziel ist es ja, wie bereits erwähnt, je nach ausgewähltem Menüpunkt den entsprechenden Container einzublenden.
    Soweit funktioniert es wunderbar.
    Allerdings hätte ich gern dazu die Animation, dass die Container reingeslidet werde. Also konktet:
    Scrolle ich in der Menübar nach rechts, soll der entsprechende Container von rechts in die Bildschirmmitte erscheinen. Das Gegenteilige soll geschehen, wenn ich in der Menubar nach links Scrolle. Hier sollen die Container dann von links in die Bildschirmmitte erscheinen. Und genau hier hab ich das Problem.

    Wenn ich erstmal nur folgende Animation einbaue (für das Scrolling nach links) gibt es keine Probleme:
    [daten] <animation effect="slide" start="-1920" end="0" time="600" tween="sine" easing="out" condition="Container(10).OnPrevious">Visible</animation>
    <animation effect="slide" start="0" end="1920" time="600" tween="sine" easing="out" condition="Container(10).OnPrevious">Hidden</animation>
    [/daten]


    Das Gleiche für das Scrolling nach rechts. Auch hier gibt es keine Probleme:
    [daten] <animation effect="slide" start="1920" end="0" time="600" tween="sine" easing="out" condition="Container(10).OnNext">Visible</animation>
    <animation effect="slide" start="0" end="-1920" time="600" tween="sine" easing="out" condition="Container(10).OnNext">Hidden</animation>
    [/daten]


    Mach ich aber die beide Richtungen die Animationen, treten die Probleme auf:
    [daten] <animation effect="slide" start="-1920" end="0" time="600" tween="sine" easing="out" condition="Container(10).OnPrevious">Visible</animation>
    <animation effect="slide" start="0" end="1920" time="600" tween="sine" easing="out" condition="Container(10).OnPrevious">Hidden</animation>
    <animation effect="slide" start="1920" end="0" time="600" tween="sine" easing="out" condition="Container(10).OnNext">Visible</animation>
    <animation effect="slide" start="0" end="-1920" time="600" tween="sine" easing="out" condition="Container(10).OnNext">Hidden</animation>
    [/daten]


    Bei mir verhält es sich nun so, dass das rechts scrolling weiterhin problemlos funktioniert. Wenn ich aber nach links scrolle, und über das erste Item komme (in diesem Beispiel Home), werden die Container merkwürdig übersprungen. Beispielsweise wird dann der Container Settings erst reingescrollt, wenn ich bereits auf Weather bin. Und hier wird es auch nur ganz kurz angezeigt, denn sobald die Animation durch ist, verschwindet der Container, da ja in der Menübar der Focus nicht auf Settings, sondern auf Weather gesetzt ist.

    Würde mich ja echt interessieren, ob es sich hier um einen Bug handelt, oder ich einfach nur zu dumm bin.

    Grüße

  • Hallo,

    Ich werd heut Abend auch mal mein Glück versuchen:).
    Aus Erfahrung würd ich aber eher sagen das es an uns liegt ;).

    Visible und Hidden Animationen sind so eine Sache. Ich hab auch welche bei mir drin die nur beim Öffnen und Schließen eines Fensters ausgelöst werden, und nicht wenn im selben Fenster die sichtbarkeit wechselt.
    Teilweise kommt das vor wenn es Includes sind. Die werden nur beim Laden eines Fensters geprüft soweit ich weiß. Aber an anderen Stellen will es einfach nur bei Reload oder Öffnen Funktionieren.

    Falls ich zu nem Ergebnisse komme Meld ich mich.
    Viel Glück einstweilen ;)

  • Schon etwas schlauer,

    Also so funktionierts scheinbar bei mir:

    Oder eben mit dem angesprochenen allowhiddenfocus:

    Die werden wenn ich nach rechts und Links mich in der Wraplist bewegen rein und rausgeslidet.
    Vielleicht hilft dir das weiter:)

    Grüße

  • Hi,

    Danke für die Mühe. Aber in deinem Beispiel ist es ja so, dass immer von rechts nach links geslidet wird, egal ob ich in der wraplist nach links oder rechts scrolle.
    Bei mir treten die Probleme erst auf, wenn ich es abhängig von der Richtung mache, bei der ich in der wraplist scrolle.

    Wie gesagt, wenn ich in der wraplist nach rechts scolle, sollen die Container von rechts nach links sliden. Scrolle ich hingegen nach links, sollen die Container von links nach rechts sliden

  • Hallo,

    Sorry, dann kann ich dir leider auch nicht helfen. Wenn sowas Überhaupt geht weiß ich auch nicht wie.
    Schade das man für sowas nicht einfach x Container in eine Grouplist Packen, und die dann mit Control.Move Synchron mitscrollen lassen kann.

    Vielleicht findet sich ja noch einer von den Fachleuten der dir weiterhlefen kann..
    Aber eine Einfache Geschichte wird das sicher nicht. Wenn man sich mal den Code deines Vorbild anschaut;).

    Grüße

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!