Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    682

    chi mi aiuta con actionscript ?

    salve a tutti volevo provare a impostare la traiettoria di una pallina utilizzando del codice volevo precisamente fare come percorso
    un rettangolo a partire dal vertice in alto dal vertice sinistro.
    Ho provato una cosa del genere:
    onClipEvent(enterframe) {
    _root.palla._x=i;
    for (var i=0;i<=300;i++) {
    Arrivato a questo punto ho provato ad inserire un istruzione if
    per per poi far esguire la stessa operazione di assegnamento alla proprieta' _y ,ma flash ha iniziato a crasciare.
    potrebbe qualcuno farmi vedere del codice far completare alla pallina il percorso suddetto.
    Grazie

  2. #2
    Utente di HTML.it L'avatar di Stormy
    Registrato dal
    Dec 2000
    Messaggi
    2,701
    ti crasha perchè tu ripeti ad ogni enterFrame l'istruzione for per 300 volte e ovviamente flash non ce la fa

    a parte che for non serve a niente per quello che vuoi fare tu perchè vedi solo il risultato finale e non tutti i passaggi, dovresti aumentare i ad ogni enterframe (ad es. i++) ed inserire un if per fermare l'avanzamento dove vuoi tu

    se vuoi provo a scriverti il codice completo

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    682
    potresti scrivere un frammento di codice per spiegarti meglio
    sono un po' alle prime armi con actionscript

  4. #4
    Utente di HTML.it L'avatar di Stormy
    Registrato dal
    Dec 2000
    Messaggi
    2,701
    che movimento deve fare la pallina? disegnare un rettangolo? cioè prima orizzontale, arrivato ad un certo punto va in verticale poi di nuovo orizzontale ecc?

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    682
    si stormy la pallina parte dal verice in alto a sinista poi scende va
    in orizzontale verso destra poi risale e torna verso sinistra

  6. #6
    Utente di HTML.it L'avatar di Stormy
    Registrato dal
    Dec 2000
    Messaggi
    2,701
    questo script funziona con MX ed è pensato per coprire tutta l'area dello stage

    onClipEvent (enterFrame) {
    if (avanz<0) {
    mcx = -(_x);
    mcy = -(_y);
    x = inzx;
    y = inzy;
    } else {
    mcx = _x;
    mcy = _y;
    x = widt;
    y = heigt;
    }
    if (direzione == 0) {
    if (mcx<x) {
    _x += avanz;
    } else {
    direzione = 1;
    }
    } else if (direzione == 1) {
    if (mcy<y) {
    _y += avanz;
    } else {
    direzione = 0;
    avanz = -(avanz);
    }
    }
    }
    onClipEvent (load) {
    avanz = 5;
    direzione = 0;
    widt = Stage.width-((_width/2)+2);
    heigt = Stage.height-((_height/2)+2);
    x = widt;
    y = heigt;
    inzx = 0-((_width/2)+3);
    inzy = 0-((_height/2)+3);
    }


    se vuoi renderlo compatibile anche con flash 5, cambia questi due comandi

    widt = Stage.width -((_width/2)+2);
    heigt = Stage.height -((_height/2)+2);

    inserendo al posto delle parole evidenziate i numeri relativi alla larghezza e all'altezza del filmato

    se invece vuoi coprire un'area piu' piccola dell'intero stage cambia questi parametri

    widt = Stage.width -((_width/2)+2);
    heigt = Stage.height -((_height/2)+2);
    inzx = 0 -((_width/2)+3);
    inzy = 0 -((_height/2)+3);

    inserendo rispettivamente al posto delle parole evidenziate: la larghezza, l'altezza, il punto iniziale orizzontale, il punto iniziale verticale

    non ho fatto una prova con delle coordinate negative per cui non so se funziona in quel caso

  7. #7
    Utente di HTML.it L'avatar di Stormy
    Registrato dal
    Dec 2000
    Messaggi
    2,701
    m'ero dimenticata una cosa importante:

    se il punto iniziale è maggiore di 0 lo devi rendere un numero negativo come in questo esempio:

    invece di scrivere 159 e 128 (per esempio) devi scrivere -(159) e -(128):

    onClipEvent (load) {
    avanz = 5;
    direzione = 0;
    widt = 300-((_width/2)+2);
    heigt = 300-((_height/2)+2);
    x = widt;
    y = heigt;
    inzx = -(159) -((_width/2)+3);
    inzy = -(128) -((_height/2)+3);
    }

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.