eccomi, dopo un'estenuante ricerca ho trovato questo:
mi perdoni chi lo ha postato ma non ricordo .............
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();
l'esempio lo vedi QUI