Clear-SetProperty an Animation anheften?

  • Hallo,

    Ist es möglich ein "Clear" oder "Set Property" direkt an eine Animation zu heften, statt es im onload zu verankern ?

    Das hab ich mal probiert und funktioniert auch soweit.
    Ist aber recht ungenau mit "AlarmClock".
    <onload>XBMC.AlarmClock(AniAn,ClearProperty(StartupANI,Home),00:06)</onload>

    Ich möchte gerne ein Image nach Ablauf der Animation durch ein Statisches Image ersetzen.
    D.h. nach Zeitablauf der Animation ClearProperty auslösen.

    Das hab im Home als Image Steuerung:

    ..und das im onload:

    Code
    <onload>SetProperty(StartupANI,AN,Home)</onload>
    <onload>XBMC.AlarmClock(AniAn,ClearProperty(StartupANI,Home),00:06)</onload>
    <onunload>ClearProperty(StartupANI,Home)</onunload>
    <onunload>CancelAlarm(AniAn)</onunload>

    Würde es aber gerne dem "Zoom" anheften, statt "onload".
    Vielleicht auch als Hidden Animation ohne "texture"
    Irgendwie sowas wie:
    <animation effect="zoom" start="100,0" end="100,100" center="400,300" easing="out" tween="cubic" time="2000" reversible="false" condition="!IsEmpty(Window(Home).Property(StartupANI))">AniAn,ClearProperty(StartupANI,Home)</animation> ;)

    Geht sowas?

    Grüße

  • <animation effect="zoom" start="100,0" end="100,100" center="400,300" easing="out" tween="cubic" time="2000" reversible="false" condition="!IsEmpty(Window(Home).Property(StartupANI))">AniAn,ClearProperty(StartupANI,Home)</animation>

    Geht sowas?

    Nein.

    Dort kannst Du lediglich deffinieren wann eine Animation ausgeführt werden soll. also z.B. "Conditional, WindowOpen, WindowClose, usw. (Link zum .org Wiki)

    noch Nebenbei: (Weis etzt nicht ob das so beabsichtigt war oder nur Beispiel. "effect="zoom" start="100" end="100,100"" macht so imo. nicht viel Sinn. Wenn es Dir nur um eine Verschiebung des Bildes geht -> "Slide" Animation.)


    Ich möchte gerne ein Image nach Ablauf der Animation durch ein Statisches Image ersetzen.

    Durch ein Statisches vom ersten abweichenden?

    Du kannst ein "delai" für eine Animation definieren. Sprich; wenn Du eine "zoom Animation" mit einer Dauer von 2000ms und einem Delai von 0ms setzt kannst Du zB. eine Fade Animation mit einem delai von zB. 1800ms und einer dauer ("time") von 200ms um nach der Animation des ersten Bildes ein weiteres einblenden zu lassen.

    Wilst Du dass das Bild nach ablauf der Animation sich nicht mehr bewegt reicht ein "loop=false".

    EDIT: da war wer schneller.

  • Hallo bg,
    Kein Problem, hast du schon soweit richtig verstanden.
    Das statische Bild ist auch nicht mein Problem.
    Mein Problem ist das animierte Bild.

    Es befindet sich alles in einem Container in einer Fixedlist.
    D.h. taucht das Bild in der Liste auf wird auch die Ani neu ausgelöst.
    Ich möchte gerne das Fenster öffnen-->die ani läuft durch-->und wechselt zum statischen Bild,
    damit diese nicht immer wieder neu anläuft wenn ein punkt in der Fixedlist erscheint. :)

    Grüße

  • Hallo Ratanplan,
    Stimmt..das hat sich alles ein wenig überschnitten ;)
    Schade eigentlich das man das nicht irgendwie verknüpfen kann.

    Dort kannst Du lediglich deffinieren wann eine Animation ausgeführt werden soll. also z.B. "Conditional, WindowOpen, WindowClose, usw

    Das Wiki hab ich jetzt schon 5mal durch.
    Das komische ist, dass WindowOpen hier nicht greifen will ?(

    Vielen lieben Dank für eure Hilfe :)

    Grüße

  • Das komische ist, dass WindowOpen hier nicht greifen will

    Komisch bei keiner Animation? müsste es eigentlich, ausser das image ist beim öffnen des Windows nicht "Visible".
    (ev. liegts aber auch an Deiner "Condition" die muss beim öffnen "true" sein damit das ganze tut.)


  • wirkt sich das delay auch aus wenn du dich in der liste bewegst?
    ich habs jetzt nicht getestet, vielleicht übersehe ich ja was.
    bg

  • Hallo,

    Also ich habs jetzt mal der einfachhalt halber auf ein Image runtergebrochen.
    Das zweite Image am Ende hinzuzufügen und beide mit delays zu steuern, sollte kein Problem darstellen.
    Aber warum wird mit WindowOpen die Ani nicht ausgeführt?

    Code
    <itemlayout height="300" width="300">                
                    <control type="image">
                       <left>0</left>
                       <top>0</top>
                       <width>300</width>
                       <height>300</height>
                       <texture border="0,6,0,6">folder.png</texture>
                      <animation effect="zoom" start="100,0" end="100,100" center="400,300" easing="out" tween="cubic" time="2000" reversible="false" condition="true">WindowOpen</animation>
                      </control>     
    </itemlayout

    Damit findet aber keine Animation statt!
    Kein "visible"o.ä..bleibt einfach statisch voll aufgezoomt beim Aufruf.
    Als wenn keine Animation vorhanden wäre.
    Überseh ich etwas?

    Grüße

  • :) Ja es gibt einen Grund...es wird ein Mainmenü ;)
    Außerhalb der Liste, funktionierts ?(

    Habt ihr noch Ideen?...mir gehen die langsam aus 8|

    Grüße

    PS: ..und mal ein dickes Danke an euch beide.Ihr seid hier immer Feuerwehr bei Code-Problemen.
    ..und nehmt euch auch mal einem Problem an.
    (mir fallen gerade spontan noch 3-4 die mir aushelfen würden)..ohne Namen zu nennen.
    Dafür einfach mal Danke gesagt!

  • Mit WindowOpen wirst du die Animation so nicht sehen. Denn wenn du das Fenster verlässt ist es ein WindowClose.
    Funktioniert es in beide Richtungen nicht?


    Hehe, ich merk schon..man sagte mir schon das ich immer mit so kompliziertem Kram um die Ecke komme. :D
    Jetzt fehlt nur noch pacoma und Max die mir eine klatschen :D
    Von Marc0810 hab ich schon mein Fett weg ;)

    Nein, ich bin erst beim "WindowsOpen"
    Ausgeführt durch ein Skin-Reset.
    Das WindowsClose wird eine ganz andere Ani.
    WindowsOpen wird im Itemlayout einfach nicht ausgeführt.

    Zitat

    Mit WindowOpen wirst du die Animation so nicht sehen


    Hilf mir...Warum das hier nicht möglich sein sollte?

    Danke für deine Hilfe!

    Grüße

  • Von Marc0810 hab ich schon mein Fett weg


    :)

    Hilf mir...Warum das hier nicht möglich sein sollte?

    Also wenn ich mal Spekuliere würde ich sagen windowOpen wird ignoriert weil das verhindert das der Focus gesetzt werden kann?
    Hab mir jetzt nicht den ganzen Code angeschaut wie das Live aussieht in Kodi, kannst das Image nicht einfach Hinter den Container außerhalb setzen?
    Zur not auch eine "leere" Liste und alles außerhalb mit Ofsets..

    Wenn das die aktuelle ist, müsste da nicht das condition="true" raus? Gibts Condition nicht nur bei einer Conditional Animation? Animationen sind ja der graus für mich :) .

    Code
    <animation effect="zoom" start="100,0" end="100,100" center="400,300" easing="out" tween="cubic" time="2000" reversible="false" condition="true">WindowOpen</animation>

    Was wäre wenn das default Control auf einen HiddenButton geht beim WindowOpen und dort im Onfocus zur Liste?. Könnte man dann nicht mit Control.HasFocus die Animation und das Visible steuern?.
    Einmal angestoßen sollte die doch "weiterlaufen"..

    Grüße

  • Hab noch das gefunden:
    Steht im Wiki bei Wraplistcontainer, gilt aber vielleicht für alle..

    Code
    One thing to note is that the only animations available to the sub-controls is the focus animation, or conditional animations. The focus animation is invoked whenever the <focusedlayout> is needed to be used for an item.


    Klingt so als geht dort nur Focus und Conditional..

    Grüße

  • Yep das ist richtig, soweit ich weiss.
    Jedoch kannst du die Animation innerhalb des containers haben. Also vor dem Itemlayout code, gilt aber dann für das gesamte container.

    Focus animation wird da nichts bringen.

    Eher eine conditional animation:

    <animation effect="zoom" start="100,0" end="100,100" center="400,300" easing="out" tween="cubic" time="2000" condition="Window.IsVisible(home)">WindowOpen</animation>

    oder sowas in der Art.

  • <animation effect="zoom" start="100,0" end="100,100" center="400,300" easing="out" tween="cubic" time="2000" condition="Window.IsVisible(home)">WindowOpen</animation>


    Ich schnall das Animationen Zeug einfach nie :whistling: ..
    Müsste das nicht dann
    <animation effect="zoom" start="100,0" end="100,100" center="400,300" easing="out" tween="cubic" time="2000" condition="Window.IsVisible(home)">Conditional</animation>
    sein damit er die Condition überhaupt verwendet? - So hab ich es bisher immer gemacht..

    Window Open mit Delay hab ich nicht mal in einer Group Hinbekommen..
    Ich hab letztens auch was gesucht um nach X Sekunden etwas auszublenden beim Öffnen des Fensters. Der Ignoriert mir das aber immer...

    Grüße

  • Ups sorry, copy paste hat mal wieder zugeschalgen

    Mit den animationen ist es ja so, man probiert bis man zufrieden ist


    :) .. Hatte mich schon gewundert..
    Mein Problem ist eher immer das es dann auf schwachen Rechners wieder anders ist (ist bei mir immer so im Wohnzimmer), oder die Kombination der Windows..
    Das man nichts doppelt animiert.

    Grüße

  • Hallo,

    Gut...steh ich also wieder am Anfang ?(

    Zitat

    <animation effect="zoom" start="100,0" end="100,100" center="400,300"
    easing="out" tween="cubic" time="2000"
    condition="Window.IsVisible(home)">Conditional</animation>


    Geht natürlich, aber leider halt immer wenn Visible(home).

    Zitat

    Jedoch kannst du die Animation innerhalb des containers haben. Also vor dem Itemlayout code, gilt aber dann für das gesamte container.


    Geht auch...ist nur nicht das was ich gerne hätte, weil jeder Eintrag (Images und Labels) eine eigene Animation erhalten müßte.

    Zitat

    Window Open mit Delay hab ich nicht mal in einer Group Hinbekommen..


    Das ganze in einer Group funktioniert auch bei mir nicht, nichtmal WindowsOpen mit Zoom.
    Ich glaub Fixedlist und Wraplist dürfte keinen unterschied machen
    Liegt auch nicht an der Animation, "fade" geht auch nicht :cursing:


    Zitat

    Was wäre wenn das default Control auf einen HiddenButton geht beim WindowOpen und dort im Onfocus zur Liste?. Könnte man dann nicht mit Control.HasFocus die Animation und das Visible steuern?.
    Einmal angestoßen sollte die doch "weiterlaufen"..

    Das Problem ist ja bei einer zweiten "leeren Liste" das sich die "befüllte", auch beim Anistart verschieben könnte.
    Aber hier hast du mich (glaub ich)auf eine Idee gebracht!
    Glaube an dem o.ä.Problem hab ich an deinem doch schon gefriemelt.(Thema Touch) ;)
    Ich probier mal was :)

    Vielen lieben Dank euch allen!
    Grüße

Jetzt mitmachen!

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