Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    163

    Scroller in AS personalizzabile

    Ho iniziato a stendere un codice per creare uno scroller di pulsanti e funziona. Ma sarei più interessato a sentire i consigli di qualcuno più esperto, dal momento che non conosco molto a fondo flash. Questo è il codice:
    codice:
    /*
    
    
    			SCROLLER
    			
    			
    
    */
    // setto alcuni parametri
    btn_num = 8;
    btn_lar = 500;
    btn_hal = 100;
    btn_gap = 1;
    btn_showed = 4;
    btn_mask_lar = btn_lar;
    btn_mask_hal = (btn_hal+btn_gap)*btn_showed;
    btn_tot_hal = (btn_hal+btn_gap)*btn_num;
    btn_rangeToScroll = btn_tot_hal-btn_mask_hal;
    btn_hold_startY = 0;
    btn_hold_endUpY = btn_hold_startY-btn_rangeToScroll;
    btn_hold_endDownY = btn_hold_startY;
    btn_scroll_scale = 15;
    btn_scroll_Xoff = (btn_lar/100)*2;
    btn_scroll_Xoff = (btn_lar/100)*2;
    btn_txt_pointSize = 50;
    // voci da inserire nei pulsanti
    btn_vox = new Array();
    btn_vox[0] = "pulsante";
    btn_vox[1] = "pulsante";
    btn_vox[2] = "pulsante";
    btn_vox[3] = "pulsante";
    btn_vox[4] = "pulsante";
    btn_vox[5] = "pulsante";
    btn_vox[6] = "pulsante";
    btn_vox[7] = "pulsante";
    //	
    trace(btn_rangeToScroll);
    trace(btn_hold_endUpY);
    trace(btn_hold_endDownY);
    /*
    
    	PULSANTI DA SCROLLARE
    
    */
    //	creo il contenitore
    this.createEmptyMovieClip("hold", this.getNextHighestDepth());
    //	creo il contenitore dei pulsanti, dentro al contenitore principale
    this.hold.createEmptyMovieClip("hold_btn", this.hold.getNextHighestDepth());
    //	associo ad una variabile, il percorso al contenitore dei pulsanti
    btn_hold_Ref = this.hold["hold_btn"];
    //	dichiaro la posizione 'y' del contenitore dei pulsanti
    btn_hold_Ref._y = btn_holdY;
    //	creo i pulsanti dentro al contenitore dei pulsanti
    for (i=0; i<8; i++) {
    	this.hold.hold_btn.createEmptyMovieClip("btn"+i, this.hold.hold_btn.getNextHighestDepth());
    	//	associo ad una variabile, il percorso alla nuova clip pulsante
    	btn_Ref = this.hold.hold_btn["btn"+i];
    	//	posiziono i pulsanti
    	btn_Ref._y += (btn_hal+btn_gap)*i;
    	//	disegno i pulsanti
    	with (btn_Ref) {
    		beginFill(0x990000, 100);
    		lineStyle(0, 0x000000, 0);
    		moveTo(0, 0);
    		lineTo(btn_lar, 0);
    		lineTo(btn_lar, btn_hal);
    		lineTo(0, btn_hal);
    		lineTo(0, 0);
    		endFill();
    	}
    	// creo i campi di testo da inserire nei pulsanti
    	btn_Ref.createTextField("btn_txt", btn_Ref.getNextHighestDepth(), 0, btn_hal/2-btn_txt_pointSize/2, btn_lar, btn_hal);
    	with (btn_Ref.btn_txt) {
    		embedFonts = false;
    		variable = btn_txt_var;
    		btn_format = new TextFormat();
    		with (btn_format) {
    			font = "Arial";
    			size = btn_txt_pointSize;
    			color = 0xFFFFFF;
    			align = "center";
    		}
    		selectable = false;
    		//	assegno il testo
    		text = btn_vox[i]+" "+(i+1);
    		//	formatto il testo
    		setTextFormat(btn_format);
    	}
    }
    /*
    
    	MASCHERA PULSANTI DA SCROLLARE
    
    */
    //	creo il contenitore per la maschera dello scrollpane, dentro al contenitore principale
    this.hold.createEmptyMovieClip("hold_btn_mask", this.hold.getNextHighestDepth());
    //	associo ad una variabile, il percorso alla nuova clip maschera
    mask_Ref = this.hold["hold_btn_mask"];
    //	posiziono la maschera
    mask_Ref._x = 0;
    mask_Ref._y = 0;
    trace(mask_Ref);
    //	disegno la maschera dentro al contenitore della maschera
    with (mask_Ref) {
    	beginFill(0x990000, 100);
    	lineStyle(0, 0x000000, 0);
    	moveTo(0, 0);
    	lineTo(btn_mask_lar, 0);
    	lineTo(btn_mask_lar, btn_mask_hal);
    	lineTo(0, btn_mask_hal);
    	lineTo(0, 0);
    	endFill();
    }
    //	maschero la clip che contiene i pulsanti, con la nuova clip maschera
    this.hold.hold_btn.setMask(this.hold.hold_btn_mask);
    /*
    
    	PULSANTI SCROLL UP/DOWN
    
    */
    //	creo il pulsante per scrollare in alto
    this.hold.createEmptyMovieClip("btn_scrollUp", this.hold.getNextHighestDepth());
    //	associo ad una variabile, il percorso al nuovo pulsante per scrollare in alto
    btn_scrollUp_Ref = this.hold["btn_scrollUp"];
    //	posiziono il pulsante per scrollare in alto
    btn_scrollUp_Ref._x = this.hold.hold_btn._x+btn_lar+btn_scroll_Xoff;
    btn_scrollUp_Ref._y = this.hold.hold_btn._y;
    //	disegno il pulsante per scrollare in alto
    with (btn_scrollUp_Ref) {
    	beginFill(0xFF3366, 100);
    	lineStyle(0, 0x000000, 0);
    	moveTo(50, 0);
    	lineTo(100, 50);
    	lineTo(75, 50);
    	lineTo(75, 150);
    	lineTo(25, 150);
    	lineTo(25, 50);
    	lineTo(0, 50);
    	lineTo(50, 0);
    	endFill();
    }
    //	dimensiono il pulsante per scrollare in alto
    btn_scrollUp_Ref._xscale = btn_scroll_scale;
    btn_scrollUp_Ref._yscale = btn_scroll_scale;
    //	creo il pulsante per scrollare in basso
    this.hold.createEmptyMovieClip("btn_scrollDown", this.hold.getNextHighestDepth());
    //	associo ad una variabile, il percorso al nuovo pulsante per scrollare in basso
    btn_scrollDown_Ref = this.hold["btn_scrollDown"];
    //	posiziono il pulsante per scrollare in basso
    btn_scrollDown_Ref._x = this.hold.hold_btn._x+btn_lar+btn_scroll_Xoff;
    btn_scrollDown_Ref._y = this.hold.hold_btn._y+btn_mask_hal-btn_scrollUp_Ref._height;
    //	disegno il pulsante per scrollare in basso
    with (btn_scrollDown_Ref) {
    	beginFill(0xFF3366, 100);
    	lineStyle(0, 0x000000, 0);
    	moveTo(25, 0);
    	lineTo(75, 0);
    	lineTo(75, 100);
    	lineTo(100, 100);
    	lineTo(50, 150);
    	lineTo(0, 100);
    	lineTo(25, 100);
    	lineTo(25, 0);
    	endFill();
    }
    //	dimensiono il pulsante per scrollare in basso
    btn_scrollDown_Ref._xscale = btn_scroll_scale;
    btn_scrollDown_Ref._yscale = btn_scroll_scale;
    /*
    
    	FUNZIONI PER SCROLL UP/DOWN
    
    */
    //	funzione per scrollare verso l'alto
    MovieClip.prototype.scrollaUp = function() {
    	btn_scrollUp_Ref.onRollOver = function() {
    		btn_scrollUp_Ref.onEnterFrame = function() {
    			btn_hold_Ref._y = Math.floor(btn_hold_Ref._y+(btn_hold_endUpY-btn_hold_Ref._y)/10);
    			//	trace
    			trace(Math.floor(btn_hold_Ref._y+(btn_hold_endUpY-btn_hold_Ref._y)/10));
    		};
    	};
    	btn_scrollUp_Ref.onRollOut = function() {
    		btn_scrollUp_Ref.onEnterFrame = function() {
    			btn_hold_Ref._y = btn_hold_Ref._y;
    		};
    	};
    };
    //	funzione per scrollare verso il basso
    MovieClip.prototype.scrollaDown = function() {
    	btn_scrollDown_Ref.onRollOver = function() {
    		btn_scrollDown_Ref.onEnterFrame = function() {
    			btn_hold_Ref._y = Math.ceil(btn_hold_Ref._y+(btn_hold_endDownY-btn_hold_Ref._y)/10);
    			//	trace
    			trace(Math.ceil(btn_hold_Ref._y+(btn_hold_endDownY-btn_hold_Ref._y)/10));
    		};
    	};
    	btn_scrollDown_Ref.onRollOut = function() {
    		btn_scrollDown_Ref.onEnterFrame = function() {
    			btn_hold_Ref._y = btn_hold_Ref._y;
    		};
    	};
    };
    //	associo le funzioni appena dichiarate, ai due pulsanti per scrollare
    btn_scrollUp_Ref.scrollaUp();
    btn_scrollUp_Ref.scrollaDown();
    Anche se sono abbastanza preso in questi giorni, gradirei sapere la vostra... Ciao a tutti!




    -

  2. #2
    Utente di HTML.it L'avatar di nep036
    Registrato dal
    Nov 2003
    Messaggi
    1,453
    Funziona è questa è una buona cosa. Non so qual'è lo scopo di tutto ciò, ma sicuramente è un ottimo esercizio.

    Io comunque opto sempre per crearmi il clip pulsante in libreria, in modo tale da avere un controllo sulla grafica migliore e più veloce...

    ...dopodichè monto tutto via AS...

    ...Cmq dipende sempre dallo scopo.




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.