Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Codice alternativo

  1. #1

    Codice alternativo

    Per ottenere un effetto di dissolvenza incrociata (passaggio da alfa 100 ad alfa 0 e viceversa) in modo continuativo utilizzo questo codice che funziona perfettamente:

    mio_mc.onEnterFrame = alfa;
    function alfa() {
    if (this.contr = = true) {
    this._alpha -= 3;
    if (this._alpha<0) {
    this.contr = false;
    }
    } else {
    this._alpha += 3;
    if (this._alpha>99.99999) {
    this.contr = true;
    }
    }
    }

    Peraltro non capisco la sintassi “this.contr = = true” (valore bollano senza impostare una variabile? parametro?). Ho quindi provato ha riscrivere il codice secondo una mia logica (che a conti fatti è illogica!) impostando una var:

    mio_mc.onEnterFrame = alfa;
    function alfa() {
    var contr:Boolean=true;
    if (contr ) {
    this._alpha -= 3;
    if (this._alpha<0) {
    contr = false;
    }
    } else {
    this._alpha += 3;
    if (this._alpha>99.99999) {
    contr = true;
    }
    }
    }
    purtroppo il mc si dissolve, ma non ritorna ad alfa 100.
    Sarò grato a chi mi saprà spiegare.
    Ciao.

  2. #2
    scusami ma solo guardando velocemente

    if (contr ) {

    cosa????

    se contr .... non c'è una condizione == <> <= >=

    questo già è illogico
    Consulenza aziendale a 360° http://www.gruppodg.it http://www.gruppodg.it/3d
    Realizzazione siti internet, Siti Flash, Ricerca Location per bar negozi , esercizi commerciali, sviluppo pratiche e allestimento

  3. #3
    Ciao enigma_79,
    la sintassi " if (nome della variabile boleana) " dovrebbe analizzare il valore corrente della variabile dichiarata; ho appreso questo da un testo (FLASH MX 2004 AS - corso ufficiale, edito da Mondadori)che stò leggendo per imparare il linguaggio.
    Può essere però che vada inserita in un'altro contesto.....

  4. #4

    Re: Codice alternativo

    Originariamente inviato da Dott.Paolo

    mio_mc.onEnterFrame = alfa;
    function alfa() {
    var contr:Boolean=true;
    if (contr ) {
    this._alpha -= 3;
    if (this._alpha<0) {
    contr = false;
    }
    } else {
    this._alpha += 3;
    if (this._alpha>99.99999) {
    contr = true;
    }
    }
    }
    purtroppo il mc si dissolve, ma non ritorna ad alfa 100.
    Sarò grato a chi mi saprà spiegare.
    Ciao.
    ovvio, ad ogni enterframe setti
    var contr:Boolean=true;
    quindi non sarà mai false.
    La devi settare nel clipEvent(load)

    @enigma_79 scrivere if(contr) equivale a scrivere
    if(contr == true)
    "...non è detto che sia tardi se non guardi che ora è..."

  5. #5
    Grazie per la risposta Raffa62, ma, a parte che non ho ben compreso il "settare nel clipEvent(load)",potrei in alternativa inizializzare la var fuori dalla funzione...no!
    Ciao.

  6. #6
    Utente di HTML.it L'avatar di NAP
    Registrato dal
    Jan 2001
    Messaggi
    4,398
    Cavilli?

    No, scherzo... Voglio dire: qual è il problema, dal momento che lo script funziona? contr può essere anche "giovanni"; è una variabile di semplice "appoggio" booleano ed è insita nella funzione, come dire: si dichiara da sé. Per analogia, in elettronica è come un transistor con due sole condizioni possibili: "aperto-chiuso".
    Il "this" è il percorso della timeline, virtuale nel virtuale, di "mio_mc", sulla quale opera l'onEnterFrame.

    Codice alternativo o sintassi alternativa?
    Per la seconda:
    1 - l'eguaglianza "==" (senza spazio, sennò non funzica) può essere omessa, in condizione, per settare la booleana decisamente in true... La condizione già vera è stata usata per supportare l'else successivo. Al proposito ricordo, anni fa, un commento del Grandissimo che riportava:

    if (a) { // Se a è vera (e lo è !) :maLOL: (lo adoro...)
    ...
    }

    Qualche carattere in meno da scrivere?

    2 - A che servono tutti quei decimali se l'alpha non può superare 100 ?

    mio_mc.onEnterFrame = alfa;
    function alfa() {
    if (this.a ) {
    this._alpha -= 3;
    if (this._alpha <= 0) {// è lo stesso ma alpha non può essere in modo assoluto minore di 0...
    //...Ara che 'l Flash se 'ncassa

    this.a = false;
    }
    } else {
    this._alpha += 3;
    if (this._alpha >= 100) { // Come sopra ma per ragionamento inverso
    this.a = true;
    }
    }
    }

    enigma_79 e Raffa62 (l'è 'n pesso che no te vedea qua)

    Insomma: ciao a tutti,

    NAP
    A volte la diplomazia va condita con un pizzico di siluri fotonici. (K. Janeway)

  7. #7
    Ciao NAP, anche a te grazie per la risposta.
    Più che di cavilli si trattava di desiderio di comprendere le cose; il codice che funziona l'ha scritto un amico che non sa però(?) darmi spiegazioni convincenti...spiegazioni che per altro penso tu mi abbia dato (sono sul lavoro ed ho dato solo un'occhiata superficiale alla tua risposta).
    Grazie a tutti.

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.