ridimensionamento dinamico di assolutamente disegnata componente Flex 4 (codice disegno generato da Catalyst)

StackOverflow https://stackoverflow.com/questions/2236245

Domanda

Ho qualche codice generato da Flash Catalyst, e ho bisogno di essere ridimensionabile e ruotabile.

Al momento, non ho idea di come ottenere questo accada.

L'idea di base è:

  • Ho un mulino a vento .
  • mulino a vento contiene windmillBlades .
  • windmillBlades Ruota.
  • mulino a vento ridimensiona.
  • Quando il mulino a vento ridimensiona, il windmillBlades dovrebbe scalare in modo dinamico con il mulino a vento .

Il codice che segue è uno schema semplificato della struttura di un'applicazione demo ho preparato, pronto da incollare nel vostro IDE:

http://gist.github.com/300207

Si prega di verificare    la fonte e vedere se si può aiutare    perché questo è mission critical    per me. : /

<s:Group id="windmill" width="50" height="200">
    <s:Group id="windmillBlades" resizeMode="scale" verticalCenter="0" horizontalCenter="0">
         <s:Line xFrom="0" xTo="140" yFrom="0" yTo="140">
            <s:stroke>
                <s:SolidColorStroke color="0xBC311E" weight="16" />
            </s:stroke>
        </s:Line>        
    </s:Group>
</s:Group>

Grazie!

modifica:. Nota: questo è un'astrazione della mia applicazione reale, io non sto costruendo un simulatore mulino a vento

È stato utile?

Soluzione

Questo funziona:

<s:Group id="windmill" width="50" height="200" x="400" y="400">
    <s:Group id="windmillBlades" resizeMode="scale" width="100%" height="100%">
         <s:Line xFrom="0" xTo="140" yFrom="0" yTo="140">
            <s:stroke>
                <s:SolidColorStroke color="0xBC311E" weight="16" />
            </s:stroke>
        </s:Line>        
    </s:Group>
</s:Group>

<s:VGroup>
    <s:HSlider id="scaler"
        minimum=".1" maximum="2" snapInterval=".01"
        valueCommit="{windmill.scaleX = windmill.scaleY = scaler.value}"/>
    <s:HSlider id="rotator"
        minimum="0" maximum="360" snapInterval="1"
        valueCommit="{windmill.rotation = rotator.value}"/>
</s:VGroup>

Non sto a che il modo migliore per fare un mulino a vento completo (con s: Linea e tutti, probabilmente solo un ripetitore?), Ma questo è un buon modo per la rotazione del mulino a vento. Invece di ruotare ogni linea (lotti di calcolo), basta ruotare l'intero gruppo. E se la larghezza e l'altezza windmillBladles sono al 100%, si scalano automaticamente con il gruppo.

Se si vuole fare le pale ruotano ogni individualmente intorno al loro centro, che è molto più difficile. Per fortuna c'è il metodo ILayoutElement#transformAround (che ha UIComponent), che consente di ruotare / scala / trasformare intorno ad un centro arbitrario. Provare a utilizzare che se questo suona meglio.

In bocca al lupo, Lance

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top