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![]()
![]()
![]()
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![]()
![]()
![]()
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![]()
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![]()
domani se faccio in tempo ti posto un esempio![]()
grazie mille andrea, senza impegno naturalmenteOriginariamente inviato da andr3a
domani se faccio in tempo ti posto un esempio![]()
![]()
![]()
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![]()
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
![]()
dovresti fare una pagina in percentuale, 100% x 100% ... poi gestisci il movie interno come meglio credi.
Ora provo a mettere su un esempio![]()
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();
poi dici che non lo devo dire... va beh lo dico lo stesso...
TI AMO!!!![]()
![]()
![]()
grazie andrea come al solito