2017-09-29 6 views
1

Prenons un exemple à partir du SDK Roku docs:Comment changer l'interpolateur (s) sur un noeud d'animation Roku Scenegraph?

<Animation id="transAnimation" 
     duration="1" 
     repeat="true" 
     easeFunction="linear" > 
    <Vector2DFieldInterpolator id = "myInterp2" 
     key="[0.0, 1.0]" 
     keyValue="[ [640.0, 320.0], [100.0, 100.0] ]" 
    fieldToInterp="myPoster.translation" /> 
</Animation> 

Après que je l'ai fait une trouvaille sur « transAnimation » est-il possible de changer le interpolateur dans le code brightscript? Il y a des interpolateurs présents dans le XML, mais après la construction du SceneGraph, ils n'apparaissent plus en tant qu'enfants de mon nœud d'animation.

Répondre

3

Oui, vous pouvez le faire, trouver les interpolateurs avec m.top.findNode et modifier la valeur inverse comme si

myInterp2 = m.top.findNode("myInterp2") 
myInterp2.reverse = true 

En supposant que c'est un élément à bascule permet, vous aurez besoin de désinitialiser l'inverse l'animation originale:

myInterp2 = m.top.findNode("myInterp2") 
myInterp2.reverse = false 

Cependant, je vient de traverser cette dernière semaine et pour une raison quelconque ne pouvait pas obtenir de travailler sur Roku 4 bien qu'elle ait 7,7 (a bien fonctionné sur 1, 3 et ultra mais R4 ça ne s'est pas inversé?!), donc plutôt que de faire des bêtises pendant des heures, je suis retourné à l'ajout d'un animation séparée pour gérer l'inverse.

+0

Donc, pas moyen de répéter sur les interpolateurs? Je suppose que je devrais connaître leurs noms a priori. –

+0

juste si vous avez un tas d'interpolateurs vous devez obtenir chacun avec m.top.findNode, autant que je sache. –