MRW.it Forum
  • Home
  • Forum
  • Grafica
  • Flash

ruotazione oggetto con pulsanti e/o con mouse

  • Creatore Discussione Creatore Discussione matsu
  • Data di inizio Data di inizio 9 Lug 2009
M

matsu

Nuovo Utente
9 Lug 2009
5
0
0
  • 9 Lug 2009
  • #1
Salve a tutti, devo realizzare un player per un oggetto in flash.
Ho scattato 60 foto all'oggetto bloccandolo nel suo baricentro e facendolo girare su se stesso al fine di avere il suo giro completo.
A questo punto ho fatto un movie clip con all'interno 60 frame, uno per ogni posizione scattata. Questo per farlo andare in loop e vederlo girare su se stesso all'infinito.


Però ora ho bisogno che l'oggetto, da fermo, si possa muovere su se stesso:

- attraverso l'ausilio di due pulsanti (sinstra - destra) che tenendoli premuti si muove alla stessa velocità del loop in senso orario o antiorario a seconda del pulsante.

- con il trascinamento del mouse. Se ad esempio dal centro dell'oggetto, clicco e tenendo premuto mi sposto con il mouse verso sx, l'oggetto deve girare in senso orario, viceversa se vado verso dx l'oggetto si deve muovere in senso antiorario (più omeno l'effetto deve essere quello che si vede in molti siti web con macchine fotografiche o altri oggetti tecnologici..se volete vi posso postare qualche link). [funzione drag and drop??]

Non so proprio come muovermi..prego aiutatemi..

Grazie.

marco
Rispondi con citazione
 
Ad
carla146

carla146

Utente Attivo
14 Lug 2004
1.539
0
0
mhm?
www.carla146.it
  • 9 Lug 2009
  • #2
penso di no, funzione 'if' piuttosto solo che il codice totale non te lo so dire...ma penso puoi trovare tutorial da qualche parte....
 
M

matsu

Nuovo Utente
9 Lug 2009
5
0
0
  • 13 Lug 2009
  • #3
grazie per la risposta..
cmq non credo che riuscire a realizzarlo sia super complicato.

Soprattutto per quanto riguarda il primo problema
- attraverso l'ausilio di due pulsanti (sinstra - destra) che tenendoli premuti si muove alla stessa velocità del loop in senso orario o antiorario a seconda del pulsante.
Clicca per allargare...
non credo sia troppo difficile..basta che assegni ad esempio al pulsante "destra" di andare al frame successivo..o viceversa con il pulsante "sinistra" andasse a quello precedente (il top sarebbe se fin tanto tengo premuto il pulsante, mi scorresse i frame uno dopo l'altro).



Per quanto riguarda invece il secondo problema
- con il trascinamento del mouse. Se ad esempio dal centro dell'oggetto, clicco e tenendo premuto mi sposto con il mouse verso sx, l'oggetto deve girare in senso orario, viceversa se vado verso dx l'oggetto si deve muovere in senso antiorario
Clicca per allargare...
il problema qui è più complesso..e davvero non so da che parte iniziare..mi ci vorrebbe un actionscript (credo) che consideri il movimento del mouse..e che agisca di conseguenza..

davvero nessuno sa come aiturami??
 

carla146

Utente Attivo
14 Lug 2004
1.539
0
0
mhm?
www.carla146.it
  • 14 Lug 2009
  • #4
per il primo puoi usare allora gotoAndPlay()
e per il secondo puoi trovare un tutorial per le slideshow orizzontali che si muovono con lo spostamento del mouse.
 
M

matsu

Nuovo Utente
9 Lug 2009
5
0
0
  • 15 Lug 2009
  • #5
per il primo puoi usare allora gotoAndPlay()
Clicca per allargare...

..quindi qualcosa del tipo gotoAndPlay(next_frame), o gotoAndPlay(previous_frame) ???
Cmq considera che a me servirebbe che fin tanto tengo premuto il pulsante mi scorre i frame..altrimenti ad ogni singolo click deve andare solo di 1 frame alla volta..



e per il secondo puoi trovare un tutorial per le slideshow orizzontali che si muovono con lo spostamento del mouse.
Clicca per allargare...

mmmh..perché no..può essere una valida soluzione..
hai per caso qualcosa a portata di "tastiera" o conosci qualche sito dove posso andare sul sicuro per trovare qualcosa del genere??



grazie ancora per tutto il supporto..

 

carla146

Utente Attivo
14 Lug 2004
1.539
0
0
mhm?
www.carla146.it
  • 16 Lug 2009
  • #6
con gotoAndPlay() mandi in un frame e continua i filmato, con gotoAnd Stop() mandi a un frame e lì si ferma.
per l'altro:
prova qui a vedere se trovi, ti devi iscrivere e poi puoi scaricare i fla:
http://ffiles.com/flash/photo_galleries/
o qui sito molto interessante as2 e 3:
http://blog.flepstudio.org/category/tutorials/flash-cs3/actionscript-3-base/
 
M

matsu

Nuovo Utente
9 Lug 2009
5
0
0
  • 21 Lug 2009
  • #7
sono 2/3 gg che non faccio altro che guardare esempi..

ma niente che si avvicini a quello che cerco io..

 

carla146

Utente Attivo
14 Lug 2004
1.539
0
0
mhm?
www.carla146.it
  • 22 Lug 2009
  • #8

non capisco...scusa questa ad esempio, ed è una delle tante,
http://ffiles.com/flash/photo_galleries/dynamic_photo_gallery_2277.html
ha la barra sotto che è quello che cerchi.
scarichi il file e usi solo la barra sotto...
non volevi che si muovesse avanti e indietro con il mouse? o ho capito male....
 
M

matsu

Nuovo Utente
9 Lug 2009
5
0
0
  • 28 Lug 2009
  • #9
mmmh..veramente più una cosa così..

http://www.kodak.com/eknec/PageQuerier.jhtml?pq-path=14292&pq-locale=en_US&_requestid=3888
 
S

Silver55

Nuovo Utente
28 Lug 2009
4
0
1
  • 29 Lug 2009
  • #10
ciao,

... questo esempio mostra come ottenere un effetto di "rotazione" visualizzando le immaggini (.jpg) corrispondenti ai vari "scatti".
Tutte le immagini sono preventivamente caricate in un Array e visualizzate singolarmente al CLICK sui bottoni, o in progressione temporizzata quando si tiene il MOUSE DOWN.
E' inoltre previsto un file XML contenente i nomi delle immagini (scatti), cosi' da poter avere una maggiore generalizzazione e diminuzione del peso dell'SWF.

... in allegato il .fla completo con il file xml e le immagini di esempio

PHP:
// ................................................................... 
//  NAME : RuotaOggetto.fla - [ CS3 - AS3 ] 
//         Esempio di rotazione di un oggetto caricando, da un file 
//         XML, gli n "scatti" (.jpg) 
// 
//  Il file XML :  
// 
//  <scatti> 
//    <foto url="scatto1.jpg" /> 
//    <foto url="scatto2.jpg" /> 
//    <foto url="scatto3.jpg" /> 
//    etc..... 
//  </scatti>
//  
//  ... sullo stage sono presenti i bottoni btn_sx e btn_dx 
// 
// ................................................................... 
import flash.display.Loader;
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.IOErrorEvent;

// ... variabili globali : 

var richiestaXML      :URLRequest; 
var caricatoreXML     :URLLoader; 

var gestoreXML        :XML; 
var listaFotoUrl      :XMLList; 


var richiestaIMG      :URLRequest; 
var caricatoreIMG     :Loader; 
var caricatoreInfoIMG :LoaderInfo; 

// ... Array contenente le immagini caricate dal file XML 
var arrayIMG          :Array; 

// ... il numero di immagini presenti nel file XML 
var numImages         :uint; 

// ... l'immaggine corrente (l'iesimo scatto) 
var currentImage      :uint; 

// ... i timer per la gestione continua della rotazione 
var timerSinistra     :Timer;
var timerDestra       :Timer;


// ... crea gli oggetti relativi : 

// ... l'oggetto URL relativo al File XML 
richiestaXML   = new URLRequest(); 

// ... l'oggetto URLLoader per il caricamento dell'XML 
caricatoreXML  = new URLLoader(); 

// ... l'ascoltatore evento : COMPLETE al caricatore XML  
caricatoreXML.addEventListener(Event.COMPLETE, completatoCaricamentoXML); 

// ... l'ascoltatore evento : IO_ERROR per eventuali errori  
caricatoreXML.addEventListener(IOErrorEvent.IO_ERROR, erroreCaricamentoXML); 


// ... l'Array che conterrà le immagini caricate  
arrayIMG       = new Array(); 

// ... gli oggetti timer per la rotazione continua
//     ( impostare i millisisecondi : es. 85  ) 
timerSinistra  = new Timer(85, 0);
timerSinistra.addEventListener("timer", onTimerSinistra);

timerDestra    = new Timer(85, 0);
timerDestra.addEventListener("timer", onTimerDestra);

// ... 

// ... assegna l'url relativo al file XML da caricare  
richiestaXML.url = "scatti.xml"; 


// ... ok, carica il file XML  
caricatoreXML.load(richiestaXML); 

// ... 

// ................................................................... 
//  FUNCTION : completatoCaricamentoXML()  
//             Evento : COMPLETE 
//             questa funzione sara' richiamata quando il file XML 
//             sara' copletamente caricato 
// ................................................................... 
function completatoCaricamentoXML(evento:Event):void  
{ 
    // ... caricamento del File XML Completato!  
     
    // ... crea un oggetto XML :
    
    // ... l'oggetto XML consente di accedere ed     
    //     estrarre i valori relativi ai TAGS ed agli  
    //     ATTRIBUTI di un contenuto di dati XML. 

    // ... al costruttore viene passata la proprietà .data  
    //     dell'URLoader (il contenuto dei dati letti) 
    gestoreXML      = new XML(caricatoreXML.data); 
     
    // ... <foto url="scatto1.jpg" /> 

    // ... estrai i valori di tutti gli ATTRIBUTI url
    //     del TAG <foto> ed inseriscili in un oggetto XMLList
    listaFotoUrl    = gestoreXML.foto.@url; 

    // ... ora nell'array : listaFotoUrl ci sono i nomi di tutte 
    //     le immagini da caricare 
	
    // ... salva il numero dei TAGS <foto> presenti nel file XML
    //     ( corrisponde al numero di immagini ) 
    numImages       = listaFotoUrl.length();    
	
    // ... imposta l'indice dell'Immagine corrente a ZERO   
    currentImage    = 0;

    // ... ok!, carica la prima immagine 
    caricaImmagine(currentImage);
} 
// ................................................................... 

// ................................................................... 
//  FUNCTION : erroreCaricamentoXML()  
//             Evento : IO_ERROR 
//             questa funzione sara' richiamata se dovesse verificarsi  
//             un errore durante durante il caricamento del file XML  
// ................................................................... 
function erroreCaricamentoXML(evento:IOErrorEvent):void  
{
    // ...  
    // trace("... errore caricamento file XML : " + evento.type); 
} 
// ................................................................... 

// ................................................................... 
//  FUNCTION : caricaImmagine()  
//             caricamento di una singola immagine (i-esima)
// ................................................................... 
function caricaImmagine(p_idxImg:uint):void  
{
     // ... crea gli oggetti per il caricamento del'iesima immagine 
	
     // ... l'oggetto URL   
     richiestaIMG      = new URLRequest(); 

     // ... l'oggetto Loader 
     caricatoreIMG     = new Loader(); 
     
     // ... il contentLoaderInfo a cui associare gli asoltatori
     caricatoreInfoIMG = LoaderInfo(caricatoreIMG.contentLoaderInfo); 
	
    // ... aggiungi gli asacoltatori :
	
    // ... l'ascoltatore evento : COMPLETE al caricatore XML  
    caricatoreInfoIMG.addEventListener(Event.COMPLETE, completatoCaricamentoIMG); 

    // ... l'ascoltatore evento : IO_ERROR per eventuali errori  
    caricatoreInfoIMG.addEventListener(IOErrorEvent.IO_ERROR, erroreCaricamentoIMG); 
	
    // ... assegna url dell'immagine da caricare   
    richiestaIMG.url  = listaFotoUrl[p_idxImg]; 

    // ... ok!, carica l'iesima immagine  
    caricatoreIMG.load(richiestaIMG);     
} 
// ................................................................... 

// ................................................................... 
//  FUNCTION : completatoCaricamentoIMG()  
//             Evento : COMPLETE 
//             questa funzione sara' richiamata al caricamento    
//             completato di ogni immagine 
// ................................................................... 
function completatoCaricamentoIMG(evento:Event):void  
{ 
    // ... l'iesima IMG e' stata caricata completamente!  

    // ... l'immagine caricata  
    var imgLoader:Loader = Loader(evento.currentTarget.loader);
	
    // ... salva l'immagine nell'Array 
    arrayIMG[currentImage] = imgLoader; 
	
    // ... controlla se tutte le immagini sono state caricate 
    if ( currentImage < (numImages - 1) )      
    { 
        // ... no, incrementa contatore  
        currentImage++; 

        // ... e carica la prossima  
        caricaImmagine(currentImage);
    } 
    else  
    { 
        // ... Ok!, TUTTE le immagini sono state caricate nell'Array
		
        // ... reimposta l'indice dell'immagine corrente 
        currentImage = 0;
		
        // ... aggiungi gli ascoltatori per la gestione degli eventi 
        //     sui Bottoni (SINISTRA e DESTRA) 
        btn_sx.addEventListener(MouseEvent.MOUSE_DOWN, onMouseGiu);		
        btn_dx.addEventListener(MouseEvent.MOUSE_DOWN, onMouseGiu);	
		
        btn_sx.addEventListener(MouseEvent.MOUSE_UP, onMouseSu);
        btn_dx.addEventListener(MouseEvent.MOUSE_UP, onMouseSu);		
        // ... imposta il Mouse mode ( cursor Hand )  
        btn_sx.buttonMode = true;
        btn_dx.buttonMode = true;

        // ... e visualizza la prima immagine! 
        ShowImage(currentImage);
    } 
} 
// ................................................................... 

// ................................................................... 
//  FUNCTION : erroreCaricamentoIMG()  
//             Evento : IO_ERROR 
//             questa funzione sara' richiamata se dovesse verificarsi  
//             un errore durante durante il caricamento di un'immagine 
// ................................................................... 
function erroreCaricamentoIMG(evento:IOErrorEvent):void  
{
    // ... 
    // trace("... errore caricamento file IMG : " + evento.type); 
} 
// ................................................................... 

// ................................................................... 
//  FUNCTION : ShowImage()
//             visualizzaione dell'i-esima immagine  
// ................................................................... 
function ShowImage(p_idxImg:uint)
{
    // ... dichiara una variabile locale  
    var img:Loader;

    // ... get dell'immagine   
    img = arrayIMG[p_idxImg]; 
	
    // ... posiziona l'immagine sullo Stage (o in altro contenitore)   
    img.x = 100;
    img.y = 10;

    // ... aggiungi l'immagine allo stage (o ad altro contenitore)
    addChild(img);
}
// ................................................................... 


// ................................................................... 
//  FUNCTION : onMouseGiu()
//             Evento : MOUSE_DOWN 
//             questa funzione sara' richiamata al MOUSE DOWN su uno 
//             dei due bottoni 
// ................................................................... 
function onMouseGiu(evento:MouseEvent)
{
    // ... variabile locale che conterra' il riferimento del bottone 
    var btn :MovieClip;
	
    // ... get del Bottone     
    btn = MovieClip(evento.currentTarget);

    // ... test del Bottone  
    if (btn == btn_sx) 
    {
        // ... ruota una sola volta a sinistra   
        vaiSinistra();
		
        // ... e START del timer di sinistra  
        timerSinistra.start();
    }
    else 
    {
        // ... ruota una sola volta a destra   
        vaiDestra();
		
        // ... e START del timer di destra  
        timerDestra.start();
    }
}
// ................................................................... 


// ................................................................... 
//  FUNCTION : onMouseSu()
//             Evento : MOUSE_UP 
//             questa funzione sara' richiamata al MOUSE UP su uno 
//             dei due bottoni 
// ................................................................... 
function onMouseSu(evento:MouseEvent)
{
    // ... variabile locale che conterra' il riferimento del bottone   
    var btn :MovieClip;
	
    // ... get del Bottone     
    btn = MovieClip(evento.currentTarget);

    // ... test del Bottone  
    if (btn == btn_sx) 
    {
        // ... STOP del timer di sinistra 
        timerSinistra.stop();
    }
    else 
    {
        // ... STOP del timer di destra  
        timerDestra.stop();
    }
}
// ................................................................... 


//.....................................................................
//  FUNCTION : onTimerSinistra()
//             Evento : TIMER 
//             questa funzione sara' richiamata ogni n millisecondi 
//             dall'avvio del timer a cui e' associata  
//.....................................................................
function onTimerSinistra(evento:TimerEvent):void
{
    // ... al MOUSE DOWN il timer e' avviato, ma continua la  
    //     visalizzazione delle immagini solo se e' trascorso 
    //     un po' di tempo ( es. dopo 3 * millisiecodi )
    if ( timerSinistra.currentCount > 3 )   
    {
        vaiSinistra();
    }
}
//.....................................................................

//.....................................................................
//  FUNCTION : onTimerDestra()
//             Evento : TIMER 
//             questa funzione sara' richiamata ogni n millisecondi 
//             dall'avvio del timer a cui e' associata  
//.....................................................................
function onTimerDestra(evento:TimerEvent=null):void
{
    // ... al MOUSE DOWN il timer e' avviato, ma continua la  
    //     visalizzazione delle immagini solo se e' trascorso 
    //     un po' di tempo ( es. dopo 3 * millisiecodi )
    if ( timerDestra.currentCount > 3 )   
    {
        vaiDestra();
    }
}   
//.....................................................................


//.....................................................................
//  FUNCTION : vaiSinistra()
//             visualizza l'immagine precedente nell'Array               
//.....................................................................
function vaiSinistra():void
{
    // ... remove dell'iesima immagine 
    removeChild(arrayIMG[currentImage])
	
    // ... controlla l'indice   
    if ( currentImage == 0 )   
    {
        // ... se la prima, vai all'ultioma 
        currentImage = (numImages - 1);
    }
    else 
    {
        // ... decrementa 
        currentImage--;
    }
    // ... e visualizza l'immagine precedente  
    ShowImage(currentImage);
}
//.....................................................................

//.....................................................................
//  FUNCTION : vaiDestra()
//             visualizza l'immagine seguente nell'Array               
//.....................................................................
function vaiDestra():void
{
    // ... remove dell'iesima immagine 
    removeChild(arrayIMG[currentImage])
	
    // ... controlla l'indice   
    if ( currentImage < (numImages - 1))   
    {
        // ... incrementa 
        currentImage++;
    }
    else 
    {
        // ... ricomincia 
        currentImage = 0;
    }
    // ... e visualizza l'immagine seguente 
    ShowImage(currentImage);
}
//.....................................................................

// ... end of JOB

... spero che cio' ti sia di aiuto, ciao.
 

Allegati

  • RuotaOggetto.zip
    RuotaOggetto.zip
    97,4 KB · Visite: 398

max_400

Utente Attivo
23 Gen 2009
770
0
16
caltanissetta
max400.forumfree.it
  • 8 Ago 2009
  • #11
questo è un esempio più semplice con un piccolo script

http://riccardo007.altervista.org/cerchio-press-release.htm

guardando l'esempio della macchina fotografica...
il cerchio non è al centro l'ho fatto in 2 minuti comunque tenendo premuto
uno dei tasti ruota e quando lasci andare si ferma... e si muove pure a scatti tipo nextframe()

vedi un po se ti piace
 
Devi accedere o registrarti per poter rispondere.

Discussioni simili

C
Ruotazione schermo testo non si allarga
  • colomber
  • 27 Gen 2015
  • HTML e CSS
Risposte
0
Visite
1K
HTML e CSS 27 Gen 2015
colomber
C
S
Impossibile scorrere un oggetto in JavaScript
  • steven myth
  • 23 Set 2022
  • Javascript
Risposte
0
Visite
2K
Javascript 23 Set 2022
steven myth
S
V
oggetto webbrowser
  • vini
  • 18 Ago 2020
  • Visual Basic
Risposte
0
Visite
8K
Visual Basic 18 Ago 2020
vini
V
B
  • Bloccata
[MySQL] contare quante un oggetto e' presente
  • bipolare75
  • 5 Ott 2019
  • MySQL
Risposte
2
Visite
1K
MySQL 6 Ott 2019
Max 1
V
Ricevere messaggi email certificata con CDO o altro oggetto in ASP
  • vic53
  • 9 Feb 2019
  • Classic ASP
Risposte
0
Visite
1K
Classic ASP 9 Feb 2019
vic53
V
M
HTML: oggetto data
  • marcoa842
  • 29 Set 2018
  • HTML e CSS
Risposte
1
Visite
1K
HTML e CSS 29 Set 2018
Max 1
M
[Photoshop] Problema Oggetto avanzato
  • marekolion
  • 27 Ago 2018
  • Photoshop
Risposte
0
Visite
1K
Photoshop 27 Ago 2018
marekolion
M
F
Fermare oggetto che si muove al click del mouse - Javascript
  • Federica Torrisi
  • 8 Feb 2018
  • Ajax
Risposte
1
Visite
3K
Ajax 27 Feb 2018
otto9due
F
Coordinate di un oggetto - javascript
  • Federica Torrisi
  • 6 Feb 2018
  • Javascript
Risposte
2
Visite
2K
Javascript 7 Feb 2018
Federica Torrisi
F
OnChange con oggetto Text non funziona
  • napuleone
  • 1 Nov 2015
  • Javascript
Risposte
3
Visite
2K
Javascript 2 Nov 2015
marino51
Oggetto " button " js non mi funziona
  • napuleone
  • 21 Ott 2015
  • Javascript
Risposte
3
Visite
2K
Javascript 21 Ott 2015
napuleone
Come creare un oggetto con attributi multipli?
  • JackIlPazzo
  • 6 Ott 2015
  • PHP
Risposte
1
Visite
1K
PHP 6 Ott 2015
criric
M
Passare una funzione a una proprietà di oggetto
  • mirkocaccia
  • 11 Lug 2015
  • Javascript
Risposte
2
Visite
2K
Javascript 13 Lug 2015
mirkocaccia
M
G
Evento ".onClick" su oggetto di d3.js
  • gaiagilder
  • 21 Mar 2015
  • Javascript
Risposte
0
Visite
2K
Javascript 21 Mar 2015
gaiagilder
G
G
Oggetto OLE
  • Giulio Totaro
  • 16 Gen 2015
  • MS Access
Risposte
0
Visite
1K
MS Access 16 Gen 2015
Giulio Totaro
G
M
account commerciale Adsense (ma io sono un soggetto privato)
  • m.pittini
  • 6 Nov 2014
  • Google AdSense
Risposte
0
Visite
2K
Google AdSense 6 Nov 2014
m.pittini
M
G
Visualizzazione proprietà oggetto
  • Garaux
  • 26 Ott 2014
  • PHP
Risposte
0
Visite
945
PHP 26 Ott 2014
Garaux
G
P
Problma passaggio valori input hidden in oggetto $.post()
  • PazzoFrontEnd
  • 28 Mar 2014
  • jQuery
Risposte
8
Visite
5K
jQuery 2 Apr 2014
criric
F
[RISOLTO]oscurare momentaneamente oggetto del database
  • Fabrizio Villa
  • 11 Nov 2013
  • PHP
  • 2
Risposte
38
Visite
4K
PHP 17 Nov 2013
Fabrizio Villa
F
L
[RISOLTO]inserire funzione in un oggetto (HTML5+canvas)
  • luigi777
  • 25 Ott 2013
  • Javascript
Risposte
2
Visite
1K
Javascript 2 Nov 2013
luigi777
L
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Grafica
  • Flash
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?