Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1

    Urgente: componente scrollbars

    Salve, ho un problemino urgente da risolvere.
    Spero che qualcuno mi possa aiutare.

    Allora: ho realizzato una specie di impaginazione di pagina html usando un campo di testo dinamico (con proprietà html=true) che si carica il contenuto da un file txt appositamente creato.
    Ho inserito il componente scrollbar di flash mx assegnandolo al campo di testo dinamico e il tutto funziona perfettamente.

    L'unico problema è: vorrei far scorrere il testo non solo quando l'utente clicca sulle apposite freccette del componente scrollbar ma semplicemente quando ci passa sopra col mouse.
    E' possibile fare una cosa del genere con tale componente?
    Spero che qualcuno possa aiutarmi il prima possibile.

    Grazie in anticipo .

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    - apri la libria, e premi il pulsante con il simbolo + in basso a sinistra
    - inserisci "clip" nel campo "Name", seleziona il radioButton "Movie Clip" nella sezione Behaviours, seleziona la casella "Export for ActionScript", quindi premi ok
    - dentro il movieclip, scrivi:

    codice:
    #initclip 2
    
    FScrollBarClass.prototype.setScrollProperties = function(pSize, mnPos, mxPos)
    {
    	if (!this.enable) {
    		return ;
    	}
    	this.pageSize = pSize;
    	this.minPos = Math.max(mnPos, 0);
    	this.maxPos = Math.max(mxPos,0);
    	this.scrollPosition = Math.max(this.minPos, this.scrollPosition);
    	this.scrollPosition = Math.min(this.maxPos, this.scrollPosition);
    	
    	if (this.maxPos-this.minPos<=0) { // turn it off
    		this.scrollThumb_mc.removeMovieClip();
    		this.upArrow_mc.gotoAndStop(3);
    		this.downArrow_mc.gotoAndStop(3);
    		this.downArrow_mc.onRollOver = this.downArrow_mc.onRollOut = this.downArrow_mc.onDragOut = null;
    		this.upArrow_mc.onRollOver = this.upArrow_mc.onRollOut = this.upArrow_mc.onDragOut = null;
    		this.scrollTrack_mc.onPress = this.scrollTrack_mc.onRelease = null;
    		this.scrollTrack_mc.onDragOut = this.scrollTrack_mc.onRollOut = null;
    		this.scrollTrack_mc.useHandCursor = false;
    	} else { // turn it on
    		var tmp = this.getScrollPosition();
    		this.upArrow_mc.gotoAndStop(1);
    		this.downArrow_mc.gotoAndStop(1);
    		this.upArrow_mc.onRollOver = this.upArrow_mc.onDragOver = this.startUpScroller;
    		this.upArrow_mc.onRollOut = this.upArrow_mc.onDragOut = this.stopScrolling;
    		this.downArrow_mc.onRollOver = this.downArrow_mc.onDragOver = this.startDownScroller;
    		this.downArrow_mc.onRollOut = this.downArrow_mc.onDragOut = this.stopScrolling;
    		this.scrollTrack_mc.onPress = this.scrollTrack_mc.onDragOver = this.startTrackScroller; 
    		this.scrollTrack_mc.onRelease = this.stopScrolling;
    		this.scrollTrack_mc.onDragOut = this.stopScrolling;
    		this.scrollTrack_mc.onRollOut = this.stopScrolling;
    		this.scrollTrack_mc.useHandCursor = false;
    		this.attachMovie("ScrollThumb", "scrollThumb_mc", 3);
    		this.scrollThumb_mc._x = 0;
    		this.scrollThumb_mc._y = this.upArrow_mc._height;
    		this.scrollThumb_mc.onPress = this.startDragThumb;
    		this.scrollThumb_mc.controller = this;
    		this.scrollThumb_mc.onRelease = this.scrollThumb_mc.onReleaseOutside = this.stopDragThumb;
    		this.scrollThumb_mc.useHandCursor=false;
    		this.thumbHeight = this.pageSize / (this.maxPos-this.minPos+this.pageSize) * this.trackSize;
    		this.thumbMid_mc = this.scrollThumb_mc.mc_sliderMid;
    		this.thumbTop_mc = this.scrollThumb_mc.mc_sliderTop;
    		this.thumbBot_mc = this.scrollThumb_mc.mc_sliderBot;
    		this.thumbHeight = Math.max (this.thumbHeight, 6); // 6 is the smallest a thumb should be
    		this.midHeight = this.thumbHeight - this.thumbTop_mc._height - this.thumbBot_mc._height;
    		this.thumbMid_mc._yScale = this.midHeight * 100 / this.thumbMid_mc._height;
    		this.thumbMid_mc._y =  this.thumbTop_mc._height;
    		this.thumbBot_mc._y = this.thumbTop_mc._height + this.midHeight;
    		this.scrollTop = this.scrollThumb_mc._y;
    		this.trackHeight = this.trackSize - this.thumbHeight;
    		this.scrollBot = this.trackHeight + this.scrollTop; 
    		tmp = Math.min(tmp, this.maxPos);
    		this.setScrollPosition(Math.max(tmp, this.minPos));
    	}
    }
    
    #endinitclip
    Esporta.

  3. #3
    che dire...
    "...non è detto che sia tardi se non guardi che ora è..."

  4. #4
    eh si, nega ogni tanto fa impallidire anche il mouse...

  5. #5
    Non voglio assolutamente sminuire negatyve, ma il codice modificabile è presente anche in libreria, nel component scrollbar, trascinato sullo stage ... ciò non toglie che creare un nuovo mc adatto allo scopo è la pratica migliore.

    Ciao,
    .:| bandafox |:.

  6. #6
    già, ma il punto è modificarlo...
    "...non è detto che sia tardi se non guardi che ora è..."

  7. #7
    Non è molto complesso, in questo casom cambiando alcuni onPress e onRelease con onRollOver e onRollOut e facendo altri piccoli accorgimenti. Ripeto, non voglio assolutamente criticare o sminuire negatyve, che reputo assolutamente competente.

    Ciao,
    .:| bandafox |:.

  8. #8
    Unica cosa è che forse il nostro amico voleva che sul rollover il testo inizi a scrollare in continuazione, finchè non si esce... in questo caso toccherà aggiungere anche un enterframe:

    #initclip 2

    FScrollBarClass.prototype.setScrollProperties = function(pSize, mnPos, mxPos)
    {
    if (!this.enable) {
    return ;
    }
    this.pageSize = pSize;
    this.minPos = Math.max(mnPos, 0);
    this.maxPos = Math.max(mxPos,0);
    this.scrollPosition = Math.max(this.minPos, this.scrollPosition);
    this.scrollPosition = Math.min(this.maxPos, this.scrollPosition);

    if (this.maxPos-this.minPos<=0) { // turn it off
    this.scrollThumb_mc.removeMovieClip();
    this.upArrow_mc.gotoAndStop(3);
    this.downArrow_mc.gotoAndStop(3);
    this.downArrow_mc.onRollOver = this.downArrow_mc.onRollOut = this.downArrow_mc.onDragOut = null;
    this.upArrow_mc.onRollOver = this.upArrow_mc.onRollOut = this.upArrow_mc.onDragOut = null;
    this.scrollTrack_mc.onPress = this.scrollTrack_mc.onRelease = null;
    this.scrollTrack_mc.onDragOut = this.scrollTrack_mc.onRollOut = null;
    this.scrollTrack_mc.useHandCursor = false;
    } else { // turn it on
    var tmp = this.getScrollPosition();
    this.upArrow_mc.gotoAndStop(1);
    this.downArrow_mc.gotoAndStop(1);
    this.upArrow_mc.onRollOver = this.upArrow_mc.onDragOver = function(){
    this.onEnterFrame=function(){
    this.startUpScroller;
    }
    }
    this.upArrow_mc.onRollOut = this.upArrow_mc.onDragOut = function(){
    this.stopScrolling;
    delete this.onEnterFrame;
    }
    this.downArrow_mc.onRollOver = this.downArrow_mc.onDragOver = function(){
    this.onEnterFrame=function(){
    this.startDownScroller;
    }
    }
    this.downArrow_mc.onRollOut = this.downArrow_mc.onDragOut = function(){
    this.stopScrolling;
    delete this.onEnterFrame;
    }
    this.scrollTrack_mc.onPress = this.scrollTrack_mc.onDragOver = this.startTrackScroller;
    this.scrollTrack_mc.onRelease = this.stopScrolling;
    this.scrollTrack_mc.onDragOut = this.stopScrolling;
    this.scrollTrack_mc.onRollOut = this.stopScrolling;
    this.scrollTrack_mc.useHandCursor = false;
    this.attachMovie("ScrollThumb", "scrollThumb_mc", 3);
    this.scrollThumb_mc._x = 0;
    this.scrollThumb_mc._y = this.upArrow_mc._height;
    this.scrollThumb_mc.onPress = this.startDragThumb;
    this.scrollThumb_mc.controller = this;
    this.scrollThumb_mc.onRelease = this.scrollThumb_mc.onReleaseOutside = this.stopDragThumb;
    this.scrollThumb_mc.useHandCursor=false;
    this.thumbHeight = this.pageSize / (this.maxPos-this.minPos+this.pageSize) * this.trackSize;
    this.thumbMid_mc = this.scrollThumb_mc.mc_sliderMid;
    this.thumbTop_mc = this.scrollThumb_mc.mc_sliderTop;
    this.thumbBot_mc = this.scrollThumb_mc.mc_sliderBot;
    this.thumbHeight = Math.max (this.thumbHeight, 6); // 6 is the smallest a thumb should be
    this.midHeight = this.thumbHeight - this.thumbTop_mc._height - this.thumbBot_mc._height;
    this.thumbMid_mc._yScale = this.midHeight * 100 / this.thumbMid_mc._height;
    this.thumbMid_mc._y = this.thumbTop_mc._height;
    this.thumbBot_mc._y = this.thumbTop_mc._height + this.midHeight;
    this.scrollTop = this.scrollThumb_mc._y;
    this.trackHeight = this.trackSize - this.thumbHeight;
    this.scrollBot = this.trackHeight + this.scrollTop;
    tmp = Math.min(tmp, this.maxPos);
    this.setScrollPosition(Math.max(tmp, this.minPos));
    }
    }

    #endinitclip

    non l'ho provato, ma dovrebbe funzionare, in poche parole ho solo appunto inserito un enterFrame per fare spostare il testo continuamente.


    Ciao, Christian

  9. #9
    Ho detto una cazzata assurda... anche perchè l'evento onPress, appunto che viene nel nostro caso tramutato in rollover, fa partire un setItnerval, e quindi crea già l'animazione, e l'enterFrame fa solo casini... quindi magari per rendere la cosa più veloce basta diminiuire l'intervallo dell'enterFrame... faccio ammenda, purtroppo non è mia consuetudine usare i component MM... ciao Christian

  10. #10
    l'intervallo del setInterval intedevo... ma non è già venerdì???

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.