2011-10-24 2 views
2

Je veux faire pivoter 3D une image appelée img1 dans Flex. Je veux le faire pivoter autour de l'axe des y 180 degrés. Je peux le faire en utilisant l'effet 3D déjà construit en Flex mais je veux faire un peu plus différent. Je veux pendant la rotation, il y a une autre image appelée img2 apparaître à l'arrière de img1 (dans le cas par défaut, l'image apparaît sur le dos est img1) et lors de la fin de la rotation, l'image sera img2.Image Faire pivoter 3D dans Flex, mais afficher une autre image à l'arrière de cette image?

Comment puis-je faire cela?

Merci.

Répondre

0

Si vous n'avez besoin d'aucun effet de perspective, c'est assez facile à faire. Une mise en œuvre brute (non testé!):

// Event.ENTER_FRAME event listener 
void on_enter_frame(event:Event):void 
{ 
    // m_angle is a member of the class/flex component where on_enter_frame is declared 
    // ANGLE_DELTA is just a constant 
    m_angle += ANGLE_DELTA; 
    // Angle clamping to the range [0, PI * 2) 
    m_angle %= Math.PI * 2; 
    if (m_angle < 0) 
     m_angle += Math.PI * 2; 

    // If we currently look at the front side... 
    if (m_angle < Math.PI) 
    { 
     img1.visible = true; 
     img2.visible = false; 
     img1.scaleX = Math.cos(m_angle); 
    } 
    else 
    { 
     img1.visible = false; 
     img2.visible = true; 
     // If you omit negation, the back-side image will be mirrored 
     img2.scaleX = -Math.cos(m_angle); 
    } 
} 

Ainsi, chaque cadre, nous augmentons l'angle de rotation, pince à l'intervalle [0, PI * 2). Ensuite, en fonction de la valeur de l'angle de rotation, nous cachons/montrons la paire de vos images, puis effectuons la mise à l'échelle x de l'image visible.

Questions connexes