come faccio a spostare un movie clip quando ci passo sopra?
(flash mx)
ciao
Riccardo
come faccio a spostare un movie clip quando ci passo sopra?
(flash mx)
ciao
Riccardo
http://www.2rlab.com
God save the colours!
Ciao Rak..![]()
In che modo vorresti spostarlo?
In tanto dovrai verificare quando il mouse è sopra il mc.
Puoi farlo in diversi modi.
Ad es puoi associare semplicemente un evento rollOver.
Sul mc metti:
on(rollOver){
//sposta mc
_x+=5
_y+=5
}
Questo farà in modo di spostare il mc di 5 px verso destra e verso il basso.
Ma tu come vorresti che si spostasse?![]()
Installa Forum HTML.it Toolset per una fruizione ottimale del Forum
vorrei ottenere qst effetto qui
che puoi vedere nell'album di fotografie
... da quello che ho intuito sono una serie di mc che vengono spostati tramite una funzione, ma dal momento che di as non so una mazza anche avendo la funzione che potrebbe spostare i valori non so come utilizzarla
una funzione che ho trovato è questa, ma non so ne dove metterere la funzione, ne come inviare le coordinate alla funzione... mi potresti dare una mano?
function movDec(clip,vel,x,y){
clip.onEnterFrame = function() {
var a=Math.abs(x-clip._x)
var b=Math.abs(y-clip._y)
clip._x += (Math.round(x-clip._x))/vel
clip._y += (Math.round(y-clip._y))/vel
if (a <= 1 && b <= 1) {
clip._x= x;
clip._y= y;
delete clip.onEnterFrame;
}
}
}
http://www.2rlab.com
God save the colours!
Bene... questa funzione funziona perfettamente![]()
Allora puoi richiamare quella funzione dagli eventi rollOver, per spostare il mc, e rollOut per riposizionarlo. Dovrai inoltre assegnare al mc una variabile che determini la posizione x iniziale, e potrai farlo sull'evento load.
Quindi associ tali eventi ad ogni mc.
Se hai molti mc ti converrà creare uno script per assegnare ad ognuno gli evventi in modo dinamico, altrimenti dovrai farlo a mano uno per uno.
Per ora fai giusto una prova:
Tieni conto che l'effetto del link è un po' più complesso..nota quando passi su una delle prime foto a sx. Queste non si spostano, ovviamente, ma fanno spostare le altre in modo da rendere visibile unicamente la foto in cui sei sopra col mouse.codice:onClipEvent (load) { x = _x; } on (rollOver) { _root.movDec(this, 5, x-50, _y); } on (rollOut) { _root.movDec(this, 5, x, _y); }
![]()
Installa Forum HTML.it Toolset per una fruizione ottimale del Forum
thanks... funzia.. se ho bisogno riaprlo il threat... ciao ciao![]()
http://www.2rlab.com
God save the colours!
e se dovessi mettiamo far comparire una scritta sul mc sul rollover, come potrei fare?... preparo il frame da visualizzare nel mc, ma dopo come dico onrollover vai al frame successivo del movieclip?
http://www.2rlab.com
God save the colours!
...normalmente dovresti usare:
gotoAndStop(2)
Ma se il clip è un contenitore dove viene caricata una file jpg (o un swf) esterno, tutto il contenuto di questo mc sarà rimpiazzato da ciò che viene caricato. Per cui no troveresti più il frame 2.
In tal caso puoi annidare il mc contenitore dentro un'altro in cui potrai così mettere due frame senza che siano cancellati quando viene caricata la foto.
..non so se sono stato chiaro![]()
Installa Forum HTML.it Toolset per una fruizione ottimale del Forum
mmmm... un esempiuzzo?
http://www.2rlab.com
God save the colours!
Ad esempio mettiamo il caso di avere sulla root un istanza nominata foto, nella quale carichi normalmente le immagini esterne, ad es
_root.foto.loadMovie("immagine.jpg")
Se vuoi creare due frame devi, per forza di cose, creare un contenitore padre in cui sarà contenuta l'istanza foto.
Seleziona l'istanza foto e premi F8. Questa sarà convertita in un altro simbolo. Nomina il simbolo ad es "contenitore" e impostalo come "Clip Filmato".
Ora sulla root avrai l'istanza di questo nuovo mc che contiene, a sua volta, l'istanza di foto.
Seleziona la nuova istanza e dal pannello Proprietà assegna un nome istanza, ad es "contenitore" (tanto per non confonderci).
Apri questa istanza. Nella sua timeline, potrai ora inserire i due frame.
1- Ad es, seleziona il primo e unico frame, dove ovviamente è presente l'istanza foto, e premi F5 per allungare di 1 frame.
2- Crea un nuovo layer (livello nella timeline).
3- Seleziona il primo frame di questo layer e, dal pannello Azioni,
inserisci uno stop()
4- Seleziona il secondo frame di questo layer e premi F7 per creare un keyframe vuoto.
5- In questo keyframe potrai posizionare la casella di testo.
Infine dovrai modificare il target utilizzato per caricare l'immagine.
Quindi risulterà:
_root.contenitore.foto.loadMovie("immagine.jpg")
Dovrai inoltre spostare, nell'istanza contenitore, gli eventi associati all'istanza foto.
Seleziona foto, apri il pannello Azioni, seleziona tutto lo script e taglia.
Quindi esci nella root, seleziona l'istanza contenitore, e dal pannello Azioni, incolla lo script.
Infine modifica lo script inserendo il gotoAndPlay in questo modo:
codice:onClipEvent (load) { x = _x; } on (rollOver) { _root.movDec(this, 5, x-50, _y); gotoAndPlay(2) } on (rollOut) { _root.movDec(this, 5, x, _y); gotoAndPlay(1) }![]()
Installa Forum HTML.it Toolset per una fruizione ottimale del Forum
allora il problema l'ho risolto cs:
1 mc
per ogni mc due frame, uno con una foto e basta, l'altro con foto + scritta
ho inserito la funzione e poi
on (rollOver) {
_root.movDec(this, 15, x-70, _y);
gotoAndPlay(2);
}
per muovermi tra i frame del mc e funziona tutto correttamente
ora però vorrei che cliccando su un mc questo funzionasse da bottone caricando un altro frame della scena 1; ho provato cs ma non funziona e non riescoa acapire perché
on (release) {
gotoAndPlay("Scene 1", 2);
}
grazie per la disponibilità, ciao
http://www.2rlab.com
God save the colours!