Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    Rendere cliccabile mc 'elastico'

    Ho un problema con actionscript.
    Ho quattro movieclip che ridimensiono, in modo 'elastico',
    utilizzando questo AS:

    MovieClip.prototype.elastic = function(w, h, k) {
    this.vx *= k;
    this.vy *= k;
    this.vx += (w-this._xscale)/10;
    this.vy += (h-this._yscale)/10;
    this._xscale += this.vx;
    this._yscale += this.vy;
    };
    this.onEnterFrame = function() {
    if (k == 1) {
    mc1.elastic(150, 150, .25);
    mc2.elastic(100, 150, .20);
    mc3.elastic(150, 50, .35);
    mc4.elastic(100, 50, .20);
    mc3._y = mc4._y=mc1._y+mc1._height+10;
    } else if (k == 2) {
    mc1.elastic(100, 150, .35);
    mc2.elastic(150, 150, .30);
    mc3.elastic(100, 50, .40);
    mc4.elastic(150, 50, .40);
    mc3._y = mc4._y=mc1._y+mc1._height+10;
    } else if (k == 3) {
    mc1.elastic(150, 50, .45);
    mc2.elastic(100, 50, .30);
    mc3.elastic(150, 150, .35);
    mc4.elastic(100, 150, .40);
    mc3._y = mc4._y=mc1._y+mc1._height+10;
    } else if (k == 4) {
    mc1.elastic(100, 50, .35);
    mc2.elastic(150, 50, .40);
    mc3.elastic(100, 150, .35);
    mc4.elastic(150, 150, .40);
    mc3._y = mc4._y=mc1._y+mc1._height+10;
    } else {
    mc1.elastic(100, 100, .40);
    mc2.elastic(100, 100, .35);
    mc3.elastic(100, 100, .40);
    mc4.elastic(100, 100, .30);
    mc3._y = mc4._y=mc1._y+mc1._height+10;
    }
    testo3._y = testo4._y=Math.floor(mc3._y+6);
    testo2._x = testo4._x=Math.floor(mc1._x+mc1._width+55);
    mc2._x = mc4._x=Math.floor(mc1._x+mc1._width+10);
    };
    for (i=1; i<=4; i++) {
    this['mc'+i].onRollOver = function() {
    k = this._name.substring(2);
    };
    this['mc'+i].onRollOut = function() {
    delete k;
    };
    }

    Però mi servirebbe che i mc stessi fossero cliccabili, cioè
    che, all'evento on (release) consentano l'esecuzione di
    una azione definita.
    Ho provato inserendo all'interno del mc un pulsante, con la
    relativa istruzione on (release), ma viene semplicemente
    ignorato; ho provato anche annidando nel mc un'altro mc con
    il pulsante, ma niente (anzi, altri problemi...). Se metto
    il pulsante al di fuori del mc, su un livello superiore, il
    risultato è 'esplosivo' - quando il cursore va sul pulsante,
    'esce' dall'area del mc e quindi avvia il processo elastico
    di 'contrazione' del mc stesso...
    Qualcuno ha soluzioni, idee, suggerimenti, link a tutorial
    e/o simili?

  2. #2
    provato ad aggiungere alla funzione postata

    codice:
    this.onRelease=function(){
    // *le tue azioni *//
    };
    ?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    grazie, ho cmq risolto così:
    ...
    for(i=1;i<=4;i++){
    this['mc'+i].onRollOver = function(){
    k=this._name.substring(2)
    }
    this['mc'+i].onRollOut = function(){
    delete k
    }
    this['mc'+i].onRelease = function(){
    (k==1) && (_root.gotoAndPlay(5));
    (k==2) && (_root.gotoAndPlay(25));
    (k==3) && (_root.gotoAndPlay(45));
    (k==4) && (_root.gotoAndPlay(65));
    }
    }

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.