J'ai 2 DisplayObject, l'un contenant l'autre comme le code ci-dessous:rotation Actionscript sur 2 axes différent de 1 axe
var sprite1:Sprite = new Sprite();
sprite1.addChild(loader1); // assume that I have load picture on to loader1
loader1.rotationZ = 30;
sprite1.rotationZ = -30;
Si je lance le code ci-dessus, l'image sur loader1 regardera comme il n » t été tourné du tout parce que son conteneur tourne dans la direction opposée. Ce qui est correct, comme ce que je m'attendais.
Mais, si j'avais rotation à axes multiples au code:
loader1.rotationZ = 30;
loader1.rotationY = 50;
sprite1.rotationZ = -30;
sprite1.rotationY = -50;
Maintenant, loader1 tourne dans angle différent. Ma question est la suivante: pourquoi cela ne se compense pas? Notez que les positions x, y, z de loader1 et de sprite1 sont toutes à 0,0,0. Et ce problème se produit indépendamment de la rotation X, Y ou Z. Si vous avez 1 axe, cela fonctionne très bien. 2 axes, ce ne sera pas.
Je poste cet exemple de code parce que j'essaie de comprendre comment Flash tourne en 3D. Dans le document AS3, il prétend qu'il tourne autour de son "conteneur parent 3D" Qu'est-ce que c'est?
Je suis assez sûr que le problème ici a à voir avec la multiplication des matrices, ce qui peut être vraiment compliqué. J'espère que quelqu'un avec une connaissance plus large de la 3D sera en mesure de vous donner une réponse définitive. ne pouvez-vous pas charger vos images en tant qu'objets d'affichage indépendants placés au-dessus de vos sprites en rotation? – TheDarkIn1978
Mon problème actuel est trop complexe pour expliquer ou mettre en place un exemple de code. Mais juste ce point qui cause les erreurs. Je voudrais comprendre comment cela fonctionne – ohm