2010-06-16 4 views
1

J'ai donc ce panneau ou tout autre composant mxml. Je veux en quelque sorte le faire tourner comme une roue d'une voiture avec laquelle vous le conduisez ... liez un Racing wheel ... semez comme lorsque le bouton de la souris est enfoncé il capture le pont du composant ... lorsque vous déplacez le composant de la souris tourne (pas bouge) en fonction de la nouvelle position de la souris ... Comment faire pivoter composant MXML autour de son centre comme une roue respectueusement à la souris?Comment faire pivoter composant MXML autour de son centre comme une roue respectueusement à la souris?

welll ne hésitez pas à modifier cette question parce que je sais Ive a formulé d'une manière mal ...

Répondre

2

ajouter à une classe utilitaire si vous ne voulez pas ajouter une dépendance à fl.motion. *

/** 
    * Rotates a matrix about a point defined inside the matrix's transformation space. 
    * This can be used to rotate a movie clip around a transformation point inside itself. 
    * 
    * @param m A Matrix instance. 
    * 
    * @param x The x coordinate of the point. 
    * 
    * @param y The y coordinate of the point. 
    * 
    * @param angleDegrees The angle of rotation in degrees. 
    * @playerversion Flash 9.0.28.0 
    * @langversion 3.0 
    * @keyword Matrix, Copy Motion as ActionScript  
    * @see flash.geom.Matrix   
    */ 
    public static function rotateAroundInternalPoint(m:Matrix, x:Number, y:Number, angleDegrees:Number):void 
    { 
     var point:Point = new Point(x, y); 
     point = m.transformPoint(point); 
     m.tx -= point.x; 
     m.ty -= point.y; 
     m.rotate(angleDegrees*(Math.PI/180)); 
     m.tx += point.x; 
     m.ty += point.y; 
    } 



    /** 
    * Rotates a matrix about a point defined outside the matrix's transformation space. 
    * This can be used to rotate a movie clip around a transformation point in its parent. 
    * 
    * @param m A Matrix instance. 
    * 
    * @param x The x coordinate of the point. 
    * 
    * @param y The y coordinate of the point. 
    * 
    * @param angleDegrees The angle of rotation in degrees. 
    * @playerversion Flash 9.0.28.0 
    * @langversion 3.0 
    * @keyword Matrix, Copy Motion as ActionScript  
    * @see flash.geom.Matrix  
    */ 
    public static function rotateAroundExternalPoint(m:Matrix, x:Number, y:Number, angleDegrees:Number):void 
    { 
     m.tx -= x; 
     m.ty -= y; 
     m.rotate(angleDegrees*(Math.PI/180)); 
     m.tx += x; 
     m.ty += y; 
    } 

Ils sont rotateAroundInternalPoint() de MatrixTransformer et rotateAroundExternalPoint()

Ce serait pour 2d. Pour 3d voir transformAround.

N'oubliez pas de vérifier si les frères et sœurs de mise en page sont mis à jour correctement ou non.

HTH

+0

pourriez-vous donner un exemple mxml simple avec une toile ou un groupe? – Rella

+0

2D ou 3D? Jetez un oeil à Flex4Cookbook (http://books.google.co.uk/books?id=sJl-nUYdZjgC&pg=PA102&lpg=PA102&dq=flex+transformAround+sample&source=bl&ots=OnHH9WkZ93&sig=TxPXU2hTHivqgNtL_PJAInz4-9M&hl=fr&ei=l1cwTMXHB9OQjAeJl8SWBg&sa=X&oi= book_result & ct = résultat & resnum = 6 & ved = 0CDAQ6AEwBQ # v = une page & q & f = false) et cette vidéo devnet: http://graphics-geek.blogspot.com/2009/08/video-transform-effects-in-flex-4.html –

0

Je crois que vous pouvez faire pivoter le composant en utilisant les propriétés rotateX, rotateY et rotateZ:

http://docs.huihoo.com/flex/4/mx/core/UIComponent.html#rotationX

Faites juste cela en réponse à un clic de souris.

+0

mais comment changer la position du point de registre (j'utiliser cadre Spark) – Rella

+0

Vous voulez dire que vous voulez changer le point central pour lequel l'élément tourne? Je ne sais pas si c'est possible. vous devrez expérimenter pour le savoir. Si tout le reste échoue, vous pouvez aller à un cadre tel que PaperVision3D ou Away3D. – JeffryHouser

Questions connexes