+ Rispondi alla Discussione
Risultati da 1 a 19 di 19

assegnare comandi alla tastiera

Ultimo Messaggio di Adriano_Bari il:
  1. #1
    User
    Data Registrazione
    Nov 2006
    Messaggi
    13

    assegnare comandi alla tastiera

    Carissimi amici digitali finalmente sono riuscita a mettermi in contatto con voi. Prima di rivolgervi il mio quesito, vorrei spendere una parola per congratularmi con tutti voi per la vostra bravura e professionalità.

    La mia domanda è la seguente :
    Come faccio in Fash MX a metter in relazione un comando come un pulsante dal quale deve partire un filmato, con un tasto della tastiera ?
    In pratica vorrei che si navigasse senza l'ausilio del mouse.
    So che in questo modo si costruiscono i giochi, ma anche scaricandone un esempio non avendo molta dimestichezza con actionScript non mi sono serviti a nulla.
    Quello che mi serve è riuscire a capire attraverso un semplice esempio questo meccanismo.
    Esiste fra di voi un'anima buona in grado di aiutarmi ?

    Grazie e buon fine settimana a tutti.

  2. #2
    User Attivo L'avatar di Flep
    Data Registrazione
    Feb 2006
    Località
    Undisclosed city of South America
    Messaggi
    5,747
    Ciao stefy e benvenuto/a nel forum GT

    Questo codice è quello che ti serve per capire l'interattività della tastiera con Flash:
    Codice:
    var obj:Object=new Object();
    obj.onKeyDown=function():Void
    {
        trace(Key.getAscii());
    }
    Key.addListener(obj);
    Seleziona il primo frame della timeline e copiaci il codice.
    Quando lanci l'swf e premi i tasti della tastiera il comando trace ti fa vedere il codice ascii del tasto premuto.

  3. #3
    User
    Data Registrazione
    Nov 2006
    Messaggi
    13
    grazie mille ora ci provo .

  4. #4
    User
    Data Registrazione
    Nov 2006
    Messaggi
    13
    Scusa Flep, la mia ignoranza, riesco a vedere il codice del tasto premuto, che è (0) come hai detto, e ora ? cosa devo fare affinchè premendo un particolare tasto mi parta il movie che voglio ?
    Come associo il nome del movie al tasto ? Perdonami , in fatto di Flash sono un pò ignorante, cerca di non dare nulla per scontato.
    comunque è sabato sera e se non ti va di rispondermi capirò.
    Grazie ancora Stefania

  5. #5
    User Attivo L'avatar di Flep
    Data Registrazione
    Feb 2006
    Località
    Undisclosed city of South America
    Messaggi
    5,747
    Ad esempio il tasto s ha codice ascii 115.
    Ora se vuoi che un'azione venga eseguita quando il tasto s è premuto:
    Codice:
    var obj:Object=new Object();
    obj.onKeyDown=function():Void
    {
        if(Key.getAscii()==115)
        {
            trace('ok');
        }
    }
    Key.addListener(obj);
    Al posto del trace puoi mettere le azioni che vuoi vengano eseguite.
    Ad esempio:
    Codice:
    var obj:Object=new Object();
    obj.onKeyDown=function():Void
    {
        if(Key.getAscii()==115)
        {
            _root.gotoAndPlay(2);
        }
    }
    Key.addListener(obj);

  6. #6
    User
    Data Registrazione
    Nov 2006
    Messaggi
    13
    Carissimo Flep ti ringrazio infinitamente per la tua gentilezza nel rispondermi anche di domenica,ora credo di avere le ideee un po più chiare.
    Però ancora non ho raggiunto il mio obbiettivo.
    Mi SPIEGO MEGLIO:

    Voglio realizzare un interfaccia con 5 o 6 filmati quik-time, ciascun filmato deve essere associato ad un tasto della tastiera che una volta premuto vada in play.
    Ho fatto una prova con le istruzioni che tu mi hai suggerito e in base a ciò che sono riuscita a capire, ho agito nel seguente modo :

    Ho creato 2 livelli, al primo frame del 1 livello ho assegnato l'azione stop.
    Nel primo frame del secondo livello ho inserito il filmato riducendo in proporsione la sua dimenzione fisica, e l'ho convertito in un pulsante nell'azione del quale ho inserito :

    on (press) {var obj:Object=new Object();
    obj.onKeyDown=function():Void
    {
    if(Key.getAscii()==115)
    {
    _root.gotoAndPlay(10);
    }
    }
    Key.addListener(obj);
    }

    Sempre nel livello 2 al frame 10 ho inseriro il filmato corrispondente in tutta la sua dimenzione.
    Quando lancio l'SWF e premo il tasto S non succede nulla riesco ad andare al frame 10 solo se premo invio, ma chiaramente non è quello che voglio.

    DOVE HO SBAGLIATO ?

    Spero che tu sia munito di tanta pazienza
    Ancora Grazie Stefania

  7. #7
    User Attivo L'avatar di Flep
    Data Registrazione
    Feb 2006
    Località
    Undisclosed city of South America
    Messaggi
    5,747
    Con quel codice sposti la timeline principale al frame 10 dove hai il video.
    Prova allora a dire:
    _root.gotoAndStop(10);

    e al frame 10 devi far partire il video; ha uno stop sul primo frame questo video ?

  8. #8
    User
    Data Registrazione
    Nov 2006
    Messaggi
    13
    Ho provato a dire _root.gotoAndStop(10); ma non cambia nulla, va al frame 10 solo se premo l'invio, e per rispondere alla tua domanda SI al primo frame il video ha uno stop.

  9. #9
    User Attivo L'avatar di Flep
    Data Registrazione
    Feb 2006
    Località
    Undisclosed city of South America
    Messaggi
    5,747
    stefy me ne sono accorto adesso grrrr
    quel codice non funzionerà mai perchè l'evento è onPress, cioè tu hai scritto quel codice su un bottone o una movieclip.
    Scrivi il codice senza onpress sulla timeline, esattamente come te l'ho scritto io

  10. #10
    User
    Data Registrazione
    Nov 2006
    Messaggi
    13
    Ho inserito on Press perchè altrimenti mi riportava i seguenti errori :

    **Errore** Scena=Scena 1, livello=Livello 3, fotogramma=1:Linea 1: L'istruzione deve apparire all'interno del gestore on
    var obj:Object=new Object();
    **Errore** Scena=Scena 1, livello=Livello 3, fotogramma=1:Linea 2: L'istruzione deve apparire all'interno del gestore on
    obj.onKeyDown=function():Void
    **Errore** Scena=Scena 1, livello=Livello 3, fotogramma=1:Linea 9: L'istruzione deve apparire all'interno del gestore on
    Key.addListener(obj);
    Totale errori ActionScript: 3 Errori segnalati: 3

    che con onPress non compagliono, ma è chiaro che a giudicare dal risultato e dalle tue informazioni non significa nulla.

    Allora sono costretta a ripeterti la domanda
    Ma allora dev'è che sbaglio ?

  11. #11
    User Attivo L'avatar di Flep
    Data Registrazione
    Feb 2006
    Località
    Undisclosed city of South America
    Messaggi
    5,747
    Il publish setting è settato per actionscript 2.0 ?
    Inoltre sei sicura che scrivi il codice sulla timeline ?

    onPress non serve in questo caso, se lo metti e non ti dà errore è perchè non stai scrivendo il codice sulla timeline.

    Copia il mio codice, seleziona il primo frame della timeline e copialo

  12. #12
    User
    Data Registrazione
    Nov 2006
    Messaggi
    13
    GRAZIE Flep sei GRANDEEEEEEE...

    Ho creato un documento ex novo e ho ripetuto il procedimento, scrivendo il codice nella timeline, e ora funziona tutto correttamente.
    Però prima di congedarmi dalla tua preziosa collaborazione vorrei rivolgerti un ultima spero! domanda :

    il seguente codice, funziona su di un filmato:

    var obj:Object=new Object();
    obj.onKeyDown=function():Void
    {
    if(Key.getAscii()==115)
    {
    _root.gotoAndStop(10);
    }
    }
    Key.addListener(obj);

    si riferisce quindi ad un solo filmato che dall'interfaccia mi porta come ti ho detto ad eseguire uno stesso filmato più grande al frame 10.
    Ora per far si che la stessa operazione avvenga anche su altri filmati presenti nell'interfaccia, devo creare per ognuno un livello distinto, o posso aggiungere delle informazioni sullo stesso frame della timeline ?
    Se devo aggiungere altre info allo stesso frame come vanno inserite esattamente ?

    Ancora infinitamente grazie
    Stefania

  13. #13
    User Attivo L'avatar di Flep
    Data Registrazione
    Feb 2006
    Località
    Undisclosed city of South America
    Messaggi
    5,747
    Dopo la riga
    _root.gotoAndStop(10);

    puoi assegnare altri comandi, dipende da quello che vuoi fare

  14. #14
    User
    Data Registrazione
    Nov 2006
    Messaggi
    13
    Grazie per le tue preziose informazioni
    in corso d'opera avrò sicuramente ancora bisogno di te e probabilmente tornerò a disturbarti.
    Per ora nel congratularmi con te per la tua cortese attenzione e professionalità, ti auguro Buonanotte
    Stefania

  15. #15
    User Attivo L'avatar di Flep
    Data Registrazione
    Feb 2006
    Località
    Undisclosed city of South America
    Messaggi
    5,747
    Prego
    E' stato un piacere

  16. #16
    User
    Data Registrazione
    Jul 2006
    Messaggi
    10
    Ciao a tutti,
    ho un problema lievemente simile. Premetto che non so se ciò che vorrei fare è possibile. Sto costruendo un sito istituzionale in flash e mi serve introdurre come funzionalità la possibilità di ingrandire o diminuire la dimensione del testo della pagina.
    Siccome credo che in flash questo sia un po un casino ho pensato che si potesse ottenere lo stesso risultato qualora fosse possibile linkare un tasto del mio sito al comando "ctrl" + "+" della tastiera che non fa altro che dire al browser di effettuare uno zoom.
    E' possibile fare questo e come?

    Grazie mille!

  17. #17
    User Attivo
    Data Registrazione
    May 2008
    Località
    Olbia
    Messaggi
    2,762
    Fare lo zoomin e zoomout di un campo di testo dinamico in flash non è una impresa impossibile, crei un campo di testo dinamico al quale dai nome istanza ad esempio "sfondo", poi crei un pulsante con nome istanza "zoomin" e uno con nome istanza "zoomout", qusti i codici da mettere sui pulsanti.
    zoomin
    Codice:
    onClipEvent (enterFrame) {
    //dichiara la funzione "zoom" che ingrandisce il clip "sfondo"
    if (zoom) {
    _root.sfondo._yscale += 5;
    _root.sfondo._xscale += 5;
    }
    }
    onClipEvent(mouseDown){
    //dichiara mx e my come posizione del mouse
    mx = _root._xmouse;
    my = _root._ymouse;
    //controlla che il mouse sia sul clip "zoomin"
    if(_root.zoomin.hitTest(mx,my,true)) {
    //se il pulsante si trova sul pulsante ""zoomin"
    //dichiara valida la funzione di ingrandimento  "zoom"
    zoom = true;
    }
    }
    onClipEvent(mouseUp){
    //se non si tiene il mouse premuto la zoommata si ferma
    zoom = false
    }
    zoomout
    Codice:
      onClipEvent (enterFrame) {
    //dichiara la funzione zoom2 che rimpicciolisce il clip
    if (zoom2) {
    _root.sfondo._yscale -= 5;
    _root.sfondo._xscale -= 5;
    }
    }
    onClipEvent(mouseDown){
    //dichiara mx e my come posizione del mouse
    mx = _root._xmouse;
    my = _root._ymouse;
    //controlla che il mouse sia sul clip "zoomout"
    if(_root.zoomout.hitTest(mx,my,true)) {
    //se il pulsante si trova sul pulsante ""zoomout"
    //dichiara valida la funzione di rimpicciolimento "zoom2"
    zoom2 = true;
    }
    }
    onClipEvent(mouseUp){
    zoom2 = false;
    }

  18. #18
    User
    Data Registrazione
    Jul 2006
    Messaggi
    10
    Ciao Nhatan e grazie per la risposta. Il problema è che intorno al testo c'è della grafica e il suo ingrandimento da solo mi incasinerebbe il layout della pagina!! Purtroppo il sito è già quasi pronto e non posso ricostruirlo pensando ad un ingrandimento del testo. Per questo motivo ho pensato di trovare un modo che mi ingrandisse direttamente tutte le pagine senza bisogno di doverle ricreare tutte in un formato più grande!

  19. #19
    User L'avatar di Adriano_Bari
    Data Registrazione
    Aug 2007
    Messaggi
    216
    Scusate, mi intrometto in questa discussione per chiedere se qualcuno sa se vi è la possibilità di intercettare otre che i tasti della tastiera anche gli assi x e y di un joystick.
    Grazie a tutti.

+ Rispondi alla Discussione

Tag per Questa Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.