Flash: ridimensionare immagini esterne

Di: Brubru | 26/09/2020 18:11:17
Ciao a tutti.
Ho un problema con il ridimensionamento delle immagini.
Quando carico le immagini da un file esterno, riesco a ridimensionarle con _xscale e _yscale, ma impostando in alternativa i valori di _height e _width non vedo le immagini.
Dove sbaglio ???
Ecco il codice che funziona:
_root["a"+i]._y = ypos;
_root["a"+i]._x = 130+(k*70);
_root["a"+i].loadMovie("Foto/" + _root.imgs[i]);
_root["a"+i]._xscale = 10;
_root["a"+i]._yscale = 10;
Ecco il codice che non funziona:
_root["a"+i]._y = ypos;
_root["a"+i]._x = 130+(k*70);
_root["a"+i].loadMovie("Foto/" + _root.imgs[i]);
_root["a"+i]._width = 64;
_root["a"+i]._height = 48;
Grazie a tutti.

Risposte



Ciao Brubru,
il motivo di questo comportamento è che le immagini vengono caricate all’interno di un MovieClip.
Il caricamento di un oggetto esterno non è mai istantaneo, neanche se visualizziamo il progetto in locale sul nostro hard disk. Stiamo parlando di millisecondi, ma per quanto poco sia il tempo di attesa, non è mai zero.
Nell’intervallo di tempo che passa tra il comando loadMovie e l’effettivo caricamento il MovieClip non ha dimensioni (_width e _height), quindi il controllo di queste proprietà non ha senso, entrambe valgono zero.
Se un MovieClip è largo zero e alto zero, e noi diciamo che deve essere largo 64 pixel e alto 48 pixel non otteniamo risultati in quanto lo zero non si può “allargare”, così alla fine otteniamo un MovieClip largo zero pixel.
In questa situazione ci troviamo di fronte a un problema: Flash ha provato a ridimensionare un MovieClip nullo e si è ritrovato ad annullare le dimensioni di quel MovieClip.
Esattamente come se tu avessi scritto:
_root["a"+i]._width = 0;
_root["a"+i]._height = 0;
Quando l’immagine viene caricata avrà queste dimensioni... ZERO.
Al contrario le impostazioni di scalatura (_xscale e _yscale) impostano la proporzione di scalatura...
A Flash non interessa la grandezza del MovieClip, anche se il contenuto originale cambia sa che deve visualizzare sempre il contenuto proporzionalmente ai valori di scalatura.
Possibili soluzioni:
1. Crea un preload per le immagini e applica il ridimensionamento dopo esserti assicurato che l’immagine è completamente caricata.
2. Considera l’uso di MovieClipLoader e LoadClip (invece che loadMovie), così da poter contare sul metodo onLoadComplete.

Di: Professore | 26/09/2020 18:12:17


Grazie per la risposta Professore
Adesso provo.

Di: Brubru | 26/09/2020 18:12:17


Grande Professore FUNZIONA !!!
Grazie

Di: Brubru | 26/09/2020 18:12:17