Visualizzazione dei risultati da 1 a 10 su 10

Discussione: scorrimento

  1. #1
    Utente di HTML.it L'avatar di gizax
    Registrato dal
    Jan 2004
    residenza
    Rome
    Messaggi
    386

    scorrimento

    ciao ragazzi, secondo voi come è possibile fare una barra di scorrimento laterale direttamente in flash come questa nella sezione FOTOGRAFIA di questo sito? http://www.subdisc.com/

    grazie

  2. #2
    basta fare dei riferimenti ad un movieclip main contenente le info ed usare uno stage non resizabile.

    La scrollbar solita di MX o MX2004 non fa molto di diverso

    P.S. altro esempio su da mesi è nelle finestre di 3site
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    Utente di HTML.it L'avatar di gizax
    Registrato dal
    Jan 2004
    residenza
    Rome
    Messaggi
    386
    azz andrea non l'avevo proprio notato nel tuo sito. Mi posti un esempio di codice? o un fla di esempio? naturalmente a tempo perso e quando vuoi se vuoi

    ciauz

    ot = complimenti per la JAS chat è stupenda

  4. #4
    domani se faccio in tempo ti posto un esempio
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    Utente di HTML.it L'avatar di gizax
    Registrato dal
    Jan 2004
    residenza
    Rome
    Messaggi
    386
    Originariamente inviato da andr3a
    domani se faccio in tempo ti posto un esempio
    grazie mille andrea, senza impegno naturalmente

  6. #6
    l' ho fatto un pò di corsa e forse la funzione onDrag poteva essere più precisa ... apri un nuovo fla, crea un font in libreria a size 8 ed esportalo col nome Font 1 .... quello di default in teoria, poi testa questo
    codice:
    // fisso lo Stage
    Stage.align = "TL";
    Stage.scaleMode = "noScale";
    
    // imposto larghezza e altezza per questo esempio
    var larghezza:Number = 500; // o Stage.width
    var altezza:Number =  300; // o Stage.height;
    
    // funzione per creare qualche rettangolo
    function createRectangle(
    	path:MovieClip, 
    	width:Number, 
    	height:Number, 
    	color:Number
    	):MovieClip {
    	var depth:Number = path.getNextHighestDepth();
    	var instance:String = '__movie__' + depth;
    	path.createEmptyMovieClip(instance, depth);
    	with(path[instance]) {
    		moveTo(0, 0);
    		beginFill(color, 100);
    		lineTo(width, 0);
    		lineTo(width, height);
    		lineTo(0, height);
    		lineTo(0, 0);
    		endFill();
    	}
    	return path[instance];
    }
    
    // imposto il textformat per questo esempio
    var tf:TextFormat = new TextFormat();
    tf.size = 8; // ho usato un pixelfont, cambiare la dimensione se diversa
    tf.color = 0x000000;
    tf.font = "Font 1"; // linkage per il font in libreria
    
    // creo il movie principale ... così posiziono il tuto dove voglio se ne ho bisogno
    var mc_main:MovieClip = createRectangle(this, larghezza, altezza, 0xFFFFFF);
    // creo il movie mascherato dentro quello principale
    var mc_masked:MovieClip = createRectangle(mc_main, 0, 0, 0xFFFFFF);
    // creo il movie maschera denro quello principale
    var mc_mask:MovieClip = createRectangle(mc_main, (larghezza - 10), (altezza - 4), 0x000000);
    // li posiziono per l' esempio
    mc_mask._y = mc_mask._x = mc_masked._y = mc_masked._x = 2;
    // imposto la maschera
    mc_masked.setMask(mc_mask);
    
    // creo lo scroller per l' esempio e lo posiziono
    var mc_scroll:MovieClip = createRectangle(mc_main, 5, 16, 0x454545);
    mc_scroll._x = mc_main._width - mc_scroll._width - 2;
    mc_scroll._y = 2;
    // imposto valori massimi e minimi per la scrollata
    mc_scroll.minScroll = mc_scroll._y;
    mc_scroll.maxScroll = mc_main._height - mc_scroll._height - 2;
    
    // creo un campo di testo per l' esempio e lo imposto
    mc_masked.createTextField('txt', mc_main.getNextHighestDepth(), 2, 2, (larghezza - 10), 0);
    mc_masked['txt'].embedFonts = 
    mc_masked['txt'].multiline = 
    mc_masked['txt'].wordWrap = 
    mc_masked['txt'].autoSize = true;
    mc_masked['txt'].selectable = false;
    
    // scringa fittizia per il test, la popolo così da rendere il movie mascherato più grande 
    // del movie maschera
    var s:String = '';
    for(var a:Number = 0; a < 1000; a++)
    	s += a + ' ';
    // lo assegno al campo di testo dinamico
    mc_masked['txt'].text = s;
    mc_masked['txt'].setTextFormat(tf);
    
    // funzione da usare durante il drag
    mc_scroll.onDrag = function() {
    	var minScroll:Number = 2;
    	var maxScroll:Number = minScroll - (mc_masked._height - mc_mask._height);
    	mc_masked._y = Math.round(
    					((this._y * (maxScroll - minScroll)) / 
    								 (this.maxScroll - this.minScroll)) 
    					+ (minScroll * 2)
    					);
    }
    // funzione sull' onPress
    mc_scroll.onPress = function() {
    	this.__interval = setInterval(this, 'onDrag', 20);
    	this.startDrag(false, this._x, this.minScroll, this._x, this.maxScroll);
    }
    // funzione al rilascio
    mc_scroll.onRelease = mc_scroll.onReleaseOutside = function() {
    	clearInterval(this.__interval);
    	this.stopDrag();
    	this.onDrag();
    }



    P.S. ovviamente è solo un esempio ma se al posto di un campo dinamico popoli il movie mascherato con altri movieClips o ci metti quello che ti pare e imposti l' altezza a Stage.height il risultato non si discosta molto da quanto hai visto su quel sito ... larghezza fissa a tot, altezza fissa a tot, contenuto che può essere più grande quindi scroll .... scusa se l' esempio non è fedele ma ho un pò di cose da fare
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    Utente di HTML.it L'avatar di gizax
    Registrato dal
    Jan 2004
    residenza
    Rome
    Messaggi
    386
    innanzitutto ti ringrazio andrea. Il tuo esempio funziona, però se porto per esempio lo stage a 1024 x 768, mi fa vedere cmq la scrollbar del browser e cmq ad altre risoluzioni mi sputtanerebbe tutto da qunato riesco a capire.

    ciao e thx


  8. #8
    dovresti fare una pagina in percentuale, 100% x 100% ... poi gestisci il movie interno come meglio credi.

    Ora provo a mettere su un esempio
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9
    il testo è pesante da muovere ... ho rifatto l' esempio che puoi vedere qui:

    http://www.3site.it/CAXXATE/ScrollableStage.html


    questo invece il codice usato:
    codice:
    var resizer:Object = new Object();
    resizer.onResize = function() {
    	mc_main._y = 0;
    	mc_main._x = Math.floor((Stage.width - mc_main._width) / 2);
    }
    
    
    // fisso lo Stage
    Stage.align = "TL";
    Stage.scaleMode = "noScale";
    Stage.addListener(resizer);
    
    // imposto larghezza e altezza per questo esempio
    var larghezza:Number = 400; // o Stage.width
    var altezza:Number =  Stage.height; // o Stage.height;
    
    // funzione per creare qualche rettangolo
    function createRectangle(
    	path:MovieClip, 
    	width:Number, 
    	height:Number, 
    	color:Number
    	):MovieClip {
    	var depth:Number = path.getNextHighestDepth();
    	var instance:String = '__movie__' + depth;
    	path.createEmptyMovieClip(instance, depth);
    	with(path[instance]) {
    		moveTo(0, 0);
    		beginFill(color, 100);
    		lineTo(width, 0);
    		lineTo(width, height);
    		lineTo(0, height);
    		lineTo(0, 0);
    		endFill();
    	}
    	return path[instance];
    }
    
    
    // creo il movie principale ... così posiziono il tuto dove voglio se ne ho bisogno
    var mc_main:MovieClip = createRectangle(this, larghezza, altezza, 0xF5F5F5);
    // creo il movie mascherato dentro quello principale
    var mc_masked:MovieClip = createRectangle(mc_main, 0, 0, 0xFFFFFF);
    // creo il movie maschera denro quello principale
    var mc_mask:MovieClip = createRectangle(mc_main, (larghezza - 10), (altezza - 4), 0x000000);
    // li posiziono per l' esempio
    mc_mask._y = mc_mask._x = mc_masked._y = mc_masked._x = 2;
    // imposto la maschera
    mc_masked.setMask(mc_mask);
    
    // creo lo scroller per l' esempio e lo posiziono
    var mc_scroll:MovieClip = createRectangle(mc_main, 5, 16, 0x454545);
    mc_scroll._x = mc_main._width - mc_scroll._width - 2;
    mc_scroll._y = 2;
    // imposto valori massimi e minimi per la scrollata
    mc_scroll.minScroll = mc_scroll._y;
    mc_scroll.maxScroll = mc_main._height - mc_scroll._height - 2;
    
    // creo un campo di testo per l' esempio e lo imposto
    var mc_inside0:MovieClip = createRectangle(mc_masked, (larghezza - 14), 8, 0xABABAB);
    for(var a:Number = 1; a <= 100; a++) {
    	mc_inside0.duplicateMovieClip('mc_inside' + a, mc_masked.getNextHighestDepth());
    	mc_masked['mc_inside' + a]._y = mc_masked['mc_inside' + (a-1)]._y + 10;
    	var newc:Color = new Color(mc_masked['mc_inside' + a]);
    	newc.setRGB(Math.random() * 16000000);
    }
    
    // funzione da usare durante il drag
    mc_scroll.onDrag = function(force:Boolean) {
    	var newpos:Number = (mc_masked._height - mc_mask._height) - 2;
    	newpos = newpos * (this._y - this.minScroll);
    	newpos = newpos / (this.maxScroll - this.minScroll);
    	newpos = -newpos + 2;
    	if(force == false)
    		newpos = Math.round(mc_masked._y + ((newpos - mc_masked._y) * .2));
    	else
    		newpos = Math.round(newpos);
    	mc_masked._y = newpos;
    }
    // funzione sull' onPress
    mc_scroll.onPress = function() {
    	this.__interval = setInterval(this, 'onDrag', 20, false);
    	this.startDrag(false, this._x, this.minScroll, this._x, this.maxScroll);
    }
    // funzione al rilascio
    mc_scroll.onRelease = mc_scroll.onReleaseOutside = function() {
    	clearInterval(this.__interval);
    	this.stopDrag();
    	this.onDrag(true);
    }
    
    resizer.onResize();
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  10. #10
    Utente di HTML.it L'avatar di gizax
    Registrato dal
    Jan 2004
    residenza
    Rome
    Messaggi
    386
    poi dici che non lo devo dire... va beh lo dico lo stesso...

    TI AMO!!!

    grazie andrea come al solito

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.