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

Discussione: parametri funzioni

  1. #1

    parametri funzioni

    ciao arrivo al sodo

    spesso quando mi capita di leggere una funzione con i suoi parametri
    es.:

    function pippo(xdest, ysin, vel)

    noto che tutte le volte viene inizializzata (speriamo che il termine sia giusto) settandone i valori xdest=150;

    ma quando trovo una funzione con ilparametro id il valore non viene mai dichiarato ..come se fosse prestabilito.
    a questo punto mi chiedo a cosa si riferisca
    io ho tre manuali e su nessuno ne parla !!!!! (soldi buttati???)

    ciao ciao

  2. #2
    Utente di HTML.it L'avatar di nep036
    Registrato dal
    Nov 2003
    Messaggi
    1,453
    Guarda non c'è molto da capire.

    Tutte le variabili che si inseriscono tra parentesi (id o quello che vuoi) servono per passare dei valori diversi ad una funzione ogni volta che questa viene richiamata.

    Tutto qui.

    Non c'è nessuna differenza tra var e var, le puoi valorizzare esternamente o quando chiami la funzione.


  3. #3
    ciao ti ringrazio per la risposta
    ma non risolve i mie dubbi
    spesso mi trovo script dove usano variabili che non vengono dichiarate e non capisco da dove prendano i valori
    esempio? eccone uno


    // Set initial variables
    wmodifier = 300;
    hmodifier = 150;
    /* .7 for decent bounce effect */
    bouncefactor = 0.8;
    /* 6 for nice speed */
    speedfactor = 8;
    expand = function (id) {
    // colorSquare width
    this.destwidth = wmodifier;
    this.poswidth = id._width;
    this.velwidth = this.velwidth*bouncefactor+(this.destwidth-this.poswidth)/speedfactor;
    id._width += Math.round(this.velwidth);
    // colorSquare height
    this.destheight = hmodifier;
    this.posheight = id._height;
    this.velheight = this.velheight*bouncefactor+(this.destheight-this.posheight)/speedfactor;
    id._height += Math.round(this.velheight);
    // colorSquare x
    this.destx = (stageWidth-wmodifier)/2;
    this.posx = id._x;
    this.velx = this.velx*bouncefactor+(this.destx-this.posx)/speedfactor;
    id._x += Math.round(this.velx);
    // colorSquare y
    this.desty = (stageHeight-hmodifier)/2;
    this.posy = id._y;
    this.vely = this.vely*bouncefactor+(this.desty-this.posy)/speedfactor;
    id._y += Math.round(this.vely);
    // shadow properties
    shadow._width = (colorSquare._width+20);
    shadow._x = (colorSquare._x-10);
    shadow._height = (colorSquare._height+20);
    shadow._y = (colorSquare._y-10);
    };
    colorSquare.onEnterFrame = function() {
    expand(this);
    };

    1 movie clip e quattro bottoni: ogni volta che un bottone viene cliccato passa i nuovi valori di :
    wmodifier
    hmodifier

    e tutte le altre variabili? (segnate in rosso?

  4. #4
    La prima variabile rossa indica la larghezza di "id" ovvero del movieClip a cui si vuole assegnare la funzione.
    La seconda ha l'assegnazione nell'espressione successiva all'uguale.

  5. #5
    ???
    io sarò tardo ma non capisco
    come fa a capire che id si riferisce al movie clip?
    perchè è un suo parametro?? e se aveva più parametri?

    es:

    expand = function (mamma,papà) {
    // colorSquare width
    this.destwidth = wmodifier;
    this.poswidth = mamma._width;

    potevo mettere indifferentemente sia mamma che papà e avrebbe cmq capito che gli chiedevo la larghezza del movieclip?


    l'altra cosa che non capisco rimane

    this.velheight = this.velheight*bouncefactor+(this.destheight-this.posheight)/speedfactor;

    a=a +1

    in matematica non ha senso e cmq io non ho a(this.velheight)

    ma da dove la ricava??

    secondo me non ho la mente adatta per capire certe cose

    ciao ciao

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da lurriell
    i parametri vengono passati al richiamo della funzione, in quel caso esattamente qui --> expand(this)
    in pratica tu stai dicendo al clip colorSquare che ogni volta che esegue un determinato metodo (onEnterFrame) deve richiamare quella funzione e passargli come parametro sè stesso! (this, ossia quello, in questo caso colorSquare dice alla funzione di passare colorSquare), in pratica una funzione non è altro che uno script raccolto in una sola "azione" che può essere richiamata infinite volte, ad esempio potresti scrivere

    codice:
    function saluta(string, id){
    trace (string+""+id._name);
    }
    e richiamarlo con
    codice:
    pulsante1.onRelease = function(){
    saluta("ciao", this);
    }
    pulsante2.onRelease = function(){
    saluta("ciao", this);
    }
    oppure scrivere solamente
    codice:
    pulsante1.onRelease = function(){
    trace("ciao"+this._name);
    }
    pulsante2.onRelease = function(){
    trace("ciao"+this._name);
    }
    l'esempio è abbastanza inutile, nel senso che non ti dà la reale capacità di una funzione, ma pensa a script complicati in cui dovreti scrivere 1000 righe di codice perchè hai 10 pulsanti che devono compiere tutti la medesima azione, e la riscrivi ogni volta con il rischio di sbagliare magari

    comunque mi pare di conoscere la funzione che hai postato, si tratta del braingiants-bouncing? se è quello, forse non è indicatissimo per comprendere inizialmente le funzioni

    spero di averti aiutato nella comprensione

  7. #7
    Originariamente inviato da lurriell
    l'altra cosa che non capisco rimane

    this.velheight = this.velheight*bouncefactor+(this.destheight-this.posheight)/speedfactor;

    a=a +1

    in matematica non ha senso e cmq io non ho a(this.velheight)

    ma da dove la ricava??

    secondo me non ho la mente adatta per capire certe cose

    ciao ciao
    Dopo la lucida esposizione del Dot. and80 io mi appresto a spiegarti quest'altro dilemma.

    "a = a + 1" ha senso se il filmato è pubblicato per il player 6 di flash.
    Nel senso che flash, se la var non è stata definita prima, la fa equivalere a 0.
    Cosa che non fa dal player 7, facendola invece equivale ad un più reale "NaN", ovvero "valore nullo".
    Perciò usando un esempio del genere:
    codice:
    onEnterFrame = function () {
    	a = a + 1;
    	trace(a);
    };
    e pubblicandolo per il 6 vedrai che farà 1, 2, 3, 4, ecc... mentre pubblicandolo per il 7 ti darà solo NaN, NaN, NaN, ecc..

  8. #8
    grazie per le spiegazioni
    devo essermi spiegato male però
    il mio problema non è per capire l'utilità di una funzione ma come le variabili

    spesso mi trovo (come nell'esempio sopra) ad avere variabili non dichiarate e non capisco come faccia a calcolarle!!

    come nell'esempio riportato sopra dove usa variabili il cui valore non è mai stato dichiarato.


    cmq domani ci rifletto ..adesso è troppo tardi
    ciao

    per ora grazie

    ale

  9. #9
    Originariamente inviato da lurriell
    grazie per le spiegazioni
    devo essermi spiegato male però
    il mio problema non è per capire l'utilità di una funzione ma come le variabili

    spesso mi trovo (come nell'esempio sopra) ad avere variabili non dichiarate e non capisco come faccia a calcolarle!!

    come nell'esempio riportato sopra dove usa variabili il cui valore non è mai stato dichiarato.
    Te l'ho detto io nel post sopra.
    "a = a + 1" ha senso se il filmato è pubblicato per il player 6 di flash.
    Nel senso che flash, se la var non è stata definita prima, la fa equivalere a 0.
    Cosa che non fa dal player 7, facendola invece equivale ad un più reale "NaN", ovvero "valore nullo".

  10. #10
    uhmm ..ma se un valore è nullo perchè metterlo?

    ciao

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.