У меня есть 2 DisplayObject, один из которых содержит другой, как показано ниже:
var sprite1:Sprite = new Sprite();</p>
<p>sprite1.addChild(loader1); // assume that I have load picture on to loader1</p>
<p>loader1.rotationZ = 30;</p>
<p>sprite1.rotationZ = -30;
Если я выполню приведенный выше код, изображение на loader1 будет выглядеть так, как будто оно вообще не вращалось, потому что его контейнер вращается в противоположном направлении. Что правильно, как я и ожидал.
Но если бы у меня было вращение на несколько осей к коду:
loader1.rotationZ = 30;</p>
<p>loader1.rotationY = 50;</p>
<p>sprite1.rotationZ = -30;</p>
<p>sprite1.rotationY = -50;
Теперь loader1 будет вращаться под другим углом. Мой вопрос: почему это не компенсирует друг друга?
Обратите внимание, что позиции x, y, z в loader1 и sprite1 находятся в 0,0,0. И эта проблема возникает независимо от поворота X, Y или Z. Если у вас есть 1 ось, она работает нормально. 2 оси, это не так.
Я публикую этот пример кода, потому что я пытаюсь понять, как Flash вращается в 3D. В документе AS3 утверждается, что он вращается вокруг своего «родительского контейнера 3D». Что это?