PDA

View Full Version : [FLASH] Come ingrandire un oggetto?


Goz84
13-09-2008, 15:28
Ciao a tutti, come capirete dal titolo del mio thread, ho un problema in Flash. In pratica sto realizzando un'applicazione che contiene un rettangolo. Ogni volta che il mouse passa sopra questo rettangolo deve ingrandirsi di circa il doppio. Sono riuscito a fare questa operazione tramite codice, ovvero tramite on(mouseover), ma l'effetto di ingrandimento è immediato, e non mi piace. Vorrei che questo rettangolo si ingrandisse non immediatamente, ma in modo più rallentato (un pò come gli effetti di Vista). Ho provato a smanettare con la linea temporale inserendo qualche nuovo fotogramma, ma non sono riuscito a fare niente..
Qualcuno sa postarmi qualche link, o addirittura la procedura esatta per ingrandire un oggetto (nel mio caso un rettangolo) al passaggio del mouse e in più fotogrammi?
Grazie a tutti in anticipo..

xciaoatuttix
13-09-2008, 15:58
ciao devi usare l'interpolazione di forma e poi in basso c'e' la barra che si chiama 'andamento' che ti permette di variare l'accelerazione
in base a che tipo di accelerazione vuoi poi inserisci vari fotogrammi nel mezzo :)

Goz84
13-09-2008, 16:10
Ciao, ti ringrazio molto per la risposta. Da come l'ho capita sembra una cosa facile. Ce la fai a spiegarmi passo per passo la procedura? Partiamo dal fotogramma 1 nel quale c'è il mio rettangolo.
Grazie in anticipo!

xciaoatuttix
13-09-2008, 16:50
ok
allora prima crei un rettangolo nel fotogramma 1
poi lo converti in simbolo
poi crei un fotogramma chiave al fotogramma 20 ( ad esempio )
ingrandisci il rettangolo
poi torni al fotogramma 1 e clicchi prima sull'oggetto e poi su DIVIDI nel menu elabora
val al fotogramma 20 e clicchi prima sull'oggetto e poi su DIVIDI
poi clicchi nel mezzo dei due fotogrammi chiave e selezioni 'interpolazione di forma'
poi in basso c'e' andamento che puoi modificare
poi se magari vuoi che prima acceleri di piu all inizio e poi magari riacceceleri alla fine dell'animazione allora inserisci un altro fotogramma nel mezzo e puoi variare i due 'andamenti' ( uno per ogni interpolazione ) :)

xciaoatuttix
13-09-2008, 16:55
andamento è un valore che va da -100 a +100.
con -100 l'accelerazione aumenta gradualmente
con +100 diminuisce gradualmente

Goz84
13-09-2008, 17:09
Grazie mille!!! Adesso come posso far partire questo evento SOLO quando passo sopra al rettangolo con il mouse?

xciaoatuttix
13-09-2008, 17:34
beh devi usare actionscript
nel primo fotogramma scrivi stop()
e poi usi la funzione Onmouserollover o qualcosa del genere non ricordo come si chiama :D

Goz84
13-09-2008, 17:37
Ok, quindi nel primo fotogramma metto stop() per non far partire subito il filmato, poi tramite on(mouseover) come posso dirgli di arrivare al fotogramma 20?

xciaoatuttix
13-09-2008, 17:45
onmouserollover.play()

la sintassi forse è sbagliata ma la logica è questa
usa l'assistente actionscript che ti aiuta quando scrivi l'actionscript :)
al momento non ho installato flash

Goz84
13-09-2008, 17:49
Guarda, sei stato di una gentilezza incredibile.. Grazie mille.. Ascolta, vorrei chiederti l'ultima cosa, poi ti lascio in pace.. Io devo lavorare con 4 di questi rettangoli.. Mi suggerisci di utilizzare tanti livelli quandi sono i rettangoli o non importa? Perchè non ho ben chiaro il funzionamento di un livello..

Goz84
13-09-2008, 17:53
Ah, e per evitare che il rettangolo si ingrandisca in loop infinito ogni volta che ci sono sopra, come posso fare? Vorrei che se sono sopra col mouse si ingrandisca, e rimanga della dimensione grande.. Quando poi esco con il mouse ritorna piccolo.. Grazie mille in anticipo..

xciaoatuttix
13-09-2008, 17:56
con i livelli ti semplifichi la vita ma l'effetto è lo stesso.
ti consiglio di usarli.
servono per dividere il problema in tanti sottoproblemi cosi che ogni livello fa un lavoro diverso e lavorano in parallelo :)

xciaoatuttix
13-09-2008, 18:00
beh devi inserire un altra action stop() al fotogramma 20 per evitare il loop.
per l'altro problema invece puoi usare la funzione 'onmouserollout' oppure puoi smanettare con la funzione 'goto' .
ci sono tanti modi per risolvere un problema. comunque in rete ci sono tante guide su flash ;)

Goz84
13-09-2008, 18:01
Ok, sono riuscito a fare in modo che il mio rettangolo si ingrandisca al passaggio del mouse e che rimanga grande finchè non ne esco. A questo punto, quando esco dal rettangolo con il mouse, il rettangolo deve tornare piccolo. Quindi dovrei fare il procedimento inverso. Come posso procedere? Dal fotogramma 1 al fotogramma 10 si ingrandisce. Adesso faccio che dall'11 al 20 rimpiccilisce? Come posso dire alla funzione on(rollOver) di farmi vedere SOLTANTO i fotogrammi dall'11 al 20?
Grazie mille in anticipo.. Ti metterò nei ringraziamenti della mia tesi!!!

xciaoatuttix
13-09-2008, 18:07
una tesi sul flash ? :D
grazie ma non sono cosi esperto di flash anche se di tanto in tanto lo uso :)

comunque si va bene come dici.
puoi usare ad esempio onmouserollout.goto(11)
cioe' quando il mouse esce fuori dal clip va al fotogramma 11

oppure puoi usare onmouserollout.goto(10).play()


per la sintassi non ne sono sicuro ma la logica è questa
sono rimasto all'actionscript 2 :stordita: