Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di madquake
    Registrato dal
    Jun 2008
    residenza
    Manchester
    Messaggi
    85

    Far scorrere una striscia in orizzontale quando si preme un pulsante...

    Salve a tutti... stò cercando di realizzare una webmotion ma ho un problemino con un ultimo particolare che però mi fà guadagnare in eleganza tutto il lavoro...
    allora... io ho creato una striscia larga più dello stage che deve scorrere in orizzontale a destra o a sinistra. La striscia è contenuta in un movieclip che è contenuto in un altro movieclipt che si trova sulla root. nel movieclipt della root ci sono due livelli composti entrambi da tre fotogrammi. In uno dei livelli c'è la striscia, mentre nell'altro su tre keyframe ci sono le istruzioni...

    sul fotogramma 1 le istruzioni sono:

    setProperty("fumetto", _visible, 0);
    lunghezza = getProperty("fumetto", _width);
    duplicateMovieClip("fumetto", "fumetto1", 1);
    duplicateMovieClip("fumetto", "fumetto2", 2);
    duplicateMovieClip("fumetto", "fumetto3", 3);
    posiziox = getProperty("fumetto1", _x);
    setProperty("fumetto2", _x, posiziox+lunghezza);
    setProperty("fumetto3", _x, posiziox-lunghezza);

    if (getProperty("fumetto1", _x)<-lungo) {
    setProperty("fumetto1", _x, 0);
    setProperty("fumetto2", _x, lungo);
    setProperty("fumetto3", _x, -lungo);
    }
    if (getProperty("fumetto1", _x)>lungo) {
    setProperty("fumetto1", _x, 0);
    setProperty("fumetto2", _x, lungo);
    setProperty("fumetto3", _x, -lungo);
    }



    sul secondo fotogramma:



    if (getProperty("fumetto1", _x)<-lunghezza) {
    setProperty("fumetto1", _x, 0);
    setProperty("fumetto2", _x, lunghezza);
    setProperty("fumetto3", _x, -lunghezza);
    }
    if (getProperty("fumetto1", _x)>lunghezza) {
    setProperty("fumetto1", _x, 0);
    setProperty("fumetto2", _x, lunghezza);
    setProperty("fumetto3", _x, -lunghezza);
    }




    mentre sul terzo:

    gotoAndPlay(2);






    Sulla root c'è un movieclip che contiene un pulsante (questo perchè il movieclip deve diventare trasparente ecc ecc), che se premuto (on(press)) dovrebbe far scorrere la striscia. Il mio problema è che impostando variabili o quant'altro la striscia non si scioda da dov'è.
    Sono riuscito a farla muovere ad ogni release del tasto incrementando di 200 pixel la posizione sull'asse delle x ma non riesco a capire come farla muovere di un tot all'onClipEvent...

    scusate se ho postato tutto il codice ma penso possa essere utile a coloro che come me stanno ancora imparando ad usare actionscript, perchè questo script è molto carino per creare ad esempio strisce che si muovono in loop infiniti...

    Scusate se mi sono dilungato così tanto...
    Vi ringrazio per l'aiuto
    ciao tutti

  2. #2
    Ciao!
    Prima di tutto vorrei darti 2 consigli:
    1.invece di getProperty e setProperty usa questa sintassi: movieclip.proprietà e moveclip.proprietà=nuovo valore; per cui invece di

    codice:
    setProperty("fumetto", _visible, 0);
    Puoi scrivere semplicemente
    codice:
    fumetto._visible=0;
    In questo modo il codice è più leggibile e sintetico.

    2.Quando posti un codice usa il codice vB apposito come ho fatto io.


    Scusa se mi sono dilungato.
    Comunque, io avrei scritto queto codice per il movieclip sul root:
    codice:
    onClipEvent (load) {
    	muovi=false
    	fumetto._visible = 0;
    	lunghezza = fumetto._width;
    	duplicateMovieClip("fumetto", "fumetto1", 1);
    	duplicateMovieClip("fumetto", "fumetto2", 2);
    	duplicateMovieClip("fumetto", "fumetto3", 3);
    	posiziox = fumetto1._x;
    	fumetto2._x = posiziox+lunghezza;
    	fumetto3._x = posiziox-lunghezza;
    }
    onClipEvent (enterFrame) {
    	if (muovireale&&muovi) {
    		this.fumetto1._x ++;
    		this.fumetto2._x ++;
    		this.fumetto3._x ++;
    	}
    	if (fumetto1._x<-lunghezza) {
    muovireale=false
    		this.fumetto1._x ++;
    		this.fumetto2._x ++;
    		this.fumetto3._x ++;
    	}else{muovireale=true}
    	if (fumetto1._x>lunghezza) {
    muovireale=false
    		this.fumetto1._x -=2;
    		this.fumetto2._x -=2;
    		this.fumetto3._x -=2;
    	}else{muovireale=true}
    }
    e questo per il pulsante:
    codice:
    on (press) {
    	_root.a.muovi = true;
    }
    on (release) {
    	_root.a.muovi = false;
    }
    Non credo che siano necessari altri codici...
    Spero di aver capito bene...:master:
    Fammi sapere, 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.