Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Dove inserire il codice?

    Salve a tutti,

    sto seguendo la guida di html.it "Guida costruire un sito in flash".

    Il problema è che, lavorando con Flash CS4 Professional, ed avendo a che fare con ActionScript 3.0, so, per sentito dire, di non poter inserire del codice nei simboli, a differenza di come facevo con le precedenti versioni di Flash e di ActionScript.

    A pag. 4 della guida, mi dice, in ossequio forse alle vecchie versioni di AS, di inserire del codice in un movieclip. Non potendolo inserire direttamente nel MovieClip, dove e come è possibile inserire questo codice? Conviene inserirlo in un file esterno .as, oppure nel codice dello stage?

    Per completezza riporto il codice, con i relativi commenti che riporta la stessa guida. In pratica, tale codice, consente di mutare lo stato di alcuni movieclip con il passaggio su di essi del cursore del mouse, senza che però si utilizzino pulsanti per l'operazione, ma, appunto, semplici movieclip.

    Il codice è il seguente:

    codice:
    // al movimento del mouse 
    onClipEvent (mouseMove) { 
    // se questo movieclip "tocca" il puntatore del mouse 
    // e la variabile "aperto" è false 
    if (this.hitTest(_root._xmouse, _root._ymouse, false) && !aperto) { 
    // se il frame attuale del movieclip è maggiore della metà dei totali 
    if (_currentframe>(_totalframes/2)) { 
    // riproduci il movieclip a partire dal frame corrispondente al 
    // numero dei frame totali meno il frame attuale gotoAndPlay (_totalframes-_currentframe); // altrimenti (e quindi il frame corrente è minore della metà) 
    } else { 
    // riproduci dal frame corrente 
    play (); } 
    // setta la variabile "aperto" come vera aperto = true; 
    // altrimenti, se il movieclip non tocca il mouse e "aperto" è vera 
    // (e quindi con il mouse sto "uscendo" dal movieclip) 
    } else if (!this.hitTest(_root._xmouse, _root._ymouse, false) && aperto) { 
    // se il frame attuale è minore della metà dei totali 
    if (_currentFrame<(_totalFrames/2)) { 
    // riproduci il movieclip dal frame "totali" meno il frame attuale 
    gotoAndPlay (_totalframes-_currentframe); 
    // altrimenti 
    } else { 
    // riproduci dal frame attuale 
    play (); } 
    // setta la variabile "aperto" come falsa aperto = false; } }
    Ringrazio in anticipo chiunque mi aiuterà.

  2. #2
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    Ciao

    Se usi ActionScript3 non puoi inserire codice nel clip e per fare quello che chiedi devi inserire il codice nel fotogramma dove sono presenti i clip su cui vuoi interagire.

    Per prima cosa devi creare il simbolo movieClip con l'animazione che vuoi che contenga.
    Per semplicità ti faccio un esempio di movieClip con 2 soli fotogrammi, uno per il mouse over (sopra) e l'altro per il mouse out (no sopra).
    Quindi per esempio, avrai la grafica del pulsante di colore verde al fotogramma 1 e il pulsante di colore rosso al fotogramma 2.
    Al fotogramma 1 (per una questione di ordine e gestibilità meglio se usi un livello separato per lo script) quindi, aggiungi livello e in corrispondenza del primo fotogramma inserisci uno:
    Codice PHP:
    stop(); 
    A questo punto puoi uscire dall'editor del simbolo clipFilmato e tornare nella timeline principale (stage) .
    Sposti il clip dalla libreria e lo posizioni sullo stage e nel pannello proprietà del ClipFilmato gli dai il suo nome istanza, supponiamo "pulsante".

    Vai nella timeline inserisci un livello per il codice, apri il pannello "azioni" e inserisci questo codice:

    Codice PHP:
    pulsante.addEventListener(MouseEvent.MOUSE_OVERmouseover);

    pulsante.addEventListener(MouseEvent.MOUSE_OUTmouseout); 

    function 
    mouseover(evento:MouseEvent):void
    pulsante.gotoAndStop(2); 

    function 
    mouseout(evento:MouseEvent):void
    pulsante.gotoAndStop(1); 

    Se vuoi puoi fare un'animazione più complessa sia per la posizione del pulsante normale che per quella del mouse sopra il pulsante.
    Puoi usare anche 10 fotogrammi per il pulsante normale e mettere ad esempio un riflesso o un luccichio che si ripete con un'interpolazione forma o movimento fino al 10mo fotogramma e ritorna al primo con un : gotoAndPlay(1) al 10mo fotogramma.
    Stessa cosa puoi fare per l'effetto al passaggio del mouse.

    In tal caso, ti consiglio di mettere etichette di fotogramma da usare nel codice principale per rendere più efficente il codice.
    Di conseguenza nella funzione del pulsante metterai invece del numero fotogramma il nome dell'etichetta esempio:

    Codice PHP:
    function mouseout(evento:MouseEvent):void
    pulsante.gotoAndPlay("Out"); 

    spero sia tutto chiaro, se hai problemi fammi sapere.

    ciao

  3. #3
    Ciao Sleter, e grazie per avermi risposto.

    penso di aver capito come fare, dovrei però vedere in pratica. Anche perchè non riesco a risolvere quest'altro problema:

    http://forum.html.it/forum/showthread.php?s=&threadid=1387030

    Ti farò sapere, grazie ancora.

  4. #4
    Ciao Sleter.

    Dunque, ho provato il tuo codice, e, pur non avendolo compreso appieno (addEventListener è un metodo? Come mai non sembra essere sulla guida ufficiale di ActionScript 2.0?), ho almeno tentato di capirlo.

    Ti chiedo solo un ultimo favore. Quello che posterò in seguito è la modifica che ho fatto io del codice della guida di html.it, che evidentemente era implementabile da versioni di ActionScript antecedenti a quella attuale.

    Quanto segue andrebbe, quindi, così come il codice che tu mi hai dato, inserito nel primo fotogramma dello stage. Il favore che ti chiedo è: potresti vedere se le mie modifiche sono corrette? (Ho ancora molti problemi con la programmazione ad oggetti)

    Il codice è il seguente:

    Codice PHP:
    // al movimento del mouse 
    onClipEvent (mouseMove) { 
    // se questo movieclip "tocca" il puntatore del mouse 
    // e la variabile "aperto" è false 
    if (pulsante.hitTest(_root._xmouse_root._ymousefalse) && !aperto) { 
    // se il frame attuale del movieclip è maggiore della metà dei totali 
    if (_currentframe>(_totalframes/2)) { 
    // riproduci il movieclip a partire dal frame corrispondente al 
    // numero dei frame totali meno il frame attuale 
    pulsante.gotoAndPlay (_totalframes-_currentframe); 
    // altrimenti (e quindi il frame corrente è minore della metà) 
    } else { 
    // riproduci dal frame corrente 
    play (); } 
    // setta la variabile "aperto" come vera 
    aperto true
    // altrimenti, se il movieclip non tocca il mouse e "aperto" è vera 
    // (e quindi con il mouse sto "uscendo" dal movieclip) 
    } else if (!pulsante.hitTest(_root._xmouse_root._ymousefalse) && aperto) { 
    // se il frame attuale è minore della metà dei totali 
    if (_currentframe<(_totalframes/2)) { 
    // riproduci il movieclip dal frame "totali" meno il frame attuale
    pulsante.gotoAndPlay (_totalframes-_currentframe);
     
    // altrimenti 
    } else { 
    // riproduci dal frame attuale play (); } 
    // setta la variabile "aperto" come falsa 
    aperto false



  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    Scusa ma secondo me c'è un po di confusione asserisci di lavorare in as3 ma il codice da te postato è as2. Credo che tu stia seguendo un corso di as2, il codice postato da sleter è as3, infatti dici di non trovarlo nella tua guida.

  6. #6
    Scusa ma secondo me c'è un po di confusione asserisci di lavorare in as3 ma il codice da te postato è as2. Credo che tu stia seguendo un corso di as2, il codice postato da sleter è as3, infatti dici di non trovarlo nella tua guida.
    Sì, credo abbia ragione tu. In effetti, sempre per sentito dire, ho visto come le modifiche non fossero molte. Io pensavo che semplicemente AS3 integrasse AS2, non che sostituisse parti di AS2.

    Con questo, pensavo quindi che il codice da me postato fosse valido anche in AS3.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    Magari!! Purtroppo sono molto diversi è incompatibili tra loro, nel senso che as2 as3 non lo vede proprio, mentre se in as3 carichi un swf esterno in as2 con un accorgimento viene eseguito, comunque non possono coesistere nel medesimo filmato, infatti flash al momento della apertura di un nuovo documento chiede di scegliere se deve essere un file as3 o as2, se ti fai un giro tra i vari forum che trattano di web design, potrai leggere della contentezza da parte dei programmatori per la nascita di as3 che più che as2 è un linguaggio orientato agli oggetti, molto più potente e preciso che as2, e le maledizioni dei grafici, che dopo aver appreso a fatica un po di nozioni di as2, si trovano a dover fare i conti con as3 che se non hai la stoffa del programmatore è davvero tosto.

  8. #8
    Grazie per avermi risposto. Ti faccio due domande.

    Sul web ci sono guide gratuite come per AS2?

    Qual è il modo migliore per risolvere il mio problema, secondo te? Che consigli mi dai? Occorre continuare a programmare per imparare prima AS2 e poi imparare AS3, oppure tagliare la testa al toro e cercare subito del materiale per imparare AS3?

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    Guarda sono la persona meno indicata per darti un consiglio perchè non sono un professionista ma un semplice appassionato, in questo stesso portale ci sono entrambe le guide, per il resto cosa risponderti? Dipende da quello che vuoi realizzare e dove vuoi arrivare, per il momento as2 è ancora ben supportato, a parte qualche eccezione, vedi Goolgle Maps, tanto e vero che anche con l'ultima versione di flash è ancora possibile programmare in as2, e realizzare filmati che il 90% di noi comuni mortali non riuscirà mai a realizzare neanche campasse 2 vite, certo se tu chiedi ad un programmatore che è già emigrato in actionscript 3.0 ti risponderà che dal momento che stai iniziando ora a studiare actionscript ti conviene partire dalla versione 3.0. Per mia esperienza personale, per quanto possa valere, dopo aver provato ad apprendere qualcosa di as3, ho subito mollato perchè era troppo difficile e soprattutto perchè mi sono comprato un libro veramente poco chiaro per un non programmatore, allora ho cominciato a studiare as2 del quale qualcosina ho cominciato a capirci e soprattutto a sfruttare e personalizzare i vari filmati e script free che si trovano in rete, ora finalmente ho trovato un libro su as3 che perlomeno per le questioni di base trovo abbastanza comprensibile, quindi ho ripreso a vedere un po di as3, ma ripeto lo faccio da semplice hobbista, non ho l'assillo di dover imparare per forza anche se quando riesco a fare qualcosa sono molto soddisfatto, insomma per il momento il mio divertimento è girare per i forum che trattano di flash per apprendere sempre di più e quando sono in grado dare una mano a chi è proprio all'inizio.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.