martedì 15 settembre 2015

Copiare i gradienti

I gradienti sono degli effetti grafici molto utili da applicare ai nostri elementi. I dati sono tutti contenuti nella proprietà fillGradient.
Se provate a copiare la proprietà fillGradient, non a ottenere lo stesso gradiente, perchè l'immagine del gradiente è creata da livecode quando la prorietà del gradiente cambia, e utilizza i punti assoluti dello schermo (per far prima).
Per questo motivo, teoricamente, non è possibile creare un modello per i gradienti. Per fortuna questo problema può essere aggirato.
Per copierà il gradiente basta che l'oggetto originale e quello a cui vogliamo applicare il gradiente abbiamo la stessa proprietà rect, cioè occupino lo stesso spazio sullo schermo.
Gradiente copiato correttamente
In pratica si tratta di:

  •  creare il modello
  • spostare gli oggetti nella posizione del modello
  • applicargli lo stesso gradiente
  • rimettere a posto gli oggetti modificati
Che nel codice di livecode significa:


   #graphic 1 è il modello
   put the rect of graphic 2 into temp
   set the rect of graphic 2 to the rect of graphic 1
   set the fillGradient of graphic 2 to the fillgradient of graphic 1
   set the rect of graphic 2 to temp