ridimensionamento dinamico di assolutamente disegnata componente Flex 4 (codice disegno generato da Catalyst)
-
19-09-2019 - |
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:
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
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