2010-08-10 10 views
0

J'ai un TextField et un Sprite à y = -20; et ils sont dans la position correcte.Pourquoi y a-t-il une différence dans le tweening que je fais quand je tween deux objets?

Ensuite, je fais cette interpolation.

Tweener.addTween(t, {y: 20, time:0.5, transition:"linear"}); 
Tweener.addTween(noteBar, {y: 20, time:0.5, onComplete:Hold, transition:"linear"}); 

(t est le TextField et noteBar est le Sprite)

Que se passe quand je fais est que le Sprite va y = 0; mais le TextField va à y = 20;

Il fonctionne correctement si je l'y TextField à 0 et y Sprite à 20.

Mais je dois le faire pour les remettre dans sa position initiale. Parce que si je laisse le sprite aller -20, il finira par y = -40;

Pourquoi agit-il de cette façon?

+0

Ces éléments sont-ils placés manuellement sur la scène ou créés avec ActionScript? Sont-ils contenus par un autre objet parent? – Aaron

Répondre

1

Lorsque vous dites que "les deux sont à y = -20", utilisez-vous la palette d'informations dans Flash pour le déterminer?

Je demande parce que la palette d'informations a deux modes pour afficher les x, y: Registration et Transformation. Ceci est activé en cliquant sur l'icône du petit point d'enregistrement à gauche du champ X dans la palette d'informations. Le problème est qu'en mode Transformation, le x, y affiché sera le CENTRE du champ de texte, mais en réalité, le x, y d'un champ de texte est le coin supérieur gauche. Donc, la réponse courte est de s'assurer que la palette d'informations est en mode Enregistrement (l'icône avec le réticule) puis placez le champ de texte à -20.

Une autre solution serait d'envelopper le champ de texte dans un sprite de sorte qu'il se comporte de la même manière que NoteBar, dans ce cas, peu importe quel mode la palette info est.

Bien sûr, si vous êtes faire tout cela dans le code, ne pas positionner les éléments dans Flash, ma solution est discutable.

-Gabriel

+0

Je crée tous les éléments dans le code. Donc pour le texte je détermine t.y = -20; et pour le sprite je fais la même chose. –