Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Semplica animazione con AS

    Premetto che sto cercando di apprendere AS per hobby.
    Vorrei animare un rettangolo in modo che si sposti da dx a sx fino al limite dello stage e poi,una volta raggiunta la posizione, raddoppiasse le sue dimensioni.

    Con il seguente script:

    rettangolo_mc.onEnterFrame = function() {
    if (this._x >= 0) {
    this._x -= 24;
    }
    }

    ottengo la prima parte dell'animazione, ma come aggiungo in sequenza
    il secondo codice:

    rettangolo_mc.onEnterFrame = function() {
    if (this._xscale <= 200 && this._yscale <= 200) {
    this._xscale += 5;
    this._yscale += 5;
    }
    }

    il filmato non parte più. Dove sbaglio?
    Ho provato anche a scrivere le due istruzioni condizionali
    in sequenza, senza reinserire il gestore di eventi, ma
    niente....
    Grazie all'anima pia che mi suggerirà il codice corretto.

  2. #2
    Basta 1 onEnterFrame, quando hai finito l'istruzione è meglio che lo stoppi...

    rettangolo_mc.onEnterFrame = function() {
    if (this._x >= 0) {
    this._x -= 24;
    }else{
    if (this._xscale <= 200 && this._yscale <= 200) {
    this._xscale += 5;
    this._yscale += 5;
    onEnterFrame = null;
    }
    }
    }
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  3. #3
    Innanzi tutto grazie per la risposta.
    Ho provato, tutto OK!
    Non avevo considerato la sintassi "else" perchè pensavo, nella mia ignoranza, che così scrivendo, l'azione dopo "else" fosse presa in considerazione solo se la prima condizione fosse falsa...

    if//se questo è vero, fai questo; else//se la prima condizione non è soddisfatta, fai quest'altro.

    Facevo confusione, forse con "else if".
    Quindi aggiungendo "else", anche più di una volta, si può in teoria continuare l'animazione con azioni diverse in progresione.
    Grazie ancora.
    PS.Conosci un testo che parta dall'ABC del linguaggio AS?

  4. #4
    Originariamente inviato da Dott.Paolo
    Innanzi tutto grazie per la risposta.
    Ho provato, tutto OK!
    Non avevo considerato la sintassi "else" perchè pensavo, nella mia ignoranza, che così scrivendo, l'azione dopo "else" fosse presa in considerazione solo se la prima condizione fosse falsa...

    if//se questo è vero, fai questo; else//se la prima condizione non è soddisfatta, fai quest'altro.
    Ma infatti E' così, else viene seguito solo se il corrispondente if è falso.

  5. #5
    Se dai un'istruzione IF non è per forza obbligatorio dare un else, ad esempio se tu hai uno stato di cose e vuoi che solo in una certa condizione quello stato cambi, allora è sufficiente dare solo un IF.

    Se invece hai uno stato di cose iniziale e vuoi che dopo una determinata azione succeda qualcosa oppure un'altra cosa puoi usare IF, ELSE, ESLE IF.

    IF "pone la condizione"
    ELSE "cosa succede invece"
    ELSEIF "cosa succede invece se si verifica un'altra condizione"


    IF (mi mangio un panino){ dopo sono sazio}
    ELSE IF (mi mangio 2 panini) { dopo sono troppo pieno! }
    ELSE { nel caso in cui non mangio nulla non sono sazio }

    capit? :-)
    Io ho usato pochi libri, ho fatto un corso ma la maggior parte delle cose le ho imparate grazie a questo mitico forum e facendo tante, tante, tante prove.
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  6. #6
    Giusto, vale più la pratica che la grammatica!
    Una sola considerazione al post di Broly che dice:

    "Ma infatti E' così, else viene seguito solo se il corrispondente if è falso."

    Nell'esempio il corrispondente if è vero(la prima azione viene eseguita), quindi la seconda non dovrebbe essere eseguita.Ci rifletterò, studiare troppa medicina mi ha fatto perdere le capacità logiche!!
    Grazie.
    Ciao.

  7. #7
    Originariamente inviato da Dott.Paolo
    Giusto, vale più la pratica che la grammatica!
    Una sola considerazione al post di Broly che dice:

    "Ma infatti E' così, else viene seguito solo se il corrispondente if è falso."

    Nell'esempio il corrispondente if è vero(la prima azione viene eseguita), quindi la seconda non dovrebbe essere eseguita.Ci rifletterò, studiare troppa medicina mi ha fatto perdere le capacità logiche!!
    Grazie.
    Ciao.
    L'azione è vera solo quando l'_x del movieclip è maggiore di 0.
    In pratica tu dici al movieclip "se la tua _x è maggiore di 0, diminuscila di 24. Altrimenti se i tuoi _xscale e _yscale sono minori di 200 aumentali di 5 e imposta il tuo enterFrame a null", tant'è che il codice potrebbe benissimo usare un else if, così

    rettangolo_mc.onEnterFrame = function() {
    if (this._x >= 0) {
    this._x -= 24;
    }else if (this._xscale <= 200 && this._yscale <= 200) {
    this._xscale += 5;
    this._yscale += 5;
    delete this.onEnterFrame
    }
    }

  8. #8
    OK. Alla prossima.
    Ciao.

  9. #9

  10. #10
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797
    ma non conviene usare la funzione (non mi ricordo il nome) che praticamente ti dice se un oggetto colpisce un altro? dopo basta disegnare il contorno e basta.. o no?

    La funzione l'avevo trovata sulla guida di come si costrusice un sito in flash..

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.