Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente bannato
    Registrato dal
    Jul 2003
    Messaggi
    10

    movimento movie clip con AS

    Ciao a tutti,

    sono alle primissime armi con Action Script e sto provando a far muovere sull'asse delle x un istanza movieclip.

    Nel mio flash c'è un istanza bottone e un'istanza movieclip alla quale ho assegnato il nome "movie".
    Cliccando sul bottone richiama una funzione che dovrebbe far muovere di tot. pixel "movie" sull'asse x.

    Questo è la funzione che ho scritto io che è sbagliata perchè non funziona niente

    function spostainsu (moviedaspostare) {
    for(counter=1; counter<50; counter++) {
    posx = _root.moviedaspostare._x;
    _root.moviedaspostare._x=posx-counter;
    }
    }


    questo è lo script assegnato al bottone:

    on (release) {
    spostainsu (movie);
    }


    Mi sapete dire cosa ho sagliato e darmi dei consigli su che metodo devo usare?
    Per favore, non voglio lo script completo e funzionante, ma solamente dei consigli su cosa devo usare e cosa mi devo studiare per farlo. Calcolate che sono proprio all'inizio...

    grazie a tutti

  2. #2
    Intanto per il tuo scopo un ciclo for non va bene, in quanto ti mostra solo il risultato 'finale' e non i vari passi

    Quindi ad esempio potresti scegliere tra
    - usare un onEnterFrame
    - usare un setInterval

  3. #3
    Utente bannato
    Registrato dal
    Jul 2003
    Messaggi
    10
    Grazie mille Broly,

    provo a studiarmi quello che mi hai suggerito e ti faccio sapere.

  4. #4
    Utente bannato
    Registrato dal
    Jul 2003
    Messaggi
    10
    Ciao Broly,

    dunque, ho povato a usare setInterval ma mi sa che non ho capito come funziona perchè non succede nulla.

    Allora...ho fatto due frames e tre livelli: "script", "oggetto" e "bottoni".

    Nel 1° frame:

    Nel livello "script" ho messo questo script:

    counter = 0;
    function spostainsu (moviedaspostare) {
    if (counter<50) {
    counter = counter + 1;
    posmovie = _root.moviedaspostare._x;
    posmovie = posmovie - 1;
    _root.moviedaspostare._x = posmovie;
    } else {
    _root.moviedaspostare._x = _root.moviedaspostare._x
    counter = 0;
    }
    }


    Nel 2° frame:

    Nel livello "bottoni" c'è l'istanza del mio bottone e nel livello "oggetto" l'istanza del mio movieclip che ho chiamato "movie". Nel livello "script" ho messo uno stop [stop(); ]

    Assegnato al mio bottone ho messo:

    on (release) {
    setInterval (spostainsu (movie), 1000);
    }


    Che cosa ho sbagliato?

  5. #5
    La prima cosa che noto è che sbagli la sintassi del setInterval, devi scrivere

    setInterval(spostainsu,100,movie)

    Ad ogni modo secondo me per certi spostamenti ti converrebbe usare delle azioni in un EnterFrame, non una funzione richiamata varie volte col setInterval.

    Due consigli veloci: invece di usare

    counter = counter + 1

    usa

    counter++

    idem per

    posmovie = posmovie - 1

    usa

    posmovie--

    Infatti ++ altro non fa che incrementare di uno la variabile, -- invece decrementa di uno.

    Se volessi ad esempio aumentare o diminuire 'variabile' di N, usa questa sintassi

    variabile+= N
    variabile-= N

    Poi...inutile

    _root.moviedaspostare._x = _root.moviedaspostare._x

    Visto che gli dici di muoversi nella posizione x...in cui si trova già!

  6. #6
    Utente bannato
    Registrato dal
    Jul 2003
    Messaggi
    10
    La prima cosa che noto è che sbagli la sintassi del setInterval, devi scrivere

    setInterval(spostainsu,100,movie)
    fatto
    Due consigli veloci: invece di usare

    counter = counter + 1

    usa

    counter++

    idem per

    posmovie = posmovie - 1

    usa

    posmovie--
    fatto

    Poi...inutile

    _root.moviedaspostare._x = _root.moviedaspostare._x
    sì, lo sapevo l'ho fatto apposta perchè non volevo che succedesse niente...però in effetti bastava che non scrivessi niente!
    (come complicarsi la vita! )

    comunque nonostante le modifiche ancora niente...non si muove di un millimetro!

    Ad ogni modo secondo me per certi spostamenti ti converrebbe usare delle azioni in un EnterFrame, non una funzione richiamata varie volte col setInterval.
    Non ho usato onEnterFrame perchè non ho capito come funziona...
    me lo puoi spiegare? :tongue:

    grazie mille per i consigli molto utili

  7. #7
    Che versione usi di Flash ?

  8. #8
    Utente bannato
    Registrato dal
    Jul 2003
    Messaggi
    10
    flash mx

  9. #9
    Intanto assicurati che nel frame dove dai l'azione il movieclip sia presente, inoltre occhio che il nome istanza è quello che dai dal pannello proprietà, non quello che dai quando crei il movieclip.

  10. #10
    Utente bannato
    Registrato dal
    Jul 2003
    Messaggi
    10
    ancora nulla...

    ma quello che ho scritto è tutto corretto?

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.